Lines Matching +full:mdio +full:- +full:gpios
1 // SPDX-License-Identifier: GPL-2.0
8 #include <linux/mdio-mux.h>
15 #define DRV_DESCRIPTION "GPIO controlled MDIO bus multiplexer driver"
18 struct gpio_descs *gpios; member
33 gpiod_set_array_value_cansleep(s->gpios->ndescs, s->gpios->desc, in mdio_mux_gpio_switch_fn()
34 s->gpios->info, values); in mdio_mux_gpio_switch_fn()
42 struct gpio_descs *gpios; in mdio_mux_gpio_probe() local
45 gpios = devm_gpiod_get_array(&pdev->dev, NULL, GPIOD_OUT_LOW); in mdio_mux_gpio_probe()
46 if (IS_ERR(gpios)) in mdio_mux_gpio_probe()
47 return PTR_ERR(gpios); in mdio_mux_gpio_probe()
49 s = devm_kzalloc(&pdev->dev, sizeof(*s), GFP_KERNEL); in mdio_mux_gpio_probe()
51 return -ENOMEM; in mdio_mux_gpio_probe()
53 s->gpios = gpios; in mdio_mux_gpio_probe()
55 r = mdio_mux_init(&pdev->dev, pdev->dev.of_node, in mdio_mux_gpio_probe()
56 mdio_mux_gpio_switch_fn, &s->mux_handle, s, NULL); in mdio_mux_gpio_probe()
61 pdev->dev.platform_data = s; in mdio_mux_gpio_probe()
67 struct mdio_mux_gpio_state *s = dev_get_platdata(&pdev->dev); in mdio_mux_gpio_remove()
68 mdio_mux_uninit(s->mux_handle); in mdio_mux_gpio_remove()
74 .compatible = "mdio-mux-gpio",
78 .compatible = "cavium,mdio-mux-sn74cbtlv3253",
86 .name = "mdio-mux-gpio",