Quoting Stephen Boyd (2017-07-13 15:35:02)
Quoting Peter Rosin (2017-07-11 22:04:46)
quoted
Maybe no need for a compatible update either, if it works to do something
like this in the DT?
usb_switch: usb-switch {
compatible = "gpio-mux";
mux-gpios = <&pm8916_gpios 4 GPIO_ACTIVE_HIGH>,
<&pm8916_gpios XXX GPIO_ACTIVE_XXX>;
idle-state = <2>;
#mux-control-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&usb_sw_sel_pm>;
};
But I obviously know little about how things are wired and really works,
so that might be totally off...
Otherwise, maybe a generic mux-pinctrl driver would do the trick?
(compare with drivers/i2c/muxes/i2c-mux-pinctrl.c)
Agreed.
Testing looks good when I use the gpio-mux binding. The only thing I
noticed is that gpio-mux driver is requesting the gpio with
GPIOD_OUT_LOW. Is that intentional? I worry that may randomly mux the
D+/D- lines during probe if the gpio is asserted at probe time. It isn't
a problem for me right now, because the mux is power on defaulted to
have the gpio deasserted, but it may be a problem if the default
changes.