Lines Matching refs:gmac
36 struct sunxi_priv_data *gmac; in sun7i_gmac_setup() local
39 gmac = devm_kzalloc(dev, sizeof(*gmac), GFP_KERNEL); in sun7i_gmac_setup()
40 if (!gmac) in sun7i_gmac_setup()
43 gmac->interface = of_get_phy_mode(dev->of_node); in sun7i_gmac_setup()
45 gmac->tx_clk = devm_clk_get(dev, "allwinner_gmac_tx"); in sun7i_gmac_setup()
46 if (IS_ERR(gmac->tx_clk)) { in sun7i_gmac_setup()
48 return gmac->tx_clk; in sun7i_gmac_setup()
52 gmac->regulator = devm_regulator_get_optional(dev, "phy"); in sun7i_gmac_setup()
53 if (IS_ERR(gmac->regulator)) { in sun7i_gmac_setup()
54 if (PTR_ERR(gmac->regulator) == -EPROBE_DEFER) in sun7i_gmac_setup()
57 gmac->regulator = NULL; in sun7i_gmac_setup()
60 return gmac; in sun7i_gmac_setup()
68 struct sunxi_priv_data *gmac = priv; in sun7i_gmac_init() local
71 if (gmac->regulator) { in sun7i_gmac_init()
72 ret = regulator_enable(gmac->regulator); in sun7i_gmac_init()
83 if (gmac->interface == PHY_INTERFACE_MODE_RGMII) { in sun7i_gmac_init()
84 clk_set_rate(gmac->tx_clk, SUN7I_GMAC_GMII_RGMII_RATE); in sun7i_gmac_init()
85 clk_prepare_enable(gmac->tx_clk); in sun7i_gmac_init()
86 gmac->clk_enabled = 1; in sun7i_gmac_init()
88 clk_set_rate(gmac->tx_clk, SUN7I_GMAC_MII_RATE); in sun7i_gmac_init()
89 clk_prepare(gmac->tx_clk); in sun7i_gmac_init()
97 struct sunxi_priv_data *gmac = priv; in sun7i_gmac_exit() local
99 if (gmac->clk_enabled) { in sun7i_gmac_exit()
100 clk_disable(gmac->tx_clk); in sun7i_gmac_exit()
101 gmac->clk_enabled = 0; in sun7i_gmac_exit()
103 clk_unprepare(gmac->tx_clk); in sun7i_gmac_exit()
105 if (gmac->regulator) in sun7i_gmac_exit()
106 regulator_disable(gmac->regulator); in sun7i_gmac_exit()
111 struct sunxi_priv_data *gmac = priv; in sun7i_fix_speed() local
114 if (gmac->interface != PHY_INTERFACE_MODE_GMII) in sun7i_fix_speed()
117 if (gmac->clk_enabled) { in sun7i_fix_speed()
118 clk_disable(gmac->tx_clk); in sun7i_fix_speed()
119 gmac->clk_enabled = 0; in sun7i_fix_speed()
121 clk_unprepare(gmac->tx_clk); in sun7i_fix_speed()
124 clk_set_rate(gmac->tx_clk, SUN7I_GMAC_GMII_RGMII_RATE); in sun7i_fix_speed()
125 clk_prepare_enable(gmac->tx_clk); in sun7i_fix_speed()
126 gmac->clk_enabled = 1; in sun7i_fix_speed()
128 clk_set_rate(gmac->tx_clk, SUN7I_GMAC_MII_RATE); in sun7i_fix_speed()
129 clk_prepare(gmac->tx_clk); in sun7i_fix_speed()