background: TX2 jetpack 4.2 32.1release
question: I need PIN38 of J21 as a gpio to control monitor. When I set it to low, it returns to high after a short time. what that heppend?
No pinmux configure instructions are provided in L4T32.1.
gpiochip0: GPIOs 320-511, parent: platform/2200000.gpio, tegra-gpio:
gpio-381 ( |reset_gpio ) out hi
gpio-394 ( |sysfs ) out hi
gpio-412 ( |vdd-usb0-5v ) out lo
gpio-413 ( |vdd-usb1-5v ) out lo
gpio-420 ( |eqos_phy_reset ) out hi
gpio-424 ( |wlan_pwr ) out lo
gpio-426 ( |camera-control-outpu) out lo
gpio-441 ( |hdmi2.0_hpd ) in lo
gpio-444 ( |wp ) in hi
gpio-445 ( |cd ) in hi
gpio-446 ( |en-vdd-sd ) out lo
gpio-456 ( |camera-control-outpu) out lo
gpio-457 ( |camera-control-outpu) out lo
gpio-461 ( |camera-control-outpu) out lo
gpio-479 ( |external-connection:) in hi
gpio-484 ( |bt_ext_wake ) out hi
Is the steps of TX2 the same as nano?There are too many steps involved, many of which should be particularly configured for the Nano,Can the upgraded Jetpack version be configured more easily?
you may using WindowsOS to generate dtsi files from the pinmux spreadsheet, copy those dtsi files to your UbuntuOS.
there’s python script,
pinmux-dts2cfg.py to convert them as board configuration files. then you should perform full flash to update the board configurations.
$ python pinmux-dts2cfg.py [--pinmux] <ADDRESS_FILE> <GPIO_ADDRESS_FILE> <POR_VAL_FILE> <MANDATORY_PINMUX_FILE> <PINMUX_DTS_FILE> <GPIO_DTS_FILE> <VERSION> [--help]
you may also check some similar discussion threads, such as Topic 53026, or Topic 59977 for reference.
Thank you, I’ll have a try now, I will report the result as quikly as i can.
Some error is report, Is there a problem this time, please?
addr_info.txt gpio_addr_info.txt por_val.txt
ERROR: pin dap2_sclk_pc1(0x00000440) field nvidia,enable-input(0x00000040) is not matching, val = 0x01 expected = 0x00
ERROR: pin dap2_fs_pc4(0x00000440) field nvidia,enable-input(0x00000040) is not matching, val = 0x01 expected = 0x00
ERROR: pin dmic1_clk_pm1(0x00004441) field nvidia,enable-input(0x00000040) is not matching, val = 0x01 expected = 0x00
ERROR: pin dmic2_dat_pm2(0x00004441) field nvidia,enable-input(0x00000040) is not matching, val = 0x01 expected = 0x00
ERROR: pin dap4_sclk_pcc0(0x00004440) field nvidia,enable-input(0x00000040) is not matching, val = 0x01 expected = 0x00
ERROR: pin dap4_fs_pcc3(0x00004440) field nvidia,enable-input(0x00000040) is not matching, val = 0x01 expected = 0x00
ERROR: pin sdmmc4_dqs(0x00000444) field nvidia,tristate(0x00000010) is not matching, val = 0x00 expected = 0x01
I have reflash device tree. How do I make sure the configuration is works?
you may check the GPIO pin you’d configure for verification.
please check the pin under
/sys/class/gpio, you may also refer to GPIO changes session for the GPIO number calculation,
I want to use pin 38 of J21, I cant use number “394” to control it create a square wave. but when i control it keep low, it’s returns to high after a short time. I think my config doesn’t work, and some thing is control it to hight.
tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.txt (29.2 KB)
you may also disassembler the dtb file into txt file to review the settings. these settings were represent as hex values.
$ dtc -I dtb -O dts -o results.txt tegra186.dtb
gpio-input = <...>
I have disabled I2S0, nothing strange will happen now, of course, GPIO also fails, so I think I need to configure GPIO separately in the device tree, but I don’t know where to modify, because I don’t know what 6000D000 of this type of data represents, I don’t find my gpio config in pinmux@2430000 node. If I need to use flash.sh rebuild the kernel, some configuration of TeGRA186-quill-P3310-1000-a00-pinmux-gpio.cfg will take effect, and I’m used “p2771-0000-dsi-hdmi-dp.conf” conf file flash dtb,.
results.txt (443.5 KB)
linux,phandle = <0x1e>;
phandle = <0x1e>;
nvidia,pins = “aud_mclk_pj4”;
linux,phandle = <0x120>;
phandle = <0x120>;
nvidia,pins = “gpio_aud0_pj5”;
linux,phandle = <0x121>;
phandle = <0x121>;
nvidia,pins = “gpio_edp2_pp5”;
nvidia,pull = <0x2>;
nvidia,tristate = <0x1>;
nvidia,enable-input = <0x1>;
status = “okay”;
nvidia,pins = “gpio_edp3_pp6”;
nvidia,pull = <0x0>;
nvidia,tristate = <0x0>;
nvidia,enable-input = <0x0>;
status = “okay”;
1.Do I need to modify pinmux, then t0 modify device tree, and finally modify the kernel code?
2.I want to configure gpio in the device tree as gpio mapping. Is this the same for TX2? if yes, Which file is the GPIO driver file of TX2?
you should have change the default configuration, if you’re using pinmux spreadsheet to generate dtsi files, and convert them as board configuration file. you’ll need to perform a full flash to update the board.
there’re several dtsi files to built as device tree file for board flashing,
[ 17.4254 ] Writing partition kernel-dtb with tegra186-quill-p3310-1000-c03-00-base_sigheader.dtb.signed
[ 17.4590 ] [................................................] 100%
you’ll also found below device tree as base file for customization,
yes, you can also have configuration by edit the device tree manually.
please also note that,
if you would like to have setting to be applied in MB1, then you’ll need to perform a flash process to update board configuration files.
What’s the meaning of “UNCLAIMED”? Is my configuration invalid?
Can you give me a sample to configure GPIO3_PJ.02 as GPIO?
pin 72 (DAP1_SCLK_PJ0): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 73 (DAP1_DOUT_PJ1): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 74 (DAP1_DIN_PJ2): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 75 (DAP1_FS_PJ3): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 76 (AUD_MCLK_PJ4): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 77 (GPIO_AUD0_PJ5): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 78 (GPIO_AUD1_PJ6): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 79 (GPIO_AUD2_PJ7): (MUX UNCLAIMED) (GPIO UNCLAIMED)
you may control it via system nodes. please refer to below as an example,
$ echo 324 > /sys/class/gpio/export
$ cd /sys/class/gpio/gpio324/
$ echo out > direction
$ echo 1 > value
I want to config Pj0 ~6 pin as gpio, but it’s still i2s1, device tree doesn’t change.
I know how to get GPIO numbers, and I can drive them, but they are I2S pins, so sometimes there will be pulse generation automatically. I need to disable i2s1 and configure them as GPIO.
what does pinmux “tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg” doing?
Is it necessary to manually modify the device tree after modifying the pinmus？
Tx2 module device get through “sudo dtc -I fs -O dts -o ./extracted.dts”