修补boneblack.dts后无法看到新的pingroup

时间:2018-04-12 06:21:21

标签: embedded-linux yocto beagleboneblack device-tree

我尝试修补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>;

不幸的是,我不知道我做错了什么可以请你帮我或给我任何建议。我在网上阅读了很多文章/页面,但可能是我想念的一些东西。

1 个答案:

答案 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 {

问题解决了