Lines Matching full:dwmac

2 /* Intel DWMAC platform driver
33 struct intel_dwmac *dwmac = priv; in kmb_eth_fix_mac_speed() local
39 dev_err(dwmac->dev, "Invalid speed\n"); in kmb_eth_fix_mac_speed()
43 ret = clk_set_rate(dwmac->tx_clk, rate); in kmb_eth_fix_mac_speed()
45 dev_err(dwmac->dev, "Failed to configure tx clock rate\n"); in kmb_eth_fix_mac_speed()
56 { .compatible = "intel,keembay-dwmac", .data = &kmb_data },
65 struct intel_dwmac *dwmac; in intel_eth_plat_probe() local
79 dwmac = devm_kzalloc(&pdev->dev, sizeof(*dwmac), GFP_KERNEL); in intel_eth_plat_probe()
80 if (!dwmac) in intel_eth_plat_probe()
83 dwmac->dev = &pdev->dev; in intel_eth_plat_probe()
84 dwmac->tx_clk = NULL; in intel_eth_plat_probe()
91 dwmac->data = device_get_match_data(&pdev->dev); in intel_eth_plat_probe()
92 if (dwmac->data->fix_mac_speed) in intel_eth_plat_probe()
93 plat_dat->fix_mac_speed = dwmac->data->fix_mac_speed; in intel_eth_plat_probe()
96 if (dwmac->data->tx_clk_en) { in intel_eth_plat_probe()
97 dwmac->tx_clk = devm_clk_get(&pdev->dev, "tx_clk"); in intel_eth_plat_probe()
98 if (IS_ERR(dwmac->tx_clk)) in intel_eth_plat_probe()
99 return PTR_ERR(dwmac->tx_clk); in intel_eth_plat_probe()
101 ret = clk_prepare_enable(dwmac->tx_clk); in intel_eth_plat_probe()
109 rate = clk_get_rate(dwmac->tx_clk); in intel_eth_plat_probe()
110 if (dwmac->data->tx_clk_rate && in intel_eth_plat_probe()
111 rate != dwmac->data->tx_clk_rate) { in intel_eth_plat_probe()
112 rate = dwmac->data->tx_clk_rate; in intel_eth_plat_probe()
113 ret = clk_set_rate(dwmac->tx_clk, rate); in intel_eth_plat_probe()
123 if (dwmac->data->ptp_ref_clk_rate && in intel_eth_plat_probe()
124 rate != dwmac->data->ptp_ref_clk_rate) { in intel_eth_plat_probe()
125 rate = dwmac->data->ptp_ref_clk_rate; in intel_eth_plat_probe()
135 plat_dat->bsp_priv = dwmac; in intel_eth_plat_probe()
152 if (dwmac->data->tx_clk_en) in intel_eth_plat_probe()
153 clk_disable_unprepare(dwmac->tx_clk); in intel_eth_plat_probe()
159 struct intel_dwmac *dwmac = get_stmmac_bsp_priv(&pdev->dev); in intel_eth_plat_remove() local
162 if (dwmac->data->tx_clk_en) in intel_eth_plat_remove()
163 clk_disable_unprepare(dwmac->tx_clk); in intel_eth_plat_remove()
178 MODULE_DESCRIPTION("Intel DWMAC platform driver");