Example #1
0
eth_speed_mode_t phy_lan8720_get_speed_mode(void)
{
    if(esp_eth_smi_read(PHY_SPECIAL_CONTROL_STATUS_REG) & SPEED_INDICATION_100T) {
        ESP_LOGD(TAG, "phy_lan8720_get_speed_mode(100)");
        return ETH_SPEED_MODE_100M;
    } else {
        ESP_LOGD(TAG, "phy_lan8720_get_speed_mode(10)");
        return ETH_SPEED_MODE_10M;
    }
}
Example #2
0
eth_duplex_mode_t phy_lan8720_get_duplex_mode(void)
{
    if(esp_eth_smi_read(PHY_SPECIAL_CONTROL_STATUS_REG) & DUPLEX_INDICATION_FULL) {
        ESP_LOGD(TAG, "phy_lan8720_get_duplex_mode(FULL)");
        return ETH_MODE_FULLDUPLEX;
    } else {
        ESP_LOGD(TAG, "phy_lan8720_get_duplex_mode(HALF)");
        return ETH_MODE_HALFDUPLEX;
    }
}
Example #3
0
eth_duplex_mode_t phy_tlk110_get_duplex_mode(void)
{
    if((esp_eth_smi_read(PHY_STATUS_REG) & DUPLEX_STATUS ) == DUPLEX_STATUS) {
        ESP_LOGD(TAG, "phy_tlk110_get_duplex_mode(FULL)");
        return ETH_MODE_FULLDUPLEX;
    } else {
        ESP_LOGD(TAG, "phy_tlk110_get_duplex_mode(HALF)");
        return ETH_MODE_HALFDUPLEX;
    }
}
Example #4
0
eth_speed_mode_t phy_tlk110_get_speed_mode(void)
{
    if((esp_eth_smi_read(PHY_STATUS_REG) & SPEED_STATUS ) != SPEED_STATUS) {
        ESP_LOGD(TAG, "phy_tlk110_get_speed_mode(100)");
        return ETH_SPEED_MODE_100M;
    } else {
        ESP_LOGD(TAG, "phy_tlk110_get_speed_mode(10)");
        return ETH_SPEED_MODE_10M;
    }
}
Example #5
0
bool phy_mii_get_partner_pause_enable(void)
{
    if((esp_eth_smi_read(MII_PHY_LINK_PARTNER_ABILITY_REG) & MII_PARTNER_PAUSE)) {
        ESP_LOGD(TAG, "phy_mii_get_partner_pause_enable(TRUE)");
        return true;
    } else {
        ESP_LOGD(TAG, "phy_mii_get_partner_pause_enable(FALSE)");
        return false;
    }
}
Example #6
0
bool phy_mii_check_link_status(void)
{
    if ((esp_eth_smi_read(MII_BASIC_MODE_STATUS_REG) & MII_LINK_STATUS)) {
        ESP_LOGD(TAG, "phy_mii_check_link_status(UP)");
        return true;
    } else {
        ESP_LOGD(TAG, "phy_mii_check_link_status(DOWN)");
        return false;
    }
}
Example #7
0
void phy_lan8720_dump_registers()
{
    ESP_LOGD(TAG, "LAN8720 Registers:");
    ESP_LOGD(TAG, "BCR    0x%04x", esp_eth_smi_read(0x0));
    ESP_LOGD(TAG, "BSR    0x%04x", esp_eth_smi_read(0x1));
    ESP_LOGD(TAG, "PHY1   0x%04x", esp_eth_smi_read(0x2));
    ESP_LOGD(TAG, "PHY2   0x%04x", esp_eth_smi_read(0x3));
    ESP_LOGD(TAG, "ANAR   0x%04x", esp_eth_smi_read(0x4));
    ESP_LOGD(TAG, "ANLPAR 0x%04x", esp_eth_smi_read(0x5));
    ESP_LOGD(TAG, "ANER   0x%04x", esp_eth_smi_read(0x6));
    ESP_LOGD(TAG, "MCSR   0x%04x", esp_eth_smi_read(0x17));
    ESP_LOGD(TAG, "SM     0x%04x", esp_eth_smi_read(0x18));
    ESP_LOGD(TAG, "SECR   0x%04x", esp_eth_smi_read(0x26));
    ESP_LOGD(TAG, "CSIR   0x%04x", esp_eth_smi_read(0x27));
    ESP_LOGD(TAG, "ISR    0x%04x", esp_eth_smi_read(0x29));
    ESP_LOGD(TAG, "IMR    0x%04x", esp_eth_smi_read(0x30));
    ESP_LOGD(TAG, "PSCSR  0x%04x", esp_eth_smi_read(0x31));
}
Example #8
0
void phy_tlk110_dump_registers(void)
{
    ESP_LOGD(TAG, "TLK110 Registers:");
    ESP_LOGD(TAG, "BMCR     0x%04x", esp_eth_smi_read(0x0));
    ESP_LOGD(TAG, "BMSR     0x%04x", esp_eth_smi_read(0x1));
    ESP_LOGD(TAG, "PHYIDR1  0x%04x", esp_eth_smi_read(0x2));
    ESP_LOGD(TAG, "PHYIDR2  0x%04x", esp_eth_smi_read(0x3));
    ESP_LOGD(TAG, "ANAR     0x%04x", esp_eth_smi_read(0x4));
    ESP_LOGD(TAG, "ANLPAR   0x%04x", esp_eth_smi_read(0x5));
    ESP_LOGD(TAG, "ANER     0x%04x", esp_eth_smi_read(0x6));
    ESP_LOGD(TAG, "ANNPTR   0x%04x", esp_eth_smi_read(0x7));
    ESP_LOGD(TAG, "ANLNPTR  0x%04x", esp_eth_smi_read(0x8));
    ESP_LOGD(TAG, "SWSCR1   0x%04x", esp_eth_smi_read(0x9));
    ESP_LOGD(TAG, "SWSCR2   0x%04x", esp_eth_smi_read(0xa));
    ESP_LOGD(TAG, "SWSCR3   0x%04x", esp_eth_smi_read(0xb));
    ESP_LOGD(TAG, "REGCR    0x%04x", esp_eth_smi_read(0xd));
    ESP_LOGD(TAG, "ADDAR    0x%04x", esp_eth_smi_read(0xe));
    ESP_LOGD(TAG, "PHYSTS   0x%04x", esp_eth_smi_read(0x10));
    ESP_LOGD(TAG, "PHYSCR   0x%04x", esp_eth_smi_read(0x11));
    ESP_LOGD(TAG, "MISR1    0x%04x", esp_eth_smi_read(0x12));
    ESP_LOGD(TAG, "MISR2    0x%04x", esp_eth_smi_read(0x13));
    ESP_LOGD(TAG, "FCSCR    0x%04x", esp_eth_smi_read(0x14));
    ESP_LOGD(TAG, "RECR     0x%04x", esp_eth_smi_read(0x15));
    ESP_LOGD(TAG, "BISCR    0x%04x", esp_eth_smi_read(0x16));
    ESP_LOGD(TAG, "RBR      0x%04x", esp_eth_smi_read(0x17));
    ESP_LOGD(TAG, "LEDCR    0x%04x", esp_eth_smi_read(0x18));
    ESP_LOGD(TAG, "PHYCR    0x%04x", esp_eth_smi_read(0x19));
    ESP_LOGD(TAG, "10BTSCR  0x%04x", esp_eth_smi_read(0x1a));
    ESP_LOGD(TAG, "BICSR1   0x%04x", esp_eth_smi_read(0x1b));
    ESP_LOGD(TAG, "BICSR2   0x%04x", esp_eth_smi_read(0x1c));
    ESP_LOGD(TAG, "CDCR     0x%04x", esp_eth_smi_read(0x1e));
    ESP_LOGD(TAG, "TRXCPSR  0x%04x", esp_eth_smi_read(0x42));
    ESP_LOGD(TAG, "PWRBOCR  0x%04x", esp_eth_smi_read(0xae));
    ESP_LOGD(TAG, "VRCR     0x%04x", esp_eth_smi_read(0xD0));
    ESP_LOGD(TAG, "ALCDRR1  0x%04x", esp_eth_smi_read(0x155));
    ESP_LOGD(TAG, "CDSCR1   0x%04x", esp_eth_smi_read(0x170));
    ESP_LOGD(TAG, "CDSCR2   0x%04x", esp_eth_smi_read(0x171));
}
Example #9
0
void phy_mii_enable_flow_ctrl(void)
{
    uint32_t data = esp_eth_smi_read(MII_AUTO_NEG_ADVERTISEMENT_REG);
    data |= MII_ASM_DIR | MII_PAUSE;
    esp_eth_smi_write(MII_AUTO_NEG_ADVERTISEMENT_REG, data);
}