PORT_P的偏移是92,因此port_pp.04的偏移应该是96,base是358,因此pp4的偏移应该是348+96=444,但dtsi中TEGRA234_MAIN_GPIO(P, 4)是0x74, 这个偏移对应不上啊!怎么解释?
0x74 = 116
没人答复吗?
Hi,
Please refer to
How to calculate the GPIO pin number on AGX Orin - #3 by JerryChang
Orin AGX已經沒有照這個方法計算了
請直接用
sudo cat /sys/kernel/debug/gpio 去看你要使用的gpio是幾號
这个我明白了 sudo cat /sys/kernel/debug/gpio ;
我现在的问题是用寄存器配置、gpio时文档中提到的上图,在文档中没有定义
看这里,这两个位我找不到他的寄存器地址
請透過gpio framework API來控制, 不需要直接改這兩個register.
你直接改這兩個register也會被firewall擋下來的.
那同等操作的api,分别是什么?
我講得直白一點
你在TRM上看到的1已經不用做了, 你也不用管他
步驟2開始你想要透過register去改是可以的
所謂的API就看你想要從哪裡改. 傳統的 /sys/class/gpio 可以讓你改
或是你寫個kernel driver再用標準的linux gpio framework也可以改
我打算用寄存器的方式配置和控制一个gpio
// define BASE_PADCTL_G3_SOC_GPIO23_0 0x2430000
// define OFFSET_PADCTL_G3_SOC_GPIO23_0 0x20
// define VALUE_PADCTL_G3_SOC_GPIO23_0 0x24
// define BASE_GPIO_P_ENABLE_CONFIG_04_0 0x2200000
// define OFFSET_GPIO_P_ENABLE_CONFIG_04_0 0x12480
// define VALUE_GPIO_P_ENABLE_CONFIG_04_0 0x3
// define OFFSET_GPIO_P_OUTPUT_CONTROL_04_0 0x1248c /* CHECK ==0 /
// define BASE_GPIO_P_OUTPUT_VALUE_04_0 0x2200000
// define OFFSET_GPIO_P_OUTPUT_VALUE_04_0 0x12490
// define VALUE_GPIO_P_OUTPUT_VALUE_04_0 – / W 0/1 */
我准备对PADCTL_G3_SOC_GPIO23_0 和 GPIO_P_ENABLE_CONFIG_04_0 进行配置,并写入GPIO_P_OUTPUT_VALUE_04_0 来实现输出,不知道是否可行
总之我跳过1步骤,直接从第2步开始,就可以把
可以, 但建議還是使用標準GPIO API做控制
Yes, but we still suggest you could use standard GPIO API to control.
我也是被逼无内,我也不想看寄存器,:( 可是你们的GPIO API需要配合设备树和pinctrl,我实在是不会在你们现有设备树的基础上添加我的设备节点
那我是建議你可以重新開個topic繼續你之前的討論…
如果連device tree怎麼運作都沒搞懂的話你到最後只會讓問題越來越多
