This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PROCESSOR-SDK-J7200: main_pmx3 configuration

Part Number: PROCESSOR-SDK-J7200
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hi Team,


I need to configure USB0_DRVVBUS(T4) as gpio.

Sysconfig tool shows to configure under main_pmx3 but there is no dts entry for main_pmx3 in main.dtsi, aslo offset address of main_pmx3 not mentioned in TRM. Kindly share the details for configuring main_pmx3 and also share the details where i can find the memory map details for the same.

Regards,

Nikhil K

  • Hi Nikhil,

    It's interesting that the gpio is in main_pmx3. Let me test some things and I will get back to you on whether it should actually be in a different pinmux or if we need to update the device tree.

    Best,
    Jared

  • Hi Jared,

    Any update on this case.

    Regards,

    Nikhil

  • Hi Nikhil,

    I did quite a bit of digging, and I'm fairly certain that the device tree in the upstream kernel has the wrong register mappings. Additionally, SYSCONFIG just spits out the wrong IOPAD macro name in general. J72000_IOPAD is not right.

    I've attached a patch for the k3-j7200-main.dtsi and the pinmuxing for pin T4.

    Patch:

    From f801e756015f54748be6f50670298f7c6df5aa24 Mon Sep 17 00:00:00 2001
    From: Jared McArthur <j-mcarthur@ti.com>
    Date: Tue, 30 Jul 2024 11:19:44 -0500
    Subject: [PATCH] arm64: dts: ti: k3-j7200: Fix register map for main domain
     pmx
    
    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 datasheet (Table 6-106. Pin
    Multiplexing). Padconfig registers stretch from 0x11c000 to 0x11c1c1b
    with non-addressable portions from 0x11c10c to 0x11c10f, 0x11c114 to
    0x11c11b, and 0x11c128 to 0x11c163.
    
    Fixes: 0d0a0b441346 ("arm64: dts: ti: k3-j7200: fix main pinmux range")
    Signed-off-by: Jared McArthur <j-mcarthur@ti.com>
    ---
     arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 22 ++++++++++++++++++++--
     1 file changed, 20 insertions(+), 2 deletions(-)
    
    diff --git a/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi b/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
    index 16ff103cf69e..0d2ae3877a69 100644
    --- a/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
    @@ -401,10 +401,28 @@ main_pmx0: pinctrl@11c000 {
     		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>;
    -- 
    2.34.1
    

    Pinmuxing:

    &main_pmx2 {
        custom_gpio_pins_default: custom-gpio-pins-default {
            pinctrl-single,pins = <
                J721E_IOPAD(0x004, PIN_INPUT, 7);
            >;
        };
    };

    Best,
    Jared

  • Hi Jared,

    Thanks for the reply,

    I observed that multiple IO pins having issue with pinmuxing.
    Can you please ensure that which are the IO having wrong register mappings interms of pimuxing (main, wkup domains)

    Regards,

    Nikhil K

  • Hi Nikhil,

    Sorry, the pinmux I gave was incorrect. I have fixed the code.

    The patch above is for the main domain, do you have a list of the IO pins that are having issues? That would help me narrow down anything else.

    Best,
    Jared

  • Hi Jared,

    Seems like wkup_pmx also having similar issue.

    Regards,

    Nikhil

  • Hi Nikhil,

    You can use the following tables to determine what pinmux nodes and offsets to use for each PADCONFIG. You can find which padconfig each GPIO correlates to within the datasheet. The pmx nodes for the wakeup domain appear correct. You can use the J721E IOPAD macros, because there is no functional difference.

    Wkup domain:

    padconfig address dts pmx node offset
    0 4301C000 wkup_pmx0 0
    1 4301C004 wkup_pmx0 4
    2 4301C008 wkup_pmx0 8
    3 4301C00C wkup_pmx0 C
    4 4301C010 wkup_pmx0 10
    5 4301C014 wkup_pmx0 14
    6 4301C018 wkup_pmx0 18
    7 4301C01C wkup_pmx0 1C
    8 4301C020 wkup_pmx0 20
    9 4301C024 wkup_pmx0 24
    10 4301C028 wkup_pmx0 28
    11 4301C02C wkup_pmx0 2C
    12 4301C030 wkup_pmx0 30
    13 DNE
    14 4301C038 wkup_pmx1 0
    15 4301C03C wkup_pmx1 4
    16 DNE
    17 DNE
    18 DNE
    19 DNE
    20 DNE
    21 DNE
    22 DNE
    23 DNE
    24 DNE
    25 DNE
    26 4301C068 wkup_pmx2 0
    27 4301C06C wkup_pmx2 4
    28 4301C070 wkup_pmx2 8
    29 4301C074 wkup_pmx2 C
    30 4301C078 wkup_pmx2 10
    31 4301C07C wkup_pmx2 14
    32 4301C080 wkup_pmx2 18
    33 4301C084 wkup_pmx2 1C
    34 4301C088 wkup_pmx2 20
    35 4301C08C wkup_pmx2 24
    36 4301C090 wkup_pmx2 28
    37 4301C094 wkup_pmx2 2C
    38 4301C098 wkup_pmx2 30
    39 4301C09C wkup_pmx2 34
    40 4301C0A0 wkup_pmx2 38
    41 4301C0A4 wkup_pmx2 3C
    42 4301C0A8 wkup_pmx2 40
    43 4301C0AC wkup_pmx2 44
    44 4301C0B0 wkup_pmx2 48
    45 4301C0B4 wkup_pmx2 4C
    46 4301C0B8 wkup_pmx2 50
    47 4301C0BC wkup_pmx2 54
    48 4301C0C0 wkup_pmx2 58
    49 4301C0C4 wkup_pmx2 5C
    50 4301C0C8 wkup_pmx2 60
    51 4301C0CC wkup_pmx2 64
    52 4301C0D0 wkup_pmx2 68
    53 4301C0D4 wkup_pmx2 6C
    54 4301C0D8 wkup_pmx2 70
    55 4301C0DC wkup_pmx2 74
    56 4301C0E0 wkup_pmx2 78
    57 4301C0E4 wkup_pmx2 7C
    58 4301C0E8 wkup_pmx2 80
    59 4301C0EC wkup_pmx2 84
    60 4301C0F0 wkup_pmx2 88
    61 4301C0F4 wkup_pmx2 8C
    62 4301C0F8 wkup_pmx2 90
    63 4301C0FC wkup_pmx2 94
    64 4301C100 wkup_pmx2 98
    65 4301C104 wkup_pmx2 9C
    66 4301C108 wkup_pmx2 A0
    67 4301C10C wkup_pmx2 A4
    68 4301C110 wkup_pmx2 A8
    69 4301C114 wkup_pmx2 AC
    70 4301C118 wkup_pmx2 B0
    71 4301C11C wkup_pmx2 B4
    72 4301C120 wkup_pmx2 B8
    73 4301C124 wkup_pmx2 BC
    74 4301C128 wkup_pmx2 C0
    75 4301C12C wkup_pmx2 C4
    76 4301C130 wkup_pmx2 C8
    77 4301C134 wkup_pmx2 CC
    78 4301C138 wkup_pmx2 D0
    79 4301C13C wkup_pmx2 D4
    80 4301C140 wkup_pmx2 D8
    81 4301C144 wkup_pmx2 DC
    82 4301C148 wkup_pmx2 E0
    83 4301C14C wkup_pmx2 E4
    84 4301C150 wkup_pmx2 E8
    85 DNE
    86 DNE
    87 DNE
    88 DNE
    89 DNE
    90 DNE
    91 DNE
    92 DNE
    93 4301C174 wkup_pmx3 0
    94 4301C178 wkup_pmx3 4
    95 4301C17C wkup_pmx3 8
    96 4301C180 wkup_pmx3 C
    97 4301C184 wkup_pmx3 10
    98 4301C188 wkup_pmx3 14
    99 4301C18C wkup_pmx3 18
    100 4301C190 wkup_pmx3 1C

    Main domain:

    padconfig address dts pmx node offset
    0 11C000 main_pmx0 0
    1 11C004 main_pmx0 4
    2 11C008 main_pmx0 8
    3 11C00C main_pmx0 C
    4 11C010 main_pmx0 10
    5 11C014 main_pmx0 14
    6 11C018 main_pmx0 18
    7 11C01C main_pmx0 1C
    8 11C020 main_pmx0 20
    9 11C024 main_pmx0 24
    10 11C028 main_pmx0 28
    11 11C02C main_pmx0 2C
    12 11C030 main_pmx0 30
    13 11C034 main_pmx0 34
    14 11C038 main_pmx0 38
    15 11C03C main_pmx0 3C
    16 11C040 main_pmx0 40
    17 11C044 main_pmx0 44
    18 11C048 main_pmx0 48
    19 11C04C main_pmx0 4C
    20 11C050 main_pmx0 50
    21 11C054 main_pmx0 54
    22 11C058 main_pmx0 58
    23 11C05C main_pmx0 5C
    24 11C060 main_pmx0 60
    25 11C064 main_pmx0 64
    26 11C068 main_pmx0 68
    27 11C06C main_pmx0 6C
    28 11C070 main_pmx0 70
    29 11C074 main_pmx0 74
    30 11C078 main_pmx0 78
    31 11C07C main_pmx0 7C
    32 11C080 main_pmx0 80
    33 11C084 main_pmx0 84
    34 11C088 main_pmx0 88
    35 11C08C main_pmx0 8C
    36 11C090 main_pmx0 90
    37 11C094 main_pmx0 94
    38 11C098 main_pmx0 98
    39 11C09C main_pmx0 9C
    40 11C0A0 main_pmx0 A0
    41 11C0A4 main_pmx0 A4
    42 11C0A8 main_pmx0 A8
    43 11C0AC main_pmx0 AC
    44 11C0B0 main_pmx0 B0
    45 11C0B4 main_pmx0 B4
    46 11C0B8 main_pmx0 B8
    47 11C0BC main_pmx0 BC
    48 11C0C0 main_pmx0 C0
    49 11C0C4 main_pmx0 C4
    50 11C0C8 main_pmx0 C8
    51 11C0CC main_pmx0 CC
    52 11C0D0 main_pmx0 D0
    53 11C0D4 main_pmx0 D4
    54 11C0D8 main_pmx0 D8
    55 11C0DC main_pmx0 DC
    56 11C0E0 main_pmx0 E0
    57 11C0E4 main_pmx0 E4
    58 11C0E8 main_pmx0 E8
    59 11C0EC main_pmx0 EC
    60 11C0F0 main_pmx0 F0
    61 11C0F4 main_pmx0 F4
    62 11C0F8 main_pmx0 F8
    63 11C0FC main_pmx0 FC
    64 11C100 main_pmx0 100
    65 11C104 main_pmx0 104
    66 11C108 main_pmx0 108
    67 DNE
    68 11C110 main_pmx1 0
    69 DNE
    70 DNE
    71 11C11C main_pmx2 0
    72 11C120 main_pmx2 4
    73 11C124 main_pmx2 8
    74 DNE
    75 DNE
    76 DNE
    77 DNE
    78 DNE
    79 DNE
    80 DNE
    81 DNE
    82 DNE
    83 DNE
    84 DNE
    85 DNE
    86 DNE
    87 DNE
    88 DNE
    89 11C164 main_pmx3 0
    90 11C168 main_pmx3 4

    Best,
    Jared

  • Hi Jared,

    Thanks for the reference,

    1. Here we are configuring wkup_gpio0_31 as an gpio, but we are not able to toggle the gpio (in the sense we are not able to make this gpio high).

    Kindly find the iomux configuration below

            wkup_gpio_pins_default: wkup_gpio_default_pins {
                    pinctrl-single,pins = <
                            J721E_WKUP_IOPAD(0x4, PIN_OUTPUT, 7) /* (D5) MCU_OSPI0_CSn3.WKUP_GPIO0_31 */
                    >;
            };

    2. Also we observed gpio sysfs read values are not proper.

    In the attachment you can see eth_reset_gpio shows configured as low but actually the gpio is configured high and when we probed voltage level of the gpio it shows high.

    Kindly help is resolving above mentioned two issues.


    Regards,

    Nikhil

  • Hi Nikhil,

    I was able to set the gpio both low and high with the following device tree (just had to change the default state).

    #include <dt-bindings/gpio/gpio.h>
    #include "k3-pinctrl.h"
    
    /dts-v1/;
    /plugin/;
    
    &wkup_pmx1 {
    	test_gpio_pins: test-gpio-pins {
    		pinctrl-single,pins = <
    			J721E_WKUP_IOPAD(0x004, PIN_OUTPUT, 7)
    		>;
    	};
    };
    
    &{/} {
    	test_gpio_leds: test-gpio-leds {
    		compatible = "gpio-leds";
    
    		pinctrl-names = "default";
    		pinctrl-0 = <&test_gpio_pins>;
    
    		led-0 {
    			gpios = <&wkup_gpio0 31 GPIO_ACTIVE_HIGH>;
    			label = "wkup0_31 gpio";
    			default-state = "on";
    		};
    	};
    };

    I checked the status of the pin with:

    $ devmem2 0x42110014

    Is your device tree written correctly? Do you have the pinctrl in the relevant node?

    Best,
    Jared

  • Hi Jared,

    2. Also we observed gpio sysfs read values are not proper.

    In the attachment you can see eth_reset_gpio shows configured as low but actually the gpio is configured high and when we probed voltage level of the gpio it shows high.

    any update on this ?

    Regards,

    Nikhil

  • Hi Nikhil,

    Is it not high because it is set to active low? Can you toggle the pin or set the pin to active high and see if that fixed things?

    Best,
    Jared

  • Hi jared,

    Here i configured ethernet reset using gpio hog and kept as active high

    &wkup_gpio0 {
            pinctrl-names = "default";
            pinctrl-0 = <&wkup_eth_rst_pins_default>;
            eth_reset_gpio {
                    gpio-hog;
                    gpios = <25 GPIO_ACTIVE_HIGH>;
                    output-high;
                    linename = "eth_rst";
            };
    };

    Regards,

    Nikhil K

  • Hi Nikhil,

    wkup_gpio0 25's pin is already taken by ospi0. If you want to use it, you'll need to disable the ospi0 node.

    dmesg log:

    [    1.848326] pinctrl-single 4301c000.pinctrl: pin PIN9 already requested by 47040000.spi; cannot claim for test-gpio-leds

    Best,
    Jared

  • Hi Jared,

    We have disabled  ospi node and we are not facinng any pinctrl issue. When we probed in voltmeter gpio status is showing high and in devmem2 0x42110014 also it showing gpio bit set, only thing not working is reading in sysfs.

    Regards,

    Nikhil

  • Hi Nikhil,

    If you hog the pin, it shouldn't be accessible in userspace; it should give you a busy error.

    Additionally, the GPIO SYSFS interface is deprecated. You should use the GPIO character device interface.

    root@j7200-evm:~# gpioget gpiochip4 25
    gpioget: error reading GPIO values: Device or resource busy

    Aside from that, is everything else working as expected?

    Best,
    Jared

  • Hi Jared,


    Yes, everything else works properly, but sysfs also should work properly for reading the status of gpio using below command

    cat /sys/kernel/debug/gpio

    This command will not try to access gpio, this just prints the status of that, so if that gpio already  in use there is no conflict will come

    Regards,

    Nikhil

  • Hi Nikhil,

    I also see the issue in DebugFS. Something interesting to note:

    Set with a gpio-hog (shows up as an input and low):

    gpiochip4: GPIOs 371-455, parent: platform/42110000.gpio, 42110000.gpio:
     gpio-371 (                    |enable              ) out lo 
     gpio-373 (                    |standby             ) out hi 
     gpio-396 (                    |wkup0-25-hog        ) in  lo 
     gpio-402 (                    |wkup0-31-hog        ) in  lo 
     gpio-429 (                    |standby             ) out lo ACTIVE LOW

    Set with gpio-leds driver (shows up as an output and low):

    gpiochip4: GPIOs 371-455, parent: platform/42110000.gpio, 42110000.gpio:
     gpio-371 (                    |enable              ) out lo 
     gpio-373 (                    |standby             ) out hi 
     gpio-396 (                    |wkup0_25-gpio       ) out lo 
     gpio-402 (                    |wkup0_31-gpio       ) out lo 
     gpio-429 (                    |standby             ) out lo ACTIVE LOW

    I'll run the bug up internally.

    Best,
    Jared

  • Just another note, there is a discrepancy between the TRM and the datasheet. I've added two patches depending on which ends up being correct.

    Datasheet, no padconfig 63:

    From fa7394e401f87bc2d986113e0260f4f91ee0ed3c Mon Sep 17 00:00:00 2001
    From: Jared McArthur <j-mcarthur@ti.com>
    Date: Mon, 9 Sep 2024 14:07:10 -0500
    Subject: [PATCH] arm64: dts: ti: k3-j7200: Fix register map for main domain
     pmx
    
    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 DRA821 datasheet [1] (Table 6-106. Pin
    Multiplexing).
    
    Padconfig starting addresses and ranges:
    -  0 to 62: 0x11c000, 0x0fc
    - 64 to 66: 0x11c100, 0x00c
    -       68: 0x11c110, 0x004
    - 71 to 73: 0x11c11c, 0x00c
    - 89 to 90: 0x11c164, 0x008
    
    [1] https://www.ti.com/lit/gpn/dra821u
    
    Fixes: 0d0a0b441346 ("arm64: dts: ti: k3-j7200: fix main pinmux range")
    Signed-off-by: Jared McArthur <j-mcarthur@ti.com>
    ---
     arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 33 ++++++++++++++++++++---
     1 file changed, 30 insertions(+), 3 deletions(-)
    
    diff --git a/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi b/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
    index 16ff103cf69e4..df1011aa055d9 100644
    --- a/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
    @@ -395,16 +395,43 @@ cpts@3d000 {
     	main_pmx0: pinctrl@11c000 {
     		compatible = "ti,j7200-padconf", "pinctrl-single";
     		/* Proxy 0 addressing */
    -		reg = <0x00 0x11c000 0x00 0x10c>;
    +		reg = <0x00 0x11c000 0x00 0x0fc>;
     		#pinctrl-cells = <1>;
     		pinctrl-single,register-width = <32>;
     		pinctrl-single,function-mask = <0xffffffff>;
     	};
     
    -	main_pmx1: pinctrl@11c11c {
    +	main_pmx1: pinctrl@11c100 {
     		compatible = "ti,j7200-padconf", "pinctrl-single";
     		/* Proxy 0 addressing */
    -		reg = <0x00 0x11c11c 0x00 0xc>;
    +		reg = <0x00 0x11c100 0x00 0x00c>;
    +		#pinctrl-cells = <1>;
    +		pinctrl-single,register-width = <32>;
    +		pinctrl-single,function-mask = <0xffffffff>;
    +	};
    +
    +	main_pmx2: pinctrl@11c110 {
    +		compatible = "ti,j7200-padconf", "pinctrl-single";
    +		/* Proxy 0 addressing */
    +		reg = <0x00 0x11c110 0x00 0x004>;
    +		#pinctrl-cells = <1>;
    +		pinctrl-single,register-width = <32>;
    +		pinctrl-single,function-mask = <0xffffffff>;
    +	};
    +
    +	main_pmx3: 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_pmx4: 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>;
    -- 
    2.34.1
    

    TRM, with padconfig 63:

    From 4271cd55425b0579798b33e9e097b76bad3b3479 Mon Sep 17 00:00:00 2001
    From: Jared McArthur <j-mcarthur@ti.com>
    Date: Tue, 30 Jul 2024 11:19:44 -0500
    Subject: [PATCH] arm64: dts: ti: k3-j7200: Fix register map for main domain
     pmx
    
    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
    
    [1] https://www.ti.com/lit/pdf/spruiu1
    
    Fixes: 0d0a0b441346 ("arm64: dts: ti: k3-j7200: fix main pinmux range")
    Signed-off-by: Jared McArthur <j-mcarthur@ti.com>
    ---
     arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 22 ++++++++++++++++++++--
     1 file changed, 20 insertions(+), 2 deletions(-)
    
    diff --git a/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi b/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
    index 16ff103cf69e4..0d2ae3877a693 100644
    --- a/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
    @@ -401,10 +401,28 @@ main_pmx0: pinctrl@11c000 {
     		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>;
    -- 
    2.34.1
    

    Best,
    Jared

  • Hi Jared,

    This issue already we have resolved with our previous discussion, anyway thanks for reconfirming

    I also see the issue in DebugFS. Something interesting to note:

    Is there any update on this issue..?

    Regards,

    Nikhil K

  • Hi Nikhil,

    One of our developers is currently looking at the issue. I don't have an update for you though.

    Best,
    Jared

  • Hi Nikhil,

    The DebugFS issue isn't resolvable, because there is no register to read the current status of a pin when the pin is set as an output. For example, if you set a pin high, but it was being pulled low due to a board issue, there would be no way to view that within software.

    You can read what an output is set to, but that doesn't necessarily mean the pin is actually at that level.

    Best,
    Jared