Lines Matching +full:mux +full:- +full:gpios
14 #include <linux/mdio-mux.h>
21 struct gpio_descs *gpios; member
35 for (n = 0; n < s->gpios->ndescs; n++) in mdio_mux_gpio_switch_fn()
36 s->values[n] = (desired_child >> n) & 1; in mdio_mux_gpio_switch_fn()
38 gpiod_set_array_value_cansleep(s->gpios->ndescs, s->gpios->desc, in mdio_mux_gpio_switch_fn()
39 s->values); in mdio_mux_gpio_switch_fn()
47 struct gpio_descs *gpios; in mdio_mux_gpio_probe() local
50 gpios = gpiod_get_array(&pdev->dev, NULL, GPIOD_OUT_LOW); in mdio_mux_gpio_probe()
51 if (IS_ERR(gpios)) in mdio_mux_gpio_probe()
52 return PTR_ERR(gpios); in mdio_mux_gpio_probe()
54 s = devm_kzalloc(&pdev->dev, struct_size(s, values, gpios->ndescs), in mdio_mux_gpio_probe()
57 gpiod_put_array(gpios); in mdio_mux_gpio_probe()
58 return -ENOMEM; in mdio_mux_gpio_probe()
61 s->gpios = gpios; in mdio_mux_gpio_probe()
63 r = mdio_mux_init(&pdev->dev, pdev->dev.of_node, in mdio_mux_gpio_probe()
64 mdio_mux_gpio_switch_fn, &s->mux_handle, s, NULL); in mdio_mux_gpio_probe()
67 gpiod_put_array(s->gpios); in mdio_mux_gpio_probe()
71 pdev->dev.platform_data = s; in mdio_mux_gpio_probe()
77 struct mdio_mux_gpio_state *s = dev_get_platdata(&pdev->dev); in mdio_mux_gpio_remove()
78 mdio_mux_uninit(s->mux_handle); in mdio_mux_gpio_remove()
79 gpiod_put_array(s->gpios); in mdio_mux_gpio_remove()
85 .compatible = "mdio-mux-gpio",
89 .compatible = "cavium,mdio-mux-sn74cbtlv3253",
97 .name = "mdio-mux-gpio",