Lines Matching refs:eqos
390 static int eqos_mdio_wait_idle(struct eqos_priv *eqos) in eqos_mdio_wait_idle() argument
392 return wait_for_bit_le32(&eqos->mac_regs->mdio_address, in eqos_mdio_wait_idle()
400 struct eqos_priv *eqos = bus->priv; in eqos_mdio_read() local
404 debug("%s(dev=%p, addr=%x, reg=%d):\n", __func__, eqos->dev, mdio_addr, in eqos_mdio_read()
407 ret = eqos_mdio_wait_idle(eqos); in eqos_mdio_read()
413 val = readl(&eqos->mac_regs->mdio_address); in eqos_mdio_read()
418 (eqos->config->config_mac_mdio << in eqos_mdio_read()
423 writel(val, &eqos->mac_regs->mdio_address); in eqos_mdio_read()
425 udelay(eqos->config->mdio_wait); in eqos_mdio_read()
427 ret = eqos_mdio_wait_idle(eqos); in eqos_mdio_read()
433 val = readl(&eqos->mac_regs->mdio_data); in eqos_mdio_read()
444 struct eqos_priv *eqos = bus->priv; in eqos_mdio_write() local
448 debug("%s(dev=%p, addr=%x, reg=%d, val=%x):\n", __func__, eqos->dev, in eqos_mdio_write()
451 ret = eqos_mdio_wait_idle(eqos); in eqos_mdio_write()
457 writel(mdio_val, &eqos->mac_regs->mdio_data); in eqos_mdio_write()
459 val = readl(&eqos->mac_regs->mdio_address); in eqos_mdio_write()
464 (eqos->config->config_mac_mdio << in eqos_mdio_write()
469 writel(val, &eqos->mac_regs->mdio_address); in eqos_mdio_write()
471 udelay(eqos->config->mdio_wait); in eqos_mdio_write()
473 ret = eqos_mdio_wait_idle(eqos); in eqos_mdio_write()
486 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_start_clks_tegra186() local
491 ret = clk_enable(&eqos->clk_slave_bus); in eqos_start_clks_tegra186()
497 ret = clk_enable(&eqos->clk_master_bus); in eqos_start_clks_tegra186()
503 ret = clk_enable(&eqos->clk_rx); in eqos_start_clks_tegra186()
509 ret = clk_enable(&eqos->clk_ptp_ref); in eqos_start_clks_tegra186()
515 ret = clk_set_rate(&eqos->clk_ptp_ref, 125 * 1000 * 1000); in eqos_start_clks_tegra186()
521 ret = clk_enable(&eqos->clk_tx); in eqos_start_clks_tegra186()
533 clk_disable(&eqos->clk_ptp_ref); in eqos_start_clks_tegra186()
535 clk_disable(&eqos->clk_rx); in eqos_start_clks_tegra186()
537 clk_disable(&eqos->clk_master_bus); in eqos_start_clks_tegra186()
539 clk_disable(&eqos->clk_slave_bus); in eqos_start_clks_tegra186()
549 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_start_clks_stm32() local
554 ret = clk_enable(&eqos->clk_master_bus); in eqos_start_clks_stm32()
560 if (clk_valid(&eqos->clk_rx)) { in eqos_start_clks_stm32()
561 ret = clk_enable(&eqos->clk_rx); in eqos_start_clks_stm32()
568 if (clk_valid(&eqos->clk_tx)) { in eqos_start_clks_stm32()
569 ret = clk_enable(&eqos->clk_tx); in eqos_start_clks_stm32()
576 if (clk_valid(&eqos->clk_ck)) { in eqos_start_clks_stm32()
577 ret = clk_enable(&eqos->clk_ck); in eqos_start_clks_stm32()
590 if (clk_valid(&eqos->clk_tx)) in eqos_start_clks_stm32()
591 clk_disable(&eqos->clk_tx); in eqos_start_clks_stm32()
593 if (clk_valid(&eqos->clk_rx)) in eqos_start_clks_stm32()
594 clk_disable(&eqos->clk_rx); in eqos_start_clks_stm32()
596 clk_disable(&eqos->clk_master_bus); in eqos_start_clks_stm32()
611 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_stop_clks_tegra186() local
615 clk_disable(&eqos->clk_tx); in eqos_stop_clks_tegra186()
616 clk_disable(&eqos->clk_ptp_ref); in eqos_stop_clks_tegra186()
617 clk_disable(&eqos->clk_rx); in eqos_stop_clks_tegra186()
618 clk_disable(&eqos->clk_master_bus); in eqos_stop_clks_tegra186()
619 clk_disable(&eqos->clk_slave_bus); in eqos_stop_clks_tegra186()
628 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_stop_clks_stm32() local
632 if (clk_valid(&eqos->clk_tx)) in eqos_stop_clks_stm32()
633 clk_disable(&eqos->clk_tx); in eqos_stop_clks_stm32()
634 if (clk_valid(&eqos->clk_rx)) in eqos_stop_clks_stm32()
635 clk_disable(&eqos->clk_rx); in eqos_stop_clks_stm32()
636 clk_disable(&eqos->clk_master_bus); in eqos_stop_clks_stm32()
637 if (clk_valid(&eqos->clk_ck)) in eqos_stop_clks_stm32()
638 clk_disable(&eqos->clk_ck); in eqos_stop_clks_stm32()
651 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_start_resets_tegra186() local
656 ret = dm_gpio_set_value(&eqos->phy_reset_gpio, 1); in eqos_start_resets_tegra186()
664 ret = dm_gpio_set_value(&eqos->phy_reset_gpio, 0); in eqos_start_resets_tegra186()
670 ret = reset_assert(&eqos->reset_ctl); in eqos_start_resets_tegra186()
678 ret = reset_deassert(&eqos->reset_ctl); in eqos_start_resets_tegra186()
691 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_start_resets_stm32() local
695 if (dm_gpio_is_valid(&eqos->phy_reset_gpio)) { in eqos_start_resets_stm32()
696 ret = dm_gpio_set_value(&eqos->phy_reset_gpio, 0); in eqos_start_resets_stm32()
703 udelay(eqos->reset_delays[0]); in eqos_start_resets_stm32()
705 ret = dm_gpio_set_value(&eqos->phy_reset_gpio, 1); in eqos_start_resets_stm32()
712 udelay(eqos->reset_delays[1]); in eqos_start_resets_stm32()
714 ret = dm_gpio_set_value(&eqos->phy_reset_gpio, 0); in eqos_start_resets_stm32()
721 udelay(eqos->reset_delays[2]); in eqos_start_resets_stm32()
736 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_stop_resets_tegra186() local
738 reset_assert(&eqos->reset_ctl); in eqos_stop_resets_tegra186()
739 dm_gpio_set_value(&eqos->phy_reset_gpio, 1); in eqos_stop_resets_tegra186()
747 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_stop_resets_stm32() local
750 if (dm_gpio_is_valid(&eqos->phy_reset_gpio)) { in eqos_stop_resets_stm32()
751 ret = dm_gpio_set_value(&eqos->phy_reset_gpio, 1); in eqos_stop_resets_stm32()
770 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_calibrate_pads_tegra186() local
775 setbits_le32(&eqos->tegra186_regs->sdmemcomppadctrl, in eqos_calibrate_pads_tegra186()
780 setbits_le32(&eqos->tegra186_regs->auto_cal_config, in eqos_calibrate_pads_tegra186()
783 ret = wait_for_bit_le32(&eqos->tegra186_regs->auto_cal_status, in eqos_calibrate_pads_tegra186()
790 ret = wait_for_bit_le32(&eqos->tegra186_regs->auto_cal_status, in eqos_calibrate_pads_tegra186()
800 clrbits_le32(&eqos->tegra186_regs->sdmemcomppadctrl, in eqos_calibrate_pads_tegra186()
810 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_disable_calibration_tegra186() local
814 clrbits_le32(&eqos->tegra186_regs->auto_cal_config, in eqos_disable_calibration_tegra186()
823 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_get_tick_clk_rate_tegra186() local
825 return clk_get_rate(&eqos->clk_slave_bus); in eqos_get_tick_clk_rate_tegra186()
835 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_get_tick_clk_rate_stm32() local
837 return clk_get_rate(&eqos->clk_master_bus); in eqos_get_tick_clk_rate_stm32()
885 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_set_full_duplex() local
889 setbits_le32(&eqos->mac_regs->configuration, EQOS_MAC_CONFIGURATION_DM); in eqos_set_full_duplex()
896 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_set_half_duplex() local
900 clrbits_le32(&eqos->mac_regs->configuration, EQOS_MAC_CONFIGURATION_DM); in eqos_set_half_duplex()
903 setbits_le32(&eqos->mtl_regs->txq0_operation_mode, in eqos_set_half_duplex()
911 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_set_gmii_speed() local
915 clrbits_le32(&eqos->mac_regs->configuration, in eqos_set_gmii_speed()
923 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_set_mii_speed_100() local
927 setbits_le32(&eqos->mac_regs->configuration, in eqos_set_mii_speed_100()
935 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_set_mii_speed_10() local
939 clrsetbits_le32(&eqos->mac_regs->configuration, in eqos_set_mii_speed_10()
949 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_set_tx_clk_speed_tegra186() local
955 switch (eqos->phy->speed) { in eqos_set_tx_clk_speed_tegra186()
966 pr_err("invalid speed %d", eqos->phy->speed); in eqos_set_tx_clk_speed_tegra186()
970 ret = clk_set_rate(&eqos->clk_tx, rate); in eqos_set_tx_clk_speed_tegra186()
989 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_set_tx_clk_speed_imx() local
995 switch (eqos->phy->speed) { in eqos_set_tx_clk_speed_imx()
1006 pr_err("invalid speed %d", eqos->phy->speed); in eqos_set_tx_clk_speed_imx()
1022 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_adjust_link() local
1028 if (eqos->phy->duplex) in eqos_adjust_link()
1037 switch (eqos->phy->speed) { in eqos_adjust_link()
1051 pr_err("invalid speed %d", eqos->phy->speed); in eqos_adjust_link()
1060 ret = eqos->config->ops->eqos_calibrate_pads(dev); in eqos_adjust_link()
1067 ret = eqos->config->ops->eqos_disable_calibration(dev); in eqos_adjust_link()
1074 ret = eqos->config->ops->eqos_set_tx_clk_speed(dev); in eqos_adjust_link()
1086 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_write_hwaddr() local
1111 if (!eqos->config->reg_access_always_ok && !eqos->reg_access_ok) in eqos_write_hwaddr()
1117 writel(val, &eqos->mac_regs->address0_high); in eqos_write_hwaddr()
1122 writel(val, &eqos->mac_regs->address0_low); in eqos_write_hwaddr()
1141 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_init() local
1148 if (eqos->config->ops->eqos_start_clks) { in eqos_init()
1149 ret = eqos->config->ops->eqos_start_clks(dev); in eqos_init()
1156 if (!eqos->mii_reseted) { in eqos_init()
1157 ret = eqos->config->ops->eqos_start_resets(dev); in eqos_init()
1163 eqos->mii_reseted = true; in eqos_init()
1167 eqos->reg_access_ok = true; in eqos_init()
1170 val = readl(&eqos->dma_regs->mode); in eqos_init()
1172 writel(val, &eqos->dma_regs->mode); in eqos_init()
1174 if (!(readl(&eqos->dma_regs->mode) & EQOS_DMA_MODE_SWR)) in eqos_init()
1185 ret = eqos->config->ops->eqos_calibrate_pads(dev); in eqos_init()
1190 rate = eqos->config->ops->eqos_get_tick_clk_rate(dev); in eqos_init()
1193 writel(val, &eqos->mac_regs->us_tic_counter); in eqos_init()
1199 if (!eqos->phy) { in eqos_init()
1207 eqos->phy = phy_connect(eqos->mii, addr, dev, in eqos_init()
1208 eqos->config->ops->eqos_get_interface(dev)); in eqos_init()
1209 if (!eqos->phy) { in eqos_init()
1215 if (eqos->max_speed) { in eqos_init()
1216 ret = phy_set_supported(eqos->phy, eqos->max_speed); in eqos_init()
1223 ret = phy_config(eqos->phy); in eqos_init()
1230 ret = phy_startup(eqos->phy); in eqos_init()
1236 if (!eqos->phy->link) { in eqos_init()
1252 phy_shutdown(eqos->phy); in eqos_init()
1254 eqos->config->ops->eqos_stop_resets(dev); in eqos_init()
1255 eqos->mii_reseted = false; in eqos_init()
1257 if (eqos->config->ops->eqos_stop_clks) in eqos_init()
1258 eqos->config->ops->eqos_stop_clks(dev); in eqos_init()
1266 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_enable() local
1271 eqos->tx_desc_idx = 0; in eqos_enable()
1272 eqos->rx_desc_idx = 0; in eqos_enable()
1275 writel(0x60, &eqos->mtl_regs->txq0_quantum_weight - 0x100); in eqos_enable()
1279 setbits_le32(&eqos->mtl_regs->txq0_operation_mode, in eqos_enable()
1285 writel(0x10, &eqos->mtl_regs->txq0_quantum_weight); in eqos_enable()
1288 setbits_le32(&eqos->mtl_regs->rxq0_operation_mode, in eqos_enable()
1294 val = readl(&eqos->mac_regs->hw_feature1); in eqos_enable()
1307 clrsetbits_le32(&eqos->mtl_regs->txq0_operation_mode, in eqos_enable()
1311 clrsetbits_le32(&eqos->mtl_regs->rxq0_operation_mode, in eqos_enable()
1320 setbits_le32(&eqos->mtl_regs->rxq0_operation_mode, in eqos_enable()
1348 clrsetbits_le32(&eqos->mtl_regs->rxq0_operation_mode, in eqos_enable()
1361 clrsetbits_le32(&eqos->mac_regs->rxq_ctrl0, in eqos_enable()
1364 eqos->config->config_mac << in eqos_enable()
1367 clrsetbits_le32(&eqos->mac_regs->rxq_ctrl0, in eqos_enable()
1374 setbits_le32(&eqos->mac_regs->unused_0a4, in eqos_enable()
1377 setbits_le32(&eqos->mac_regs->unused_004[1], in eqos_enable()
1382 setbits_le32(&eqos->mac_regs->q0_tx_flow_ctrl, in eqos_enable()
1385 clrbits_le32(&eqos->mac_regs->txq_prty_map0, in eqos_enable()
1389 clrbits_le32(&eqos->mac_regs->rxq_ctrl2, in eqos_enable()
1393 setbits_le32(&eqos->mac_regs->q0_tx_flow_ctrl, in eqos_enable()
1395 setbits_le32(&eqos->mac_regs->rx_flow_ctrl, in eqos_enable()
1398 clrsetbits_le32(&eqos->mac_regs->configuration, in eqos_enable()
1411 setbits_le32(&eqos->dma_regs->ch0_tx_control, in eqos_enable()
1415 clrsetbits_le32(&eqos->dma_regs->ch0_rx_control, in eqos_enable()
1421 setbits_le32(&eqos->dma_regs->ch0_control, in eqos_enable()
1433 clrsetbits_le32(&eqos->dma_regs->ch0_tx_control, in eqos_enable()
1438 clrsetbits_le32(&eqos->dma_regs->ch0_rx_control, in eqos_enable()
1447 writel(val, &eqos->dma_regs->sysbus_mode); in eqos_enable()
1451 memset(eqos->descs, 0, EQOS_DESCRIPTORS_SIZE); in eqos_enable()
1453 struct eqos_desc *rx_desc = &(eqos->rx_descs[i]); in eqos_enable()
1454 rx_desc->des0 = (u32)(ulong)(eqos->rx_dma_buf + in eqos_enable()
1458 eqos->config->ops->eqos_flush_desc(rx_desc); in eqos_enable()
1459 eqos->config->ops->eqos_inval_buffer(eqos->rx_dma_buf + in eqos_enable()
1464 writel(0, &eqos->dma_regs->ch0_txdesc_list_haddress); in eqos_enable()
1465 writel((ulong)eqos->tx_descs, &eqos->dma_regs->ch0_txdesc_list_address); in eqos_enable()
1467 &eqos->dma_regs->ch0_txdesc_ring_length); in eqos_enable()
1469 writel(0, &eqos->dma_regs->ch0_rxdesc_list_haddress); in eqos_enable()
1470 writel((ulong)eqos->rx_descs, &eqos->dma_regs->ch0_rxdesc_list_address); in eqos_enable()
1472 &eqos->dma_regs->ch0_rxdesc_ring_length); in eqos_enable()
1475 setbits_le32(&eqos->dma_regs->ch0_tx_control, in eqos_enable()
1477 setbits_le32(&eqos->dma_regs->ch0_rx_control, in eqos_enable()
1479 setbits_le32(&eqos->mac_regs->configuration, in eqos_enable()
1489 last_rx_desc = (ulong)&(eqos->rx_descs[(EQOS_DESCRIPTORS_RX - 1)]); in eqos_enable()
1490 writel(last_rx_desc, &eqos->dma_regs->ch0_rxdesc_tail_pointer); in eqos_enable()
1492 eqos->started = true; in eqos_enable()
1510 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_stop() local
1515 if (!eqos->started) in eqos_stop()
1517 eqos->started = false; in eqos_stop()
1518 eqos->reg_access_ok = false; in eqos_stop()
1521 clrbits_le32(&eqos->dma_regs->ch0_tx_control, in eqos_stop()
1526 u32 val = readl(&eqos->mtl_regs->txq0_debug); in eqos_stop()
1535 clrbits_le32(&eqos->mac_regs->configuration, in eqos_stop()
1540 u32 val = readl(&eqos->mtl_regs->rxq0_debug); in eqos_stop()
1550 clrbits_le32(&eqos->dma_regs->ch0_rx_control, in eqos_stop()
1553 if (eqos->phy) { in eqos_stop()
1554 phy_shutdown(eqos->phy); in eqos_stop()
1556 if (eqos->config->ops->eqos_stop_clks) in eqos_stop()
1557 eqos->config->ops->eqos_stop_clks(dev); in eqos_stop()
1564 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_send() local
1571 memcpy(eqos->tx_dma_buf, packet, length); in eqos_send()
1572 eqos->config->ops->eqos_flush_buffer(eqos->tx_dma_buf, length); in eqos_send()
1574 tx_desc = &(eqos->tx_descs[eqos->tx_desc_idx]); in eqos_send()
1575 eqos->tx_desc_idx++; in eqos_send()
1576 eqos->tx_desc_idx %= EQOS_DESCRIPTORS_TX; in eqos_send()
1578 tx_desc->des0 = (ulong)eqos->tx_dma_buf; in eqos_send()
1587 eqos->config->ops->eqos_flush_desc(tx_desc); in eqos_send()
1589 writel((ulong)(&(eqos->tx_descs[eqos->tx_desc_idx])), in eqos_send()
1590 &eqos->dma_regs->ch0_txdesc_tail_pointer); in eqos_send()
1593 eqos->config->ops->eqos_inval_desc(tx_desc); in eqos_send()
1606 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_recv() local
1612 rx_desc = &(eqos->rx_descs[eqos->rx_desc_idx]); in eqos_recv()
1613 eqos->config->ops->eqos_inval_desc(rx_desc); in eqos_recv()
1619 *packetp = eqos->rx_dma_buf + in eqos_recv()
1620 (eqos->rx_desc_idx * EQOS_MAX_PACKET_SIZE); in eqos_recv()
1624 eqos->config->ops->eqos_inval_buffer(*packetp, length); in eqos_recv()
1631 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_free_pkt() local
1637 packet_expected = eqos->rx_dma_buf + in eqos_free_pkt()
1638 (eqos->rx_desc_idx * EQOS_MAX_PACKET_SIZE); in eqos_free_pkt()
1645 eqos->config->ops->eqos_inval_buffer(packet, length); in eqos_free_pkt()
1647 rx_desc = &(eqos->rx_descs[eqos->rx_desc_idx]); in eqos_free_pkt()
1651 eqos->config->ops->eqos_flush_desc(rx_desc); in eqos_free_pkt()
1652 eqos->config->ops->eqos_inval_buffer(packet, length); in eqos_free_pkt()
1662 eqos->config->ops->eqos_flush_desc(rx_desc); in eqos_free_pkt()
1664 writel((ulong)rx_desc, &eqos->dma_regs->ch0_rxdesc_tail_pointer); in eqos_free_pkt()
1666 eqos->rx_desc_idx++; in eqos_free_pkt()
1667 eqos->rx_desc_idx %= EQOS_DESCRIPTORS_RX; in eqos_free_pkt()
1674 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_probe_resources_core() local
1679 eqos->descs = eqos_alloc_descs(EQOS_DESCRIPTORS_TX + in eqos_probe_resources_core()
1681 if (!eqos->descs) { in eqos_probe_resources_core()
1686 eqos->tx_descs = (struct eqos_desc *)eqos->descs; in eqos_probe_resources_core()
1687 eqos->rx_descs = (eqos->tx_descs + EQOS_DESCRIPTORS_TX); in eqos_probe_resources_core()
1688 debug("%s: tx_descs=%p, rx_descs=%p\n", __func__, eqos->tx_descs, in eqos_probe_resources_core()
1689 eqos->rx_descs); in eqos_probe_resources_core()
1691 eqos->tx_dma_buf = memalign(EQOS_BUFFER_ALIGN, EQOS_MAX_PACKET_SIZE); in eqos_probe_resources_core()
1692 if (!eqos->tx_dma_buf) { in eqos_probe_resources_core()
1697 debug("%s: tx_dma_buf=%p\n", __func__, eqos->tx_dma_buf); in eqos_probe_resources_core()
1699 eqos->rx_dma_buf = memalign(EQOS_BUFFER_ALIGN, EQOS_RX_BUFFER_SIZE); in eqos_probe_resources_core()
1700 if (!eqos->rx_dma_buf) { in eqos_probe_resources_core()
1705 debug("%s: rx_dma_buf=%p\n", __func__, eqos->rx_dma_buf); in eqos_probe_resources_core()
1707 eqos->rx_pkt = malloc(EQOS_MAX_PACKET_SIZE); in eqos_probe_resources_core()
1708 if (!eqos->rx_pkt) { in eqos_probe_resources_core()
1713 debug("%s: rx_pkt=%p\n", __func__, eqos->rx_pkt); in eqos_probe_resources_core()
1715 eqos->config->ops->eqos_inval_buffer(eqos->rx_dma_buf, in eqos_probe_resources_core()
1722 free(eqos->rx_dma_buf); in eqos_probe_resources_core()
1724 free(eqos->tx_dma_buf); in eqos_probe_resources_core()
1726 eqos_free_descs(eqos->descs); in eqos_probe_resources_core()
1735 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_remove_resources_core() local
1739 free(eqos->rx_pkt); in eqos_remove_resources_core()
1740 free(eqos->rx_dma_buf); in eqos_remove_resources_core()
1741 free(eqos->tx_dma_buf); in eqos_remove_resources_core()
1742 eqos_free_descs(eqos->descs); in eqos_remove_resources_core()
1751 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_probe_resources_tegra186() local
1756 ret = reset_get_by_name(dev, "eqos", &eqos->reset_ctl); in eqos_probe_resources_tegra186()
1763 &eqos->phy_reset_gpio, in eqos_probe_resources_tegra186()
1770 ret = clk_get_by_name(dev, "slave_bus", &eqos->clk_slave_bus); in eqos_probe_resources_tegra186()
1776 ret = clk_get_by_name(dev, "master_bus", &eqos->clk_master_bus); in eqos_probe_resources_tegra186()
1782 ret = clk_get_by_name(dev, "rx", &eqos->clk_rx); in eqos_probe_resources_tegra186()
1788 ret = clk_get_by_name(dev, "ptp_ref", &eqos->clk_ptp_ref); in eqos_probe_resources_tegra186()
1795 ret = clk_get_by_name(dev, "tx", &eqos->clk_tx); in eqos_probe_resources_tegra186()
1805 clk_free(&eqos->clk_ptp_ref); in eqos_probe_resources_tegra186()
1807 clk_free(&eqos->clk_rx); in eqos_probe_resources_tegra186()
1809 clk_free(&eqos->clk_master_bus); in eqos_probe_resources_tegra186()
1811 clk_free(&eqos->clk_slave_bus); in eqos_probe_resources_tegra186()
1813 dm_gpio_free(dev, &eqos->phy_reset_gpio); in eqos_probe_resources_tegra186()
1815 reset_free(&eqos->reset_ctl); in eqos_probe_resources_tegra186()
1831 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_probe_resources_stm32() local
1838 interface = eqos->config->ops->eqos_get_interface(dev); in eqos_probe_resources_stm32()
1849 eqos->max_speed = dev_read_u32_default(dev, "max-speed", 0); in eqos_probe_resources_stm32()
1851 ret = clk_get_by_name(dev, "stmmaceth", &eqos->clk_master_bus); in eqos_probe_resources_stm32()
1857 ret = clk_get_by_name(dev, "mac-clk-rx", &eqos->clk_rx); in eqos_probe_resources_stm32()
1861 ret = clk_get_by_name(dev, "mac-clk-tx", &eqos->clk_tx); in eqos_probe_resources_stm32()
1866 ret = clk_get_by_name(dev, "eth-ck", &eqos->clk_ck); in eqos_probe_resources_stm32()
1870 eqos->phyaddr = -1; in eqos_probe_resources_stm32()
1877 &eqos->phy_reset_gpio, in eqos_probe_resources_stm32()
1884 eqos->reset_delays[1] = 2; in eqos_probe_resources_stm32()
1886 eqos->phyaddr = ofnode_read_u32_default(phandle_args.node, in eqos_probe_resources_stm32()
1890 if (!dm_gpio_is_valid(&eqos->phy_reset_gpio)) { in eqos_probe_resources_stm32()
1897 &eqos->phy_reset_gpio, reset_flags); in eqos_probe_resources_stm32()
1900 eqos->reset_delays, 3); in eqos_probe_resources_stm32()
1932 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_probe_resources_imx() local
1937 interface = eqos->config->ops->eqos_get_interface(dev); in eqos_probe_resources_imx()
1965 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_remove_resources_tegra186() local
1970 clk_free(&eqos->clk_tx); in eqos_remove_resources_tegra186()
1971 clk_free(&eqos->clk_ptp_ref); in eqos_remove_resources_tegra186()
1972 clk_free(&eqos->clk_rx); in eqos_remove_resources_tegra186()
1973 clk_free(&eqos->clk_slave_bus); in eqos_remove_resources_tegra186()
1974 clk_free(&eqos->clk_master_bus); in eqos_remove_resources_tegra186()
1976 dm_gpio_free(dev, &eqos->phy_reset_gpio); in eqos_remove_resources_tegra186()
1977 reset_free(&eqos->reset_ctl); in eqos_remove_resources_tegra186()
1987 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_remove_resources_stm32() local
1991 if (clk_valid(&eqos->clk_tx)) in eqos_remove_resources_stm32()
1992 clk_free(&eqos->clk_tx); in eqos_remove_resources_stm32()
1993 if (clk_valid(&eqos->clk_rx)) in eqos_remove_resources_stm32()
1994 clk_free(&eqos->clk_rx); in eqos_remove_resources_stm32()
1995 clk_free(&eqos->clk_master_bus); in eqos_remove_resources_stm32()
1996 if (clk_valid(&eqos->clk_ck)) in eqos_remove_resources_stm32()
1997 clk_free(&eqos->clk_ck); in eqos_remove_resources_stm32()
2000 if (dm_gpio_is_valid(&eqos->phy_reset_gpio)) in eqos_remove_resources_stm32()
2001 dm_gpio_free(dev, &eqos->phy_reset_gpio); in eqos_remove_resources_stm32()
2016 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_probe() local
2021 eqos->dev = dev; in eqos_probe()
2022 eqos->config = (void *)dev_get_driver_data(dev); in eqos_probe()
2024 eqos->regs = dev_read_addr(dev); in eqos_probe()
2025 if (eqos->regs == FDT_ADDR_T_NONE) { in eqos_probe()
2029 eqos->mac_regs = (void *)(eqos->regs + EQOS_MAC_REGS_BASE); in eqos_probe()
2030 eqos->mtl_regs = (void *)(eqos->regs + EQOS_MTL_REGS_BASE); in eqos_probe()
2031 eqos->dma_regs = (void *)(eqos->regs + EQOS_DMA_REGS_BASE); in eqos_probe()
2032 eqos->tegra186_regs = (void *)(eqos->regs + EQOS_TEGRA186_REGS_BASE); in eqos_probe()
2040 ret = eqos->config->ops->eqos_probe_resources(dev); in eqos_probe()
2047 eqos->mii = eth_phy_get_mdio_bus(dev); in eqos_probe()
2049 if (!eqos->mii) { in eqos_probe()
2050 eqos->mii = mdio_alloc(); in eqos_probe()
2051 if (!eqos->mii) { in eqos_probe()
2056 eqos->mii->read = eqos_mdio_read; in eqos_probe()
2057 eqos->mii->write = eqos_mdio_write; in eqos_probe()
2058 eqos->mii->priv = eqos; in eqos_probe()
2059 strcpy(eqos->mii->name, dev->name); in eqos_probe()
2061 ret = mdio_register(eqos->mii); in eqos_probe()
2069 eth_phy_set_mdio_bus(dev, eqos->mii); in eqos_probe()
2076 mdio_free(eqos->mii); in eqos_probe()
2078 eqos->config->ops->eqos_remove_resources(dev); in eqos_probe()
2088 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_remove() local
2092 mdio_unregister(eqos->mii); in eqos_remove()
2093 mdio_free(eqos->mii); in eqos_remove()
2094 eqos->config->ops->eqos_remove_resources(dev); in eqos_remove()