Message ID | 20230911035828.36984-1-tony@atomide.com |
---|---|
State | New |
Headers | show |
Series | ARM: dts: motorola-mapphone: Add mdm6600 sleep pins | expand |
Hi, On Mon, Sep 11, 2023 at 06:58:28AM +0300, Tony Lindgren wrote: > The sleep pins never got added earlier probably because the driver was not > behaving correctly with the sleep pins. We need the sleep pins to prevent > the modem from waking up on it's own if the reset pin glitches in deeper > SoC idle states. > > Cc: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com> > Cc: Merlijn Wajer <merlijn@wizzup.org> > Cc: Pavel Machek <pavel@ucw.cz> > Cc: Sebastian Reichel <sre@kernel.org> > Signed-off-by: Tony Lindgren <tony@atomide.com> > --- Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com> -- Sebastian > .../dts/ti/omap/motorola-mapphone-common.dtsi | 20 ++++++++++++++++++- > 1 file changed, 19 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/boot/dts/ti/omap/motorola-mapphone-common.dtsi b/arch/arm/boot/dts/ti/omap/motorola-mapphone-common.dtsi > --- a/arch/arm/boot/dts/ti/omap/motorola-mapphone-common.dtsi > +++ b/arch/arm/boot/dts/ti/omap/motorola-mapphone-common.dtsi > @@ -67,7 +67,8 @@ hdmi_regulator: regulator-hdmi { > fsusb1_phy: usb-phy@1 { > compatible = "motorola,mapphone-mdm6600"; > pinctrl-0 = <&usb_mdm6600_pins>; > - pinctrl-names = "default"; > + pinctrl-1 = <&usb_mdm6600_sleep_pins>; > + pinctrl-names = "default", "sleep"; > enable-gpios = <&gpio3 31 GPIO_ACTIVE_LOW>; /* gpio_95 */ > power-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>; /* gpio_54 */ > reset-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>; /* gpio_49 */ > @@ -476,6 +477,23 @@ OMAP4_IOPAD(0x142, PIN_OUTPUT | MUX_MODE3) > >; > }; > > + /* Modem sleep pins to keep gpio_49 high with internal pull */ > + usb_mdm6600_sleep_pins: usb-mdm6600-sleep-pins { > + pinctrl-single,pins = < > + OMAP4_IOPAD(0x0d8, PIN_INPUT | MUX_MODE3) > + OMAP4_IOPAD(0x07c, PIN_OUTPUT | MUX_MODE3) > + OMAP4_IOPAD(0x072, PIN_INPUT_PULLUP | MUX_MODE7) /* Keep gpio_49 reset high */ > + OMAP4_IOPAD(0x14e, PIN_OUTPUT | MUX_MODE3) > + OMAP4_IOPAD(0x150, PIN_OFF_OUTPUT_LOW | PIN_INPUT | MUX_MODE3) > + OMAP4_IOPAD(0x07e, PIN_INPUT | MUX_MODE3) > + OMAP4_IOPAD(0x07a, PIN_INPUT | MUX_MODE3) > + OMAP4_IOPAD(0x078, PIN_INPUT | MUX_MODE3) > + OMAP4_IOPAD(0x094, PIN_OUTPUT | MUX_MODE3) > + OMAP4_IOPAD(0x096, PIN_OUTPUT | MUX_MODE3) > + OMAP4_IOPAD(0x142, PIN_OUTPUT | MUX_MODE3) > + >; > + }; > + > usb_ulpi_pins: usb-ulpi-pins { > pinctrl-single,pins = < > OMAP4_IOPAD(0x196, MUX_MODE7) > -- > 2.42.0
diff --git a/arch/arm/boot/dts/ti/omap/motorola-mapphone-common.dtsi b/arch/arm/boot/dts/ti/omap/motorola-mapphone-common.dtsi --- a/arch/arm/boot/dts/ti/omap/motorola-mapphone-common.dtsi +++ b/arch/arm/boot/dts/ti/omap/motorola-mapphone-common.dtsi @@ -67,7 +67,8 @@ hdmi_regulator: regulator-hdmi { fsusb1_phy: usb-phy@1 { compatible = "motorola,mapphone-mdm6600"; pinctrl-0 = <&usb_mdm6600_pins>; - pinctrl-names = "default"; + pinctrl-1 = <&usb_mdm6600_sleep_pins>; + pinctrl-names = "default", "sleep"; enable-gpios = <&gpio3 31 GPIO_ACTIVE_LOW>; /* gpio_95 */ power-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>; /* gpio_54 */ reset-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>; /* gpio_49 */ @@ -476,6 +477,23 @@ OMAP4_IOPAD(0x142, PIN_OUTPUT | MUX_MODE3) >; }; + /* Modem sleep pins to keep gpio_49 high with internal pull */ + usb_mdm6600_sleep_pins: usb-mdm6600-sleep-pins { + pinctrl-single,pins = < + OMAP4_IOPAD(0x0d8, PIN_INPUT | MUX_MODE3) + OMAP4_IOPAD(0x07c, PIN_OUTPUT | MUX_MODE3) + OMAP4_IOPAD(0x072, PIN_INPUT_PULLUP | MUX_MODE7) /* Keep gpio_49 reset high */ + OMAP4_IOPAD(0x14e, PIN_OUTPUT | MUX_MODE3) + OMAP4_IOPAD(0x150, PIN_OFF_OUTPUT_LOW | PIN_INPUT | MUX_MODE3) + OMAP4_IOPAD(0x07e, PIN_INPUT | MUX_MODE3) + OMAP4_IOPAD(0x07a, PIN_INPUT | MUX_MODE3) + OMAP4_IOPAD(0x078, PIN_INPUT | MUX_MODE3) + OMAP4_IOPAD(0x094, PIN_OUTPUT | MUX_MODE3) + OMAP4_IOPAD(0x096, PIN_OUTPUT | MUX_MODE3) + OMAP4_IOPAD(0x142, PIN_OUTPUT | MUX_MODE3) + >; + }; + usb_ulpi_pins: usb-ulpi-pins { pinctrl-single,pins = < OMAP4_IOPAD(0x196, MUX_MODE7)
The sleep pins never got added earlier probably because the driver was not behaving correctly with the sleep pins. We need the sleep pins to prevent the modem from waking up on it's own if the reset pin glitches in deeper SoC idle states. Cc: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com> Cc: Merlijn Wajer <merlijn@wizzup.org> Cc: Pavel Machek <pavel@ucw.cz> Cc: Sebastian Reichel <sre@kernel.org> Signed-off-by: Tony Lindgren <tony@atomide.com> --- .../dts/ti/omap/motorola-mapphone-common.dtsi | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-)