AT91 pinctrl在设备树中定义我自己的引脚

时间:2013-11-11 19:53:29

标签: atmel gpio device-tree

我正在使用at91sam9x25ek主板,我想在设备树中定义自己的自定义引脚,因为新内核版本不包含我的主板的特定C代码,只是dts文件。 我想要的 - 例如PB14作为GPIO下拉,我打算在内核模块中使用它们。我能够通过设备树中的现有节点定义引脚:

pinctrl@fffff400 {
   #address-cells = <1>;
   #size-cells = <1>;
   compatible = "atmel,at91sam9x5-pinctrl", "atmel,at91rm9200-pinctrl", "simple-bus";
   ranges = <0xfffff400 0xfffff400 0x800>;

   macb0 {
     pinctrl_macb0_rmii: macb0_rmii-0 {
      atmel,pins =
         <1 0 0x1 0x0   /* PB0 periph A ERX0 */
          1 1 0x1 0x0   /* PB1 periph A ERX1 */
          1 2 0x1 0x0   /* PB2 periph A ERXER */
          1 3 0x1 0x0   /* PB3 periph A ERXDV */
          1 4 0x1 0x0   /* PB4 periph A ETXCK */
          1 5 0x1 0x0   /* PB5 periph A EMDIO */
          1 6 0x1 0x0   /* PB6 periph A EMDC */
          1 7 0x1 0x0   /* PB7 periph A ETXEN */
          1 9 0x1 0x0   /* PB9 periph A ETX0 */
          1 10 0x1 0x0   /* PB10 periph A ETX1 */
          1 14 0x0 0x8>; /* !!!JUST for test, PB14 as GPIO pull down*/
     };
    };

   macb0: ethernet@f802c000 {
   compatible = "cdns,at32ap7000-macb", "cdns,macb";
   reg = <0xf802c000 0x100>;
   interrupts = <24 4 3>;
   pinctrl-names = "default";
   pinctrl-0 = <&pinctrl_macb0_rmii>;
   status = "disabled";
   };
}

macb0: ethernet@f802c000 {
   status = "okay";
};

以上代码有效,在启动过程中我看到PB14上的电压下降了。但这是丑陋的定义,我想用自定义引脚创建自己的节点并在linux启动时初始化它。像这样:

custom_pins {
   pinctrl_custom_pins_test: custom_pins_test-0 {
      atmel,pins =
         <1 14 0x0 0x8>;
   };
};

但是如何根据我自己的自定义引脚节点触发这些引脚/引脚的定义?我应该写什么设备树文件?

提前致谢。

0 个答案:

没有答案