本人使用beaglebone black开发板,AM3358的CPU,SDK使用的是ti-processor-sdk-linux-am335x-evm-02.00.02.11-Linux-x86-Install.bin。
使用ti pimux v4软件定义了管脚输出了4个文件,分别是: am335x_gpevm_pinmux_data.c,am335x_pinmux.h,devicetree.txt,PinmuxConfigSummary.csv
参考了wiki上的相关文章,但都没找到如何使用这4个文件。
请问下,这4个文件分别是什么?我如何使用这4个文件编u-boot?
劳烦大家能详细点告诉我。不胜感激。
yongt chen:
你好,你的问题解决了么?我遇到了同样的问题,不知道怎么搞啊
Eggsy Pang:
am335x_gpevm_pinmux_data.c,am335x_pinmux.h用于TIRTOS的pinmux
devicetree.txt用于kernel阶段的device tree文件里的pinmux
PinmuxConfigSummary.csv是一个Excel文档,总结你所用到的引脚的相关信息,电压域,上下拉等等
yongt chen:
回复 Eggsy Pang:
你好,我的情况是用Ubuntu:Linux version 3.2.0-24-generic-pae (buildd@vernadsky) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #37-Ubuntu SMP Wed Apr 25 10:47:59 UTC 2012,交叉编译器gcc-linaro-arm-linux-gnueabihf-4.8-2014.03_linux,然后下载的BeagleBone Black(Rev C) Debian 源码。
那我要是想配置这些引脚,只要把devicetree.txt 里的配置添加到am335x-boneblack.dts里就好了么?
我用的TI云里的pinmux工具生成了上述四个文件,但是am335x_gpevm_pinmux_data.c,am335x_pinmux.h这两个文件我不知道怎么修改,里边的pinmuxBoardCfg_t结构体kernel里都没有。
Eggsy Pang:
回复 yongt chen:
没错,直接在am335x-boneblack.dts里添加,举个例子(红色添加):
&am33xx_pinmux { pinctrl-names = "default";。。。。
i2c0_pins: pinmux_i2c0_pins { pinctrl-single,pins = < 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */ >;
};
。。。。
}
。。。。
//下面是应用该引脚
&i2c0 { pinctrl-names = "default"; pinctrl-0 = <&i2c0_pins>;
status = "okay"; clock-frequency = <400000>;
tps: tps@2d { reg = <0x2d>; };};
yongt chen:
回复 Eggsy Pang:
谢谢,那这样的话.c 和 .h就用不到了,我看了一下我的dtbs文件,是少了很多东西
uart1: serial@44e09000 { compatible = "ti,omap3-uart"; ti,hwmods = "uart1"; clock-frequency = <48000000>; reg = <0x44e09000 0x2000>; interrupts = <72>; status = "disabled"; };
这个是原来的am33xx.dtsi里的东西,比如我生成的是
uart1_pins_default: uart1_pins_default { pinctrl-single,pins = < 0x180 ( PIN_INPUT | MUX_MODE0 ) /* (D16) uart1_rxd.uart1_rxd */ 0x184 ( PIN_OUTPUT | MUX_MODE0 ) /* (D15) uart1_txd.uart1_txd */ >;};
那我用的时候就是
&uart1{
ti,hwmods = "uart1";pinctrl-0 = <&uart1_pins_default>;
interrupts = <72>;
clock-frequency = <48000000>;
reg = <0x44e09000 0x2000>;
status = "okay";};
这样就好了吧
Eggsy Pang:
回复 yongt chen:
.c 和 .h是用于TIRTOS的,不是linux的
dtsi里面有的东西就不用再重写一次了,直接这样写就可以的:
&uart1{ pinctrl-names = "default"; pinctrl-0 = <&uart1_pins_default>;
status = "okay";};