我尝试修补boneblack.dts(http://git.ti.com/ti-linux-kernel/ti-linux-kernel/blobs/ti-lsk-linux-4.4.y/arch/arm/boot/dts/am335x-boneblack.dts),以便为我的BBB上的pru启用(设置)P9_24,P9_26,P9_27,P9_30和MUX5引脚。
补丁通过构建过程,但我看不到pingroup中的任何修改(仍然相同),目前看起来像:
root@beaglebone:~# cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pingroups | grep group
registered pin groups:
group: pinmux_clkout2_pin
group: pinmux_uart0_pins
group: cpsw_default
group: cpsw_sleep
group: davinci_mdio_default
group: davinci_mdio_sleep
group: pinmux_mmc1_pins
group: pinmux_emmc_pins
group: user_leds_default
group: user_leds_sleep
group: mcasp0_pins
group: pinmux_i2c0_pins
group: nxp_hdmi_bonelt_pins
group: nxp_hdmi_bonelt_off_pins
group: pinmux_i2c2_pins
然而,设备树反映了devicetree的变化,如您所见(ocp:P9_XY_pinmux存在):
root@beaglebone:~# ls /sys/devices/platform/ocp/
40300000.ocmcram 44e3e000.rtc 48048000.timer 4819c000.i2c 48310000.rng 4a300000.pruss modalias ocp:l4_wkup@44c00000
40302000.ocmcram_nocache 47400000.usb 4804a000.timer 481ac000.gpio 49000000.edma 4c000000.emif ocp:P9_24_pinmux of_node
44e07000.gpio 48038000.mcasp 4804c000.gpio 481ae000.gpio 49800000.tptc 53100000.sham ocp:P9_26_pinmux power
44e09000.serial 48042000.timer 48060000.mmc 481d8000.mmc 49900000.tptc 53500000.aes ocp:P9_27_pinmux subsystem
44e0b000.i2c 48044000.timer 480c8000.mailbox 48200000.interrupt-controller 49a00000.tptc 56000000.sgx ocp:P9_30_pinmux uevent
44e35000.wdt 48046000.timer 480ca000.spinlock 4830e000.lcdc 4a100000.ethernet driver_override ocp:cape-universal
目前我使用yocto branch morty和meta-openembedded和meta-ti,我的补丁看起来像:
--- ./arch/arm/boot/dts/am33xx.dtsi
+++ ./arch/arm/boot/dts/am33xx.dtsi
@@ -165,7 +165,7 @@
* for the moment, just use a fake OCP bus entry to represent
* the whole bus hierarchy.
*/
- ocp: ocp {
+ ocp {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
--- ./arch/arm/boot/dts/am335x-boneblack.dts
+++ ./arch/arm/boot/dts/am335x-boneblack.dts
@@ -86,6 +86,83 @@
AM33XX_IOPAD(0x86c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.GPIO1_27 */
>;
};
+
+ P9_24_default_pin: pinmux_P9_24_default_pin { pinctrl-single,pins = <
+ AM33XX_IOPAD(0x0984, PIN_OUTPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE5) >; };
+
+ P9_26_default_pin: pinmux_P9_26_default_pin { pinctrl-single,pins = <
+ AM33XX_IOPAD(0x0980, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE5) >; };
+
+ P9_27_default_pin: pinmux_P9_27_default_pin { pinctrl-single,pins = <
+ AM33XX_IOPAD(0x09a4, PIN_OUTPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE5) >; };
+
+ P9_30_default_pin: pinmux_P9_30_default_pin { pinctrl-single,pins = <
+ AM33XX_IOPAD(0x0998, PIN_OUTPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE5) >; };
+};
+
+&ocp {
+ P9_24_pinmux {
+ compatible = "bone-pinmux-helper";
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&P9_24_default_pin>;
+ };
+
+ P9_26_pinmux {
+ compatible = "bone-pinmux-helper";
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&P9_26_default_pin>;
+ };
+
+ P9_27_pinmux {
+ compatible = "bone-pinmux-helper";
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&P9_27_default_pin>;
+ };
+
+ P9_30_pinmux {
+ compatible = "bone-pinmux-helper";
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&P9_30_default_pin>;
+ };
+
+ cape-universal {
+ compatible = "gpio-of-helper";
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <>;
+
+ P9_24 {
+ gpio-name = "P9_24";
+ gpio = <&gpio0 15 0>;
+ output;
+ dir-changeable;
+ };
+
+ P9_26 {
+ gpio-name = "P9_26";
+ gpio = <&gpio0 14 0>;
+ input;
+ dir-changeable;
+ };
+
+ P9_27 {
+ gpio-name = "P9_27";
+ gpio = <&gpio3 19 0>;
+ output;
+ dir-changeable;
+ };
+
+ P9_30 {
+ gpio-name = "P9_30";
+ gpio = <&gpio3 16 0>;
+ output;
+ dir-changeable;
+ };
+ };
};
&lcdc {
@@ -152,6 +229,10 @@
status = "okay";
};
+&pruss {
+ status = "okay";
+};
+
/ {
clk_mcasp0_fixed: clk_mcasp0_fixed {
#clock-cells = <0>;
不幸的是,我不知道我做错了什么可以请你帮我或给我任何建议。我在网上阅读了很多文章/页面,但可能是我想念的一些东西。
答案 0 :(得分:0)
所以这里正确的补丁:
--- ./arch/arm/boot/dts/am335x-boneblack.dts
+++ ./arch/arm/boot/dts/am335x-boneblack.dts
@@ -86,6 +86,21 @@
AM33XX_IOPAD(0x86c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.GPIO1_27 */
>;
};
+
+ pru0_pins: pru0_pins {
+ pinctrl-single,pins = <
+ AM33XX_IOPAD(0x0984, PIN_OUTPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE5)
+ AM33XX_IOPAD(0x0980, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE5)
+ AM33XX_IOPAD(0x09a4, PIN_OUTPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE5)
+ AM33XX_IOPAD(0x0998, PIN_OUTPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE5)
+ >;
+ };
+};
+
+&pruss {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pru0_pins>;
};
&lcdc {
问题解决了