arm64: dts: ti: k3-j7200: Fix register map for main domain pmx
authorJared McArthur <j-mcarthur@ti.com>
Thu, 26 Sep 2024 10:25:33 +0000 (15:55 +0530)
committerVignesh Raghavendra <vigneshr@ti.com>
Mon, 28 Oct 2024 15:19:16 +0000 (20:49 +0530)
Commit 0d0a0b441346 ("arm64: dts: ti: k3-j7200: fix main pinmux
range") split the main_pmx0 into two nodes: main_pmx0 and main_pmx1
due to a non-addressable region, but incorrectly represented the
ranges. As a result, the memory map for the pinctrl is incorrect. Fix
this by introducing the correct ranges.

The ranges are taken from the J7200 TRM [1] (Table 5-695. CTRL_MMR0
Registers).

Padconfig starting addresses and ranges:
-  0 to 66: 0x11c000, 0x10c
-       68: 0x11c110, 0x004
- 71 to 73: 0x11c11c, 0x00c
- 89 to 90: 0x11c164, 0x008

The datasheet [2] doesn't contain PADCONFIG63 (Table 6-106. Pin
Multiplexing), but the pin is necessary for enabling the MMC1 CLKLP
pad loopback and should be included in the pinmux register map.

Due to the change in pinmux node addresses, change the pinmux node for
the USB0_DRVVBUS pin to main_pmx2. The offset has not changed since the
new main_pmx2 node has the same base address and range as the original
main_pmx1 node. All other pinmuxing done within J7200 dts or dtso files
only uses main_pmx0 which has not changed.

[1] https://www.ti.com/lit/pdf/spruiu1
[2] https://www.ti.com/lit/gpn/dra821u

Fixes: 0d0a0b441346 ("arm64: dts: ti: k3-j7200: fix main pinmux range")
Signed-off-by: Aniket Limaye <a-limaye@ti.com>
Signed-off-by: Jared McArthur <j-mcarthur@ti.com>
Reviewed-by: Vaishnav Achath <vaishnav.a@ti.com>
Link: https://lore.kernel.org/r/20240926102533.398139-1-a-limaye@ti.com
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi

index d03690b8d65230d22b3630770a6bc819409837c1..db43e7e10b76db0b7967cc38d66b3a4caa07ffa5 100644 (file)
        };
 };
 
-&main_pmx1 {
+&main_pmx2 {
        main_usbss0_pins_default: main-usbss0-default-pins {
                pinctrl-single,pins = <
                        J721E_IOPAD(0x04, PIN_OUTPUT, 0) /* (T4) USB0_DRVVBUS */
index ac9c0a9394615c23ca153c8ae9996e009ec2cf38..4e28d0a348db264e4e2ca508d6affc6403cb82f9 100644 (file)
                pinctrl-single,function-mask = <0xffffffff>;
        };
 
-       main_pmx1: pinctrl@11c11c {
+       main_pmx1: pinctrl@11c110 {
                compatible = "ti,j7200-padconf", "pinctrl-single";
                /* Proxy 0 addressing */
-               reg = <0x00 0x11c11c 0x00 0xc>;
+               reg = <0x00 0x11c110 0x00 0x004>;
+               #pinctrl-cells = <1>;
+               pinctrl-single,register-width = <32>;
+               pinctrl-single,function-mask = <0xffffffff>;
+       };
+
+       main_pmx2: pinctrl@11c11c {
+               compatible = "ti,j7200-padconf", "pinctrl-single";
+               /* Proxy 0 addressing */
+               reg = <0x00 0x11c11c 0x00 0x00c>;
+               #pinctrl-cells = <1>;
+               pinctrl-single,register-width = <32>;
+               pinctrl-single,function-mask = <0xffffffff>;
+       };
+
+       main_pmx3: pinctrl@11c164 {
+               compatible = "ti,j7200-padconf", "pinctrl-single";
+               /* Proxy 0 addressing */
+               reg = <0x00 0x11c164 0x00 0x008>;
                #pinctrl-cells = <1>;
                pinctrl-single,register-width = <32>;
                pinctrl-single,function-mask = <0xffffffff>;