]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ARM: dts: ti/omap: gta04: fix pm issues caused by spi module
authorAndreas Kemnade <andreas@kemnade.info>
Wed, 4 Dec 2024 17:41:52 +0000 (18:41 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 17 Feb 2025 09:05:24 +0000 (10:05 +0100)
commit 0cfbd7805fe13406500e6a6f2aa08f198d5db4bd upstream.

Despite CM_IDLEST1_CORE and CM_FCLKEN1_CORE behaving normal,
disabling SPI leads to messages like when suspending:
Powerdomain (core_pwrdm) didn't enter target state 0
and according to /sys/kernel/debug/pm_debug/count off state is not
entered. That was not connected to SPI during the discussion
of disabling SPI. See:
https://lore.kernel.org/linux-omap/20230122100852.32ae082c@aktux/

The reason is that SPI is per default in slave mode. Linux driver
will turn it to master per default. It slave mode, the powerdomain seems to
be kept active if active chip select input is sensed.

Fix that by explicitly disabling the SPI3 pins which used to be muxed by
the bootloader since they are available on an optionally fitted header
which would require dtb overlays anyways.

Fixes: a622310f7f01 ("ARM: dts: gta04: fix excess dma channel usage")
CC: stable@vger.kernel.org
Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Link: https://lore.kernel.org/r/20241204174152.2360431-1-andreas@kemnade.info
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi

index 3661340009e7a4a1ca6ccb30fd872a767ea33b2d..8dca2bed941b64802d4eccc4c690a07b97e15c4f 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <
                        &hsusb2_2_pins
+                       &mcspi3hog_pins
        >;
 
        hsusb2_2_pins: hsusb2-2-pins {
                >;
        };
 
+       mcspi3hog_pins: mcspi3hog-pins {
+               pinctrl-single,pins = <
+                       OMAP3630_CORE2_IOPAD(0x25dc, PIN_OUTPUT_PULLDOWN | MUX_MODE4)   /* etk_d0 */
+                       OMAP3630_CORE2_IOPAD(0x25de, PIN_OUTPUT_PULLDOWN | MUX_MODE4)   /* etk_d1 */
+                       OMAP3630_CORE2_IOPAD(0x25e0, PIN_OUTPUT_PULLDOWN | MUX_MODE4)   /* etk_d2 */
+                       OMAP3630_CORE2_IOPAD(0x25e2, PIN_OUTPUT_PULLDOWN | MUX_MODE4)   /* etk_d3 */
+               >;
+       };
+
        spi_gpio_pins: spi-gpio-pinmux-pins {
                pinctrl-single,pins = <
                        OMAP3630_CORE2_IOPAD(0x25d8, PIN_OUTPUT | MUX_MODE4) /* clk */