Hello NVIDIA,
我遇到个问题,感觉这个GPIO默认值不受控制,我在Linux_for_Tegra\bootloader\generic\BCT\tegra234-mb1-bct-pinmux-p3767-dp-a03.dtsi 已经更改pinmux了,也在Linux_for_Tegra\bootloader\tegra234-mb1-bct-gpio-p3767-dp-a03.dtsi设置默认值了,我开机读寄存器感觉设置的不对:
希望是开机将PH.00设置输出为高,PG.06设置输出为低,都是双向高阻态
root@nv-desktop:/home/nv# busybox devmem 0x02434040
0x00000050
root@nv-desktop:/home/nv# busybox devmem 0x02434080
0x00000051
root@nv-desktop:/home/nv# gpioinfo |grep PH.00
line 43: “PH.00” unused output active-high
root@nv-desktop:/home/nv# gpioinfo |grep PG.06
line 41: “PG.06” unused output active-high
root@nv-desktop:/home/nv#
root@nv-desktop:/home/nv# cat /sys/kernel/debug/gpio|grep “PH.00”
gpio-391 (PH.00 )
root@nv-desktop:/home/nv# cat /sys/kernel/debug/gpio|grep “PG.06”
gpio-389 (PG.06 )
我用配寄存器的方式试过,必须高阻态+内部上下拉才能正确点亮熄灭
root@nv-desktop:/home/nv# busybox devmem 0x02434040 w 0x54
root@nv-desktop:/home/nv# busybox devmem 0x02434040 w 0x58
root@nv-desktop:/home/nv# busybox devmem 0x02434080 w 0x54
root@nv-desktop:/home/nv# busybox devmem 0x02434080 w 0x58
DTS config:
soc_gpio19_pg6 {
nvidia,pins = "soc_gpio19_pg6";
nvidia,function = "rsvd1";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};
soc_gpio21_ph0 {
nvidia,pins = "soc_gpio21_ph0";
nvidia,function = "rsvd0";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};
excel config:
目前的问题:
- 为什么dts配置后,默认值不对?
- gpioset也感觉不受控制,设置后,用devmem读寄存器值没变
root@nv-desktop:/home/nv# gpioset --mode=wait `gpiofind 'PG.06'`=0
root@nv-desktop:/home/nv# gpioset --mode=wait `gpiofind 'PG.06'`=1
root@nv-desktop:/home/nv#
root@nv-desktop:/home/nv#
root@nv-desktop:/home/nv# busybox devmem 0x02434080
0x00000451