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 if (eqos->clk_master_bus.id) in eqos_get_tick_clk_rate_stm32()
838 return clk_get_rate(&eqos->clk_master_bus); in eqos_get_tick_clk_rate_stm32()
888 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_set_full_duplex() local
892 setbits_le32(&eqos->mac_regs->configuration, EQOS_MAC_CONFIGURATION_DM); in eqos_set_full_duplex()
899 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_set_half_duplex() local
903 clrbits_le32(&eqos->mac_regs->configuration, EQOS_MAC_CONFIGURATION_DM); in eqos_set_half_duplex()
906 setbits_le32(&eqos->mtl_regs->txq0_operation_mode, in eqos_set_half_duplex()
914 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_set_gmii_speed() local
918 clrbits_le32(&eqos->mac_regs->configuration, in eqos_set_gmii_speed()
926 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_set_mii_speed_100() local
930 setbits_le32(&eqos->mac_regs->configuration, in eqos_set_mii_speed_100()
938 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_set_mii_speed_10() local
942 clrsetbits_le32(&eqos->mac_regs->configuration, in eqos_set_mii_speed_10()
952 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_set_tx_clk_speed_tegra186() local
958 switch (eqos->phy->speed) { in eqos_set_tx_clk_speed_tegra186()
969 pr_err("invalid speed %d", eqos->phy->speed); in eqos_set_tx_clk_speed_tegra186()
973 ret = clk_set_rate(&eqos->clk_tx, rate); in eqos_set_tx_clk_speed_tegra186()
992 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_set_tx_clk_speed_imx() local
998 switch (eqos->phy->speed) { in eqos_set_tx_clk_speed_imx()
1009 pr_err("invalid speed %d", eqos->phy->speed); in eqos_set_tx_clk_speed_imx()
1025 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_adjust_link() local
1031 if (eqos->phy->duplex) in eqos_adjust_link()
1040 switch (eqos->phy->speed) { in eqos_adjust_link()
1054 pr_err("invalid speed %d", eqos->phy->speed); in eqos_adjust_link()
1063 ret = eqos->config->ops->eqos_calibrate_pads(dev); in eqos_adjust_link()
1070 ret = eqos->config->ops->eqos_disable_calibration(dev); in eqos_adjust_link()
1077 ret = eqos->config->ops->eqos_set_tx_clk_speed(dev); in eqos_adjust_link()
1089 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_write_hwaddr() local
1114 if (!eqos->config->reg_access_always_ok && !eqos->reg_access_ok) in eqos_write_hwaddr()
1120 writel(val, &eqos->mac_regs->address0_high); in eqos_write_hwaddr()
1125 writel(val, &eqos->mac_regs->address0_low); in eqos_write_hwaddr()
1144 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_init() local
1151 if (eqos->config->ops->eqos_start_clks) { in eqos_init()
1152 ret = eqos->config->ops->eqos_start_clks(dev); in eqos_init()
1159 if (!eqos->mii_reseted) { in eqos_init()
1160 ret = eqos->config->ops->eqos_start_resets(dev); in eqos_init()
1166 eqos->mii_reseted = true; in eqos_init()
1170 eqos->reg_access_ok = true; in eqos_init()
1173 val = readl(&eqos->dma_regs->mode); in eqos_init()
1175 writel(val, &eqos->dma_regs->mode); in eqos_init()
1177 if (!(readl(&eqos->dma_regs->mode) & EQOS_DMA_MODE_SWR)) in eqos_init()
1188 ret = eqos->config->ops->eqos_calibrate_pads(dev); in eqos_init()
1193 rate = eqos->config->ops->eqos_get_tick_clk_rate(dev); in eqos_init()
1196 writel(val, &eqos->mac_regs->us_tic_counter); in eqos_init()
1202 if (!eqos->phy) { in eqos_init()
1210 eqos->phy = phy_connect(eqos->mii, addr, dev, in eqos_init()
1211 eqos->config->ops->eqos_get_interface(dev)); in eqos_init()
1212 if (!eqos->phy) { in eqos_init()
1218 if (eqos->max_speed) { in eqos_init()
1219 ret = phy_set_supported(eqos->phy, eqos->max_speed); in eqos_init()
1226 ret = phy_config(eqos->phy); in eqos_init()
1233 ret = phy_startup(eqos->phy); in eqos_init()
1239 if (!eqos->phy->link) { in eqos_init()
1255 phy_shutdown(eqos->phy); in eqos_init()
1257 eqos->config->ops->eqos_stop_resets(dev); in eqos_init()
1258 eqos->mii_reseted = false; in eqos_init()
1260 if (eqos->config->ops->eqos_stop_clks) in eqos_init()
1261 eqos->config->ops->eqos_stop_clks(dev); in eqos_init()
1269 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_enable() local
1274 eqos->tx_desc_idx = 0; in eqos_enable()
1275 eqos->rx_desc_idx = 0; in eqos_enable()
1278 writel(0x60, &eqos->mtl_regs->txq0_quantum_weight - 0x100); in eqos_enable()
1282 setbits_le32(&eqos->mtl_regs->txq0_operation_mode, in eqos_enable()
1288 writel(0x10, &eqos->mtl_regs->txq0_quantum_weight); in eqos_enable()
1291 setbits_le32(&eqos->mtl_regs->rxq0_operation_mode, in eqos_enable()
1297 val = readl(&eqos->mac_regs->hw_feature1); in eqos_enable()
1310 clrsetbits_le32(&eqos->mtl_regs->txq0_operation_mode, in eqos_enable()
1314 clrsetbits_le32(&eqos->mtl_regs->rxq0_operation_mode, in eqos_enable()
1323 setbits_le32(&eqos->mtl_regs->rxq0_operation_mode, in eqos_enable()
1351 clrsetbits_le32(&eqos->mtl_regs->rxq0_operation_mode, in eqos_enable()
1364 clrsetbits_le32(&eqos->mac_regs->rxq_ctrl0, in eqos_enable()
1367 eqos->config->config_mac << in eqos_enable()
1370 clrsetbits_le32(&eqos->mac_regs->rxq_ctrl0, in eqos_enable()
1377 setbits_le32(&eqos->mac_regs->unused_0a4, in eqos_enable()
1380 setbits_le32(&eqos->mac_regs->unused_004[1], in eqos_enable()
1385 setbits_le32(&eqos->mac_regs->q0_tx_flow_ctrl, in eqos_enable()
1388 clrbits_le32(&eqos->mac_regs->txq_prty_map0, in eqos_enable()
1392 clrbits_le32(&eqos->mac_regs->rxq_ctrl2, in eqos_enable()
1396 setbits_le32(&eqos->mac_regs->q0_tx_flow_ctrl, in eqos_enable()
1398 setbits_le32(&eqos->mac_regs->rx_flow_ctrl, in eqos_enable()
1401 clrsetbits_le32(&eqos->mac_regs->configuration, in eqos_enable()
1414 setbits_le32(&eqos->dma_regs->ch0_tx_control, in eqos_enable()
1418 clrsetbits_le32(&eqos->dma_regs->ch0_rx_control, in eqos_enable()
1424 setbits_le32(&eqos->dma_regs->ch0_control, in eqos_enable()
1436 clrsetbits_le32(&eqos->dma_regs->ch0_tx_control, in eqos_enable()
1441 clrsetbits_le32(&eqos->dma_regs->ch0_rx_control, in eqos_enable()
1450 writel(val, &eqos->dma_regs->sysbus_mode); in eqos_enable()
1454 memset(eqos->descs, 0, EQOS_DESCRIPTORS_SIZE); in eqos_enable()
1456 struct eqos_desc *rx_desc = &(eqos->rx_descs[i]); in eqos_enable()
1457 rx_desc->des0 = (u32)(ulong)(eqos->rx_dma_buf + in eqos_enable()
1461 eqos->config->ops->eqos_flush_desc(rx_desc); in eqos_enable()
1462 eqos->config->ops->eqos_inval_buffer(eqos->rx_dma_buf + in eqos_enable()
1467 writel(0, &eqos->dma_regs->ch0_txdesc_list_haddress); in eqos_enable()
1468 writel((ulong)eqos->tx_descs, &eqos->dma_regs->ch0_txdesc_list_address); in eqos_enable()
1470 &eqos->dma_regs->ch0_txdesc_ring_length); in eqos_enable()
1472 writel(0, &eqos->dma_regs->ch0_rxdesc_list_haddress); in eqos_enable()
1473 writel((ulong)eqos->rx_descs, &eqos->dma_regs->ch0_rxdesc_list_address); in eqos_enable()
1475 &eqos->dma_regs->ch0_rxdesc_ring_length); in eqos_enable()
1478 setbits_le32(&eqos->dma_regs->ch0_tx_control, in eqos_enable()
1480 setbits_le32(&eqos->dma_regs->ch0_rx_control, in eqos_enable()
1482 setbits_le32(&eqos->mac_regs->configuration, in eqos_enable()
1492 last_rx_desc = (ulong)&(eqos->rx_descs[(EQOS_DESCRIPTORS_RX - 1)]); in eqos_enable()
1493 writel(last_rx_desc, &eqos->dma_regs->ch0_rxdesc_tail_pointer); in eqos_enable()
1495 eqos->started = true; in eqos_enable()
1513 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_stop() local
1518 if (!eqos->started) in eqos_stop()
1520 eqos->started = false; in eqos_stop()
1521 eqos->reg_access_ok = false; in eqos_stop()
1524 clrbits_le32(&eqos->dma_regs->ch0_tx_control, in eqos_stop()
1529 u32 val = readl(&eqos->mtl_regs->txq0_debug); in eqos_stop()
1538 clrbits_le32(&eqos->mac_regs->configuration, in eqos_stop()
1543 u32 val = readl(&eqos->mtl_regs->rxq0_debug); in eqos_stop()
1553 clrbits_le32(&eqos->dma_regs->ch0_rx_control, in eqos_stop()
1556 if (eqos->phy) { in eqos_stop()
1557 phy_shutdown(eqos->phy); in eqos_stop()
1559 if (eqos->config->ops->eqos_stop_clks) in eqos_stop()
1560 eqos->config->ops->eqos_stop_clks(dev); in eqos_stop()
1567 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_send() local
1574 memcpy(eqos->tx_dma_buf, packet, length); in eqos_send()
1575 eqos->config->ops->eqos_flush_buffer(eqos->tx_dma_buf, length); in eqos_send()
1577 tx_desc = &(eqos->tx_descs[eqos->tx_desc_idx]); in eqos_send()
1578 eqos->tx_desc_idx++; in eqos_send()
1579 eqos->tx_desc_idx %= EQOS_DESCRIPTORS_TX; in eqos_send()
1581 tx_desc->des0 = (ulong)eqos->tx_dma_buf; in eqos_send()
1590 eqos->config->ops->eqos_flush_desc(tx_desc); in eqos_send()
1592 writel((ulong)(&(eqos->tx_descs[eqos->tx_desc_idx])), in eqos_send()
1593 &eqos->dma_regs->ch0_txdesc_tail_pointer); in eqos_send()
1596 eqos->config->ops->eqos_inval_desc(tx_desc); in eqos_send()
1609 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_recv() local
1615 rx_desc = &(eqos->rx_descs[eqos->rx_desc_idx]); in eqos_recv()
1616 eqos->config->ops->eqos_inval_desc(rx_desc); in eqos_recv()
1622 *packetp = eqos->rx_dma_buf + in eqos_recv()
1623 (eqos->rx_desc_idx * EQOS_MAX_PACKET_SIZE); in eqos_recv()
1627 eqos->config->ops->eqos_inval_buffer(*packetp, length); in eqos_recv()
1634 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_free_pkt() local
1640 packet_expected = eqos->rx_dma_buf + in eqos_free_pkt()
1641 (eqos->rx_desc_idx * EQOS_MAX_PACKET_SIZE); in eqos_free_pkt()
1648 eqos->config->ops->eqos_inval_buffer(packet, length); in eqos_free_pkt()
1650 rx_desc = &(eqos->rx_descs[eqos->rx_desc_idx]); in eqos_free_pkt()
1654 eqos->config->ops->eqos_flush_desc(rx_desc); in eqos_free_pkt()
1655 eqos->config->ops->eqos_inval_buffer(packet, length); in eqos_free_pkt()
1665 eqos->config->ops->eqos_flush_desc(rx_desc); in eqos_free_pkt()
1667 writel((ulong)rx_desc, &eqos->dma_regs->ch0_rxdesc_tail_pointer); in eqos_free_pkt()
1669 eqos->rx_desc_idx++; in eqos_free_pkt()
1670 eqos->rx_desc_idx %= EQOS_DESCRIPTORS_RX; in eqos_free_pkt()
1677 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_probe_resources_core() local
1682 eqos->descs = eqos_alloc_descs(EQOS_DESCRIPTORS_TX + in eqos_probe_resources_core()
1684 if (!eqos->descs) { in eqos_probe_resources_core()
1689 eqos->tx_descs = (struct eqos_desc *)eqos->descs; in eqos_probe_resources_core()
1690 eqos->rx_descs = (eqos->tx_descs + EQOS_DESCRIPTORS_TX); in eqos_probe_resources_core()
1691 debug("%s: tx_descs=%p, rx_descs=%p\n", __func__, eqos->tx_descs, in eqos_probe_resources_core()
1692 eqos->rx_descs); in eqos_probe_resources_core()
1694 eqos->tx_dma_buf = memalign(EQOS_BUFFER_ALIGN, EQOS_MAX_PACKET_SIZE); in eqos_probe_resources_core()
1695 if (!eqos->tx_dma_buf) { in eqos_probe_resources_core()
1700 debug("%s: tx_dma_buf=%p\n", __func__, eqos->tx_dma_buf); in eqos_probe_resources_core()
1702 eqos->rx_dma_buf = memalign(EQOS_BUFFER_ALIGN, EQOS_RX_BUFFER_SIZE); in eqos_probe_resources_core()
1703 if (!eqos->rx_dma_buf) { in eqos_probe_resources_core()
1708 debug("%s: rx_dma_buf=%p\n", __func__, eqos->rx_dma_buf); in eqos_probe_resources_core()
1710 eqos->rx_pkt = malloc(EQOS_MAX_PACKET_SIZE); in eqos_probe_resources_core()
1711 if (!eqos->rx_pkt) { in eqos_probe_resources_core()
1716 debug("%s: rx_pkt=%p\n", __func__, eqos->rx_pkt); in eqos_probe_resources_core()
1718 eqos->config->ops->eqos_inval_buffer(eqos->rx_dma_buf, in eqos_probe_resources_core()
1725 free(eqos->rx_dma_buf); in eqos_probe_resources_core()
1727 free(eqos->tx_dma_buf); in eqos_probe_resources_core()
1729 eqos_free_descs(eqos->descs); in eqos_probe_resources_core()
1738 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_remove_resources_core() local
1742 free(eqos->rx_pkt); in eqos_remove_resources_core()
1743 free(eqos->rx_dma_buf); in eqos_remove_resources_core()
1744 free(eqos->tx_dma_buf); in eqos_remove_resources_core()
1745 eqos_free_descs(eqos->descs); in eqos_remove_resources_core()
1754 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_probe_resources_tegra186() local
1759 ret = reset_get_by_name(dev, "eqos", &eqos->reset_ctl); in eqos_probe_resources_tegra186()
1766 &eqos->phy_reset_gpio, in eqos_probe_resources_tegra186()
1773 ret = clk_get_by_name(dev, "slave_bus", &eqos->clk_slave_bus); in eqos_probe_resources_tegra186()
1779 ret = clk_get_by_name(dev, "master_bus", &eqos->clk_master_bus); in eqos_probe_resources_tegra186()
1785 ret = clk_get_by_name(dev, "rx", &eqos->clk_rx); in eqos_probe_resources_tegra186()
1791 ret = clk_get_by_name(dev, "ptp_ref", &eqos->clk_ptp_ref); in eqos_probe_resources_tegra186()
1798 ret = clk_get_by_name(dev, "tx", &eqos->clk_tx); in eqos_probe_resources_tegra186()
1808 clk_free(&eqos->clk_ptp_ref); in eqos_probe_resources_tegra186()
1810 clk_free(&eqos->clk_rx); in eqos_probe_resources_tegra186()
1812 clk_free(&eqos->clk_master_bus); in eqos_probe_resources_tegra186()
1814 clk_free(&eqos->clk_slave_bus); in eqos_probe_resources_tegra186()
1816 dm_gpio_free(dev, &eqos->phy_reset_gpio); in eqos_probe_resources_tegra186()
1818 reset_free(&eqos->reset_ctl); in eqos_probe_resources_tegra186()
1834 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_probe_resources_stm32() local
1841 interface = eqos->config->ops->eqos_get_interface(dev); in eqos_probe_resources_stm32()
1852 eqos->max_speed = dev_read_u32_default(dev, "max-speed", 0); in eqos_probe_resources_stm32()
1854 ret = clk_get_by_name(dev, "stmmaceth", &eqos->clk_master_bus); in eqos_probe_resources_stm32()
1858 ret = clk_get_by_name(dev, "mac-clk-rx", &eqos->clk_rx); in eqos_probe_resources_stm32()
1862 ret = clk_get_by_name(dev, "mac-clk-tx", &eqos->clk_tx); in eqos_probe_resources_stm32()
1867 ret = clk_get_by_name(dev, "eth-ck", &eqos->clk_ck); in eqos_probe_resources_stm32()
1871 eqos->phyaddr = -1; in eqos_probe_resources_stm32()
1878 &eqos->phy_reset_gpio, in eqos_probe_resources_stm32()
1885 eqos->reset_delays[1] = 2; in eqos_probe_resources_stm32()
1887 eqos->phyaddr = ofnode_read_u32_default(phandle_args.node, in eqos_probe_resources_stm32()
1891 if (!dm_gpio_is_valid(&eqos->phy_reset_gpio)) { in eqos_probe_resources_stm32()
1898 &eqos->phy_reset_gpio, reset_flags); in eqos_probe_resources_stm32()
1901 eqos->reset_delays, 3); in eqos_probe_resources_stm32()
1933 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_probe_resources_imx() local
1938 interface = eqos->config->ops->eqos_get_interface(dev); in eqos_probe_resources_imx()
1966 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_remove_resources_tegra186() local
1971 clk_free(&eqos->clk_tx); in eqos_remove_resources_tegra186()
1972 clk_free(&eqos->clk_ptp_ref); in eqos_remove_resources_tegra186()
1973 clk_free(&eqos->clk_rx); in eqos_remove_resources_tegra186()
1974 clk_free(&eqos->clk_slave_bus); in eqos_remove_resources_tegra186()
1975 clk_free(&eqos->clk_master_bus); in eqos_remove_resources_tegra186()
1977 dm_gpio_free(dev, &eqos->phy_reset_gpio); in eqos_remove_resources_tegra186()
1978 reset_free(&eqos->reset_ctl); in eqos_remove_resources_tegra186()
1988 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_remove_resources_stm32() local
1992 if (clk_valid(&eqos->clk_tx)) in eqos_remove_resources_stm32()
1993 clk_free(&eqos->clk_tx); in eqos_remove_resources_stm32()
1994 if (clk_valid(&eqos->clk_rx)) in eqos_remove_resources_stm32()
1995 clk_free(&eqos->clk_rx); in eqos_remove_resources_stm32()
1996 clk_free(&eqos->clk_master_bus); in eqos_remove_resources_stm32()
1997 if (clk_valid(&eqos->clk_ck)) in eqos_remove_resources_stm32()
1998 clk_free(&eqos->clk_ck); in eqos_remove_resources_stm32()
2001 if (dm_gpio_is_valid(&eqos->phy_reset_gpio)) in eqos_remove_resources_stm32()
2002 dm_gpio_free(dev, &eqos->phy_reset_gpio); in eqos_remove_resources_stm32()
2017 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_probe() local
2022 eqos->dev = dev; in eqos_probe()
2023 eqos->config = (void *)dev_get_driver_data(dev); in eqos_probe()
2025 eqos->regs = dev_read_addr(dev); in eqos_probe()
2026 if (eqos->regs == FDT_ADDR_T_NONE) { in eqos_probe()
2030 eqos->mac_regs = (void *)(eqos->regs + EQOS_MAC_REGS_BASE); in eqos_probe()
2031 eqos->mtl_regs = (void *)(eqos->regs + EQOS_MTL_REGS_BASE); in eqos_probe()
2032 eqos->dma_regs = (void *)(eqos->regs + EQOS_DMA_REGS_BASE); in eqos_probe()
2033 eqos->tegra186_regs = (void *)(eqos->regs + EQOS_TEGRA186_REGS_BASE); in eqos_probe()
2041 ret = eqos->config->ops->eqos_probe_resources(dev); in eqos_probe()
2048 eqos->mii = eth_phy_get_mdio_bus(dev); in eqos_probe()
2050 if (!eqos->mii) { in eqos_probe()
2051 eqos->mii = mdio_alloc(); in eqos_probe()
2052 if (!eqos->mii) { in eqos_probe()
2057 eqos->mii->read = eqos_mdio_read; in eqos_probe()
2058 eqos->mii->write = eqos_mdio_write; in eqos_probe()
2059 eqos->mii->priv = eqos; in eqos_probe()
2060 strcpy(eqos->mii->name, dev->name); in eqos_probe()
2062 ret = mdio_register(eqos->mii); in eqos_probe()
2070 eth_phy_set_mdio_bus(dev, eqos->mii); in eqos_probe()
2077 mdio_free(eqos->mii); in eqos_probe()
2079 eqos->config->ops->eqos_remove_resources(dev); in eqos_probe()
2089 struct eqos_priv *eqos = dev_get_priv(dev); in eqos_remove() local
2093 mdio_unregister(eqos->mii); in eqos_remove()
2094 mdio_free(eqos->mii); in eqos_remove()
2095 eqos->config->ops->eqos_remove_resources(dev); in eqos_remove()