Lines Matching defs:gmac
32 struct sunxi_priv_data *gmac = priv;
35 if (gmac->regulator) {
36 ret = regulator_enable(gmac->regulator);
47 if (phy_interface_mode_is_rgmii(gmac->interface)) {
48 clk_set_rate(gmac->tx_clk, SUN7I_GMAC_GMII_RGMII_RATE);
49 clk_prepare_enable(gmac->tx_clk);
50 gmac->clk_enabled = 1;
52 clk_set_rate(gmac->tx_clk, SUN7I_GMAC_MII_RATE);
53 ret = clk_prepare(gmac->tx_clk);
54 if (ret && gmac->regulator)
55 regulator_disable(gmac->regulator);
63 struct sunxi_priv_data *gmac = priv;
65 if (gmac->clk_enabled) {
66 clk_disable(gmac->tx_clk);
67 gmac->clk_enabled = 0;
69 clk_unprepare(gmac->tx_clk);
71 if (gmac->regulator)
72 regulator_disable(gmac->regulator);
77 struct sunxi_priv_data *gmac = priv;
80 if (gmac->interface != PHY_INTERFACE_MODE_GMII)
83 if (gmac->clk_enabled) {
84 clk_disable(gmac->tx_clk);
85 gmac->clk_enabled = 0;
87 clk_unprepare(gmac->tx_clk);
90 clk_set_rate(gmac->tx_clk, SUN7I_GMAC_GMII_RGMII_RATE);
91 clk_prepare_enable(gmac->tx_clk);
92 gmac->clk_enabled = 1;
94 clk_set_rate(gmac->tx_clk, SUN7I_GMAC_MII_RATE);
95 clk_prepare(gmac->tx_clk);
103 struct sunxi_priv_data *gmac;
115 gmac = devm_kzalloc(dev, sizeof(*gmac), GFP_KERNEL);
116 if (!gmac) {
121 ret = of_get_phy_mode(dev->of_node, &gmac->interface);
127 gmac->tx_clk = devm_clk_get(dev, "allwinner_gmac_tx");
128 if (IS_ERR(gmac->tx_clk)) {
130 ret = PTR_ERR(gmac->tx_clk);
135 gmac->regulator = devm_regulator_get_optional(dev, "phy");
136 if (IS_ERR(gmac->regulator)) {
137 if (PTR_ERR(gmac->regulator) == -EPROBE_DEFER) {
142 gmac->regulator = NULL;
149 plat_dat->bsp_priv = gmac;
175 { .compatible = "allwinner,sun7i-a20-gmac" },