Am Mittwoch, den 29.05.2019, 00:18 -0700 schrieb Andrey Smirnov: > Add node for UCS1002 USB charger chip connected to front panel USB and > replace "regulator-fixed" previously used to control VBUS. > > > Signed-off-by: Lucas Stach <l.st...@pengutronix.de> > > Signed-off-by: Andrey Smirnov <andrew.smir...@gmail.com> > > Cc: Shawn Guo <shawn...@kernel.org> > > Cc: Chris Healy <cphe...@gmail.com> > > Cc: Fabio Estevam <feste...@gmail.com> > > Cc: Lucas Stach <l.st...@pengutronix.de> > Cc: linux-arm-ker...@lists.infradead.org > Cc: linux-kernel@vger.kernel.org
FWIW: Reviewed-by: Lucas Stach <l.st...@pengutronix.de> > --- > > Changes since [v1]: > > - Added GPIO hog configuration to put UCS1002 into correct mode > even before its driver takes over. The code for that is taken > from similar patch from Lucas, so I added his Signed-off-by as > well. > > [v1] lore.kernel.org/r/20190522071227.31488-1-andrew.smir...@gmail.com > > arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi | 77 +++++++++++++++++++------ > 1 file changed, 59 insertions(+), 18 deletions(-) > > diff --git a/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi > b/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi > index 93be00a60c88..07e21d1e5b4c 100644 > --- a/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi > +++ b/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi > @@ -60,18 +60,6 @@ > > regulator-always-on; > > }; > > > - reg_5p0v_user_usb: regulator-5p0v-user-usb { > > - compatible = "regulator-fixed"; > > - pinctrl-names = "default"; > > - pinctrl-0 = <&pinctrl_reg_user_usb>; > > - vin-supply = <®_5p0v_main>; > > - regulator-name = "5V_USER_USB"; > > - regulator-min-microvolt = <5000000>; > > - regulator-max-microvolt = <5000000>; > > - gpio = <&gpio3 22 GPIO_ACTIVE_LOW>; > > - startup-delay-us = <1000>; > > - }; > - > > reg_3p3v_pmic: regulator-3p3v-pmic { > > compatible = "regulator-fixed"; > > vin-supply = <®_12p0v>; > @@ -331,6 +319,39 @@ > > }; > }; > > +&gpio3 { > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_gpio3_hog>; > + > > + usb-emulation { > > + gpio-hog; > > + gpios = <19 GPIO_ACTIVE_HIGH>; > > + output-low; > > + line-name = "usb-emulation"; > > + }; > + > > + usb-mode1 { > > + gpio-hog; > > + gpios = <20 GPIO_ACTIVE_HIGH>; > > + output-high; > > + line-name = "usb-mode1"; > > + }; > + > > + usb-pwr { > > + gpio-hog; > > + gpios = <22 GPIO_ACTIVE_LOW>; > > + output-high; > > + line-name = "usb-pwr-ctrl-en-n"; > > + }; > + > > + usb-mode2 { > > + gpio-hog; > > + gpios = <23 GPIO_ACTIVE_HIGH>; > > + output-high; > > + line-name = "usb-mode2"; > > + }; > +}; > + > &i2c1 { > > pinctrl-names = "default"; > > pinctrl-0 = <&pinctrl_i2c1>; > @@ -590,6 +611,16 @@ > > status = "disabled"; > > }; > > > > + reg_5p0v_user_usb: charger@32 { > > + compatible = "microchip,ucs1002"; > > + pinctrl-names = "default"; > > + pinctrl-0 = <&pinctrl_ucs1002_pins>; > > + reg = <0x32>; > > + interrupts-extended = <&gpio5 2 IRQ_TYPE_EDGE_BOTH>, > > + <&gpio3 21 IRQ_TYPE_EDGE_BOTH>; > > + interrupt-names = "a_det", "alert"; > > + }; > + > > > hpa1: amp@60 { > > compatible = "ti,tpa6130a2"; > > pinctrl-names = "default"; > @@ -935,6 +966,15 @@ > > >; > > }; > > > + pinctrl_gpio3_hog: gpio3hoggrp { > > + fsl,pins = < > > > + MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x1b0b0 > > > + MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x1b0b0 > > > + MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 > > > + MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x1b0b0 > > + >; > > + }; > + > > pinctrl_i2c1: i2c1grp { > > fsl,pins = < > > > MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b8b1 > @@ -982,12 +1022,6 @@ > > >; > > }; > > > - pinctrl_reg_user_usb: usbotggrp { > > - fsl,pins = < > > > - MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x40000038 > > - >; > > - }; > - > > pinctrl_rmii_phy_irq: phygrp { > > fsl,pins = < > > > MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x40010000 > @@ -1047,6 +1081,13 @@ > > >; > > }; > > > + pinctrl_ucs1002_pins: ucs1002grp { > > + fsl,pins = < > > > + MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x1b0b0 > > > + MX6QDL_PAD_EIM_D21__GPIO3_IO21 0x1b0b0 > > + >; > > + }; > + > > pinctrl_usdhc2: usdhc2grp { > > fsl,pins = < > > > MX6QDL_PAD_SD2_CMD__SD2_CMD 0x10059