Lines Matching +full:mdio +full:- +full:mux +full:- +full:multiplexer
1 // SPDX-License-Identifier: GPL-2.0
10 #include <linux/mdio-mux.h>
60 writel(REG4_PWRUPRSTSIG, priv->regs + ETH_REG4); in gxl_enable_internal_mdio()
61 writel(val, priv->regs + ETH_REG3); in gxl_enable_internal_mdio()
67 * drivers/net/phy/meson-gxl.c to properly match the PHY. in gxl_enable_internal_mdio()
70 priv->regs + ETH_REG2); in gxl_enable_internal_mdio()
74 writel(val, priv->regs + ETH_REG3); in gxl_enable_internal_mdio()
75 writel(0, priv->regs + ETH_REG4); in gxl_enable_internal_mdio()
83 /* Reset the mdio bus mux to the external phy */ in gxl_enable_external_mdio()
84 writel(0, priv->regs + ETH_REG3); in gxl_enable_external_mdio()
103 return -EINVAL; in gxl_mdio_switch_fn()
110 { .compatible = "amlogic,gxl-mdio-mux", },
117 struct device *dev = &pdev->dev; in gxl_mdio_mux_probe()
124 return -ENOMEM; in gxl_mdio_mux_probe()
127 priv->regs = devm_platform_ioremap_resource(pdev, 0); in gxl_mdio_mux_probe()
128 if (IS_ERR(priv->regs)) in gxl_mdio_mux_probe()
129 return PTR_ERR(priv->regs); in gxl_mdio_mux_probe()
136 ret = mdio_mux_init(dev, dev->of_node, gxl_mdio_switch_fn, in gxl_mdio_mux_probe()
137 &priv->mux_handle, dev, NULL); in gxl_mdio_mux_probe()
139 dev_err_probe(dev, ret, "mdio multiplexer init failed\n"); in gxl_mdio_mux_probe()
148 mdio_mux_uninit(priv->mux_handle); in gxl_mdio_mux_remove()
155 .name = "gxl-mdio-mux",
161 MODULE_DESCRIPTION("Amlogic GXL MDIO multiplexer driver");