Lines Matching +full:gxl +full:- +full:mdio +full:- +full:mux
1 // SPDX-License-Identifier: GPL-2.0
10 #include <linux/mdio-mux.h>
59 writel(REG4_PWRUPRSTSIG, priv->regs + ETH_REG4); in gxl_enable_internal_mdio()
60 writel(val, priv->regs + ETH_REG3); in gxl_enable_internal_mdio()
66 * drivers/net/phy/meson-gxl.c to properly match the PHY. in gxl_enable_internal_mdio()
69 priv->regs + ETH_REG2); in gxl_enable_internal_mdio()
73 writel(val, priv->regs + ETH_REG3); in gxl_enable_internal_mdio()
74 writel(0, priv->regs + ETH_REG4); in gxl_enable_internal_mdio()
82 /* Reset the mdio bus mux to the external phy */ in gxl_enable_external_mdio()
83 writel(0, priv->regs + ETH_REG3); in gxl_enable_external_mdio()
102 return -EINVAL; in gxl_mdio_switch_fn()
109 { .compatible = "amlogic,gxl-mdio-mux", },
116 struct device *dev = &pdev->dev; in gxl_mdio_mux_probe()
123 return -ENOMEM; in gxl_mdio_mux_probe()
126 priv->regs = devm_platform_ioremap_resource(pdev, 0); in gxl_mdio_mux_probe()
127 if (IS_ERR(priv->regs)) in gxl_mdio_mux_probe()
128 return PTR_ERR(priv->regs); in gxl_mdio_mux_probe()
135 ret = mdio_mux_init(dev, dev->of_node, gxl_mdio_switch_fn, in gxl_mdio_mux_probe()
136 &priv->mux_handle, dev, NULL); in gxl_mdio_mux_probe()
138 dev_err_probe(dev, ret, "mdio multiplexer init failed\n"); in gxl_mdio_mux_probe()
147 mdio_mux_uninit(priv->mux_handle); in gxl_mdio_mux_remove()
154 .name = "gxl-mdio-mux",
160 MODULE_DESCRIPTION("Amlogic GXL MDIO multiplexer driver");