Linux 内核 - Beagle Bone - PWM Pin Muxing - 设备树
Linux Kernel - Beagle Bone - PWM Pin Muxing - Device Tree
我正在尝试通过设备树在 PWM 模式下复用 gpmc_ad9 引脚
文件:arch/arm/boot/dts/am335x-boneblack.dts
&am33xx_pinmux {
hw_pins: hw_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x824, PIN_OUTPUT | MUX_MODE4) /* gpmc_ad9.ehrpwm2B */
>;
};
};
/ {
soc {
pinctrl-names = "default";
pinctrl-0 = <&hw_pins>;
};
};
但是 debugfs 仍然显示 pin 的模式 7
/sys/kernel/debug/pinctrl/44e10800.pinmux-pinctrl-single # cat pins | grep 824
pin 9 (PIN9) 44e10824 00000027 pinctrl-single
我在设备树中没有看到此引脚被重新定义
我哪里做错了?
我找到了解决方案,我不得不将 pinctrl 属性放在另一个节点中。
我想那是因为 soc 节点已经定义了 pinctrl 属性。
&am33xx_pinmux {
hw_pins: hw_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x824, PIN_OUTPUT | MUX_MODE4) /* gpmc_ad9.ehrpwm2B */
>;
};
};
/ {
soc {
mydriver {
compatible = "mydriver";
pinctrl-names = "default";
pinctrl-0 = <&hw_pins>;
};
};
};
我正在尝试通过设备树在 PWM 模式下复用 gpmc_ad9 引脚
文件:arch/arm/boot/dts/am335x-boneblack.dts
&am33xx_pinmux {
hw_pins: hw_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x824, PIN_OUTPUT | MUX_MODE4) /* gpmc_ad9.ehrpwm2B */
>;
};
};
/ {
soc {
pinctrl-names = "default";
pinctrl-0 = <&hw_pins>;
};
};
但是 debugfs 仍然显示 pin 的模式 7
/sys/kernel/debug/pinctrl/44e10800.pinmux-pinctrl-single # cat pins | grep 824
pin 9 (PIN9) 44e10824 00000027 pinctrl-single
我在设备树中没有看到此引脚被重新定义
我哪里做错了?
我找到了解决方案,我不得不将 pinctrl 属性放在另一个节点中。 我想那是因为 soc 节点已经定义了 pinctrl 属性。
&am33xx_pinmux {
hw_pins: hw_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x824, PIN_OUTPUT | MUX_MODE4) /* gpmc_ad9.ehrpwm2B */
>;
};
};
/ {
soc {
mydriver {
compatible = "mydriver";
pinctrl-names = "default";
pinctrl-0 = <&hw_pins>;
};
};
};