您好,我从kernel设备树配置GPIO 的pinmux没有生效。如下是我的配置代码:我想将PDD7配置成GPIO
//padctl_aon
pinmux@c7a2000 {
pinctrl-names = "default";
pinctrl-0 = <&pinmux_default_c7a2000>;
pinmux_default_c7a2000: common_c7a2000 {
tca9546_0_rst_pdd7 {
nvidia,pins = "soc_gpio25_pdd7";
nvidia,function = "rsvd0";
nvidia,pull = <TEGRA_PIN_PULL_UP>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_DISABLE>;
nvidia,e-io-od = <TEGRA_PIN_DISABLE>;
nvidia,e-lpbk = <TEGRA_PIN_DISABLE>;
};
tca9546_1_rst_pdd5 {
nvidia,pins = "soc_gpio23_pdd5";
nvidia,function = "rsvd1";
nvidia,pull = <TEGRA_PIN_PULL_UP>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_DISABLE>;
nvidia,e-io-od = <TEGRA_PIN_DISABLE>;
nvidia,e-lpbk = <TEGRA_PIN_DISABLE>;
};
};
};
查看pinctrl-maps已经应用了pinmux
root@tegra:/home/robot# cat /sys/kernel/debug/pinctrl/pinctrl-maps
Pinctrl maps:
device c7a2000.pinmux
state default
type MUX_GROUP (2)
controlling device c7a2000.pinmux
group soc_gpio23_pdd5
function rsvd1
device c7a2000.pinmux
state default
type CONFIGS_GROUP (4)
controlling device c7a2000.pinmux
group soc_gpio23_pdd5
config pull=2
config tristate=0
config enable-input=0
device c7a2000.pinmux
state default
type MUX_GROUP (2)
controlling device c7a2000.pinmux
group soc_gpio25_pdd7
function rsvd0
device c7a2000.pinmux
state default
type CONFIGS_GROUP (4)
controlling device c7a2000.pinmux
group soc_gpio25_pdd7
config pull=2
config tristate=0
config enable-input=0
但是无论我的配置是什么,linux操作GPIO的电平都没有变化.
Hi chutianwei,
They are the pinmux register configuration rather than the pin state control.
Please run the following command before and after you add those changes.
$ sudo busybox devem 0x0c7a3078
Could you use pinmux spreadsheet to configure it as following?
Default pin state will be configured in gpio dtsi and it will be loaded in early boot stage(MB1).
在MB1阶段将PU7复用成PWM5,配置如下
系统启动之后,驱动PWM5 enable,但是pu7并没有任何波形输出,同时cat pinmux发现pu7的io-reset=1
cat /sys/kernel/debug/pinctrl/810c281000.pinmux/pinconf-groups
94 (soc_gpio177_pu7):
pull=0
tristate=0
enable-input=0
open-drain=1
io-reset=1
rcv-sel=1
io-hv=1
schmitt=0
pull-down-strength=8
pull-up-strength=8
drive-type=1
gpio-mode=1
function=gp_pwm5
我是不是需要先解除io-reset=1状态,我应该如何解除?
Could you share the result of the following command on your board?
//SOC_GPIO177
$ sudo busybox devmem 0x810c2870a0
chutianwei:
驱动PWM5 enable
How do you enable PWM5? Could you share the steps?
robot@tegra:~$ sudo busybox devmem 0x810c2870a0
[sudo] password for robot:
0x00203409
enable PWM5流程如下:
overlay kernel设备树
//pwm5
pwm@810c600000 {
status = "okay";
};
通过debug文件系统查看PWM对应的index,确定PWM5对应的pwmchip index为3
root@tegra:/home/robot# cat /sys/kernel/debug/pwm
0: platform/c6a0000.pwm, 1 PWM device
pwm-0 (pwm-fan ): requested enabled period: 40000 ns duty: 12079 ns polarity: normal usage_power
1: platform/810c5e0000.pwm, 1 PWM device
pwm-0 ((null) ): period: 0 ns duty: 0 ns polarity: normal
2: platform/810c5f0000.pwm, 1 PWM device
pwm-0 ((null) ): period: 0 ns duty: 0 ns polarity: normal
3: platform/810c600000.pwm, 1 PWM device
pwm-0 ((null) ): period: 0 ns duty: 0 ns polarity: normal
4: platform/810c610000.pwm, 1 PWM device
pwm-0 ((null) ): period: 0 ns duty: 0 ns polarity: normal
5: platform/810c620000.pwm, 1 PWM device
pwm-0 ((null) ): period: 0 ns duty: 0 ns polarity: normal
6: platform/810c5c0000.tachometer, 1 PWM device
pwm-0 ((null) ): period: 0 ns duty: 0 ns polarity: normal
通过sys文件系统配置使能PWM5
echo 0 > /sys/class/pwm/pwmchip3/export
echo 33333333 > /sys/class/pwm/pwmchip3/pwm0/period
echo 3333333 > /sys/class/pwm/pwmchip3/pwm0/duty_cycle
echo 1 > /sys/class/pwm/pwmchip3/pwm0/enable
现象:在没有enable PWM5之前,引脚为高电平;enable PWM5之后,引脚持续低电平,没有PWM波形
最新发现,echo 40000 > /sys/class/pwm/pwmchip3/pwm0/period
echo 10000 > /sys/class/pwm/pwmchip3/pwm0/duty_cycle
时PWM信号输出正常,如果period设置大于10ms,之后PWM持续输出低电平,我的PWM是给相机使用,所以配置成30HZ时,PWM工作异常,这个功能在AGX orin上是能正常工作的。请帮忙定位原因
Have you tried to update the parent clock and compare the clock frequency on both platform?
chutianwei:
发现分频值大于0xFF之后,PWM就没有波形了
Yes, it is expected as the valid value should be between 0x0 and 0xFF.
system
Closed
October 22, 2025, 5:56am
11
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.