从之前的案例来看,两种方式都是修改pinmux寄存器:但还是没有弄清楚dts文件的使用方法。
mux.c文件配置时写0x44E10000+xx寄存器;OFFSET=0x800+xx,即gpmc往后的地址;在spl和uboot都会编到,在board_init_f调用;
dts文件是将工具生成devicetree.txt 合入到dts编译生成xxx.dtb,但在哪里调用的呢?是在mux.c之前调用的吗(因为保证mux.c正确好像就可以正常使用)?移植spl和uboot时是否两个都需要修改?
另外sleep是什么作用尚不清楚,帮看一下?(dcan1是因为工具自动将dcan0命名的mydcan1)
mydcan1_pins_default: mydcan1_pins_default {
pinctrl-single,pins = <
0x120 ( PIN_INPUT | MUX_MODE1 ) /* (C13) mii1_txd2.dcan0_rx */
0x11c ( PIN_INPUT | MUX_MODE1 ) /* (C16) mii1_txd3.dcan0_tx */
>;
};
/* Optional sleep pin settings. Must manually enter values in the below skeleton. */
mydcan1_pins_sleep: mydcan1_pins_sleep {
pinctrl-single,pins = <
0x120 ( ) /* (C13) mii1_txd2.dcan0_rx */
0x11c ( ) /* (C16) mii1_txd3.dcan0_tx */
>;
};
上面数组的命令应该是可以自定义的吧,但必须正确挂接到器件结构例如&dcan1下面(evm为例):
&dcan1 {
pinctrl-names = "default";
pinctrl-0 = <&dcan1_default>;
status = "okay";
};
但&dcan1再怎么调用的没有搜到。
因为需要新增spi0的配置,其他已有的可以同步,但evm中没有spi的默认格式,需要从&spi0开始修改,不清楚新增的命名规范是?
其他evm有的是这个格式:
spi0: spi@10600 {
status = "okay";
spi-flash@0 {
相似案例:
https://e2echina.ti.com/question_answer/dsp_arm/sitara_arm/f/25/p/133905/374577?tisearch=e2e-sitesearch&keymatch=pinmux#374577
最新进展:uart0启动时spl和uboot正常了(实际主要改了ddr3的配置,影响启动的pinmux(uart,iic)的与evm板没差异),但uboot阶段emmc扫描不到,怀疑pinmux配置还有问题。当前只将pinmux mmc0的信息修改在mux.c中,dts文件没有改。想问一下dts文件是如何使用的?识别emmc还需要哪些修改?emmc是用的mmc0,pin配置为:
static struct module_pin_mux emmc_pin_mux[] = {
{OFFSET(mmc0_clk), (MODE(0) | PULLUDDIS | RXACTIVE)}, /* MMC0_CLK (D1) mmc0_clk.mmc0_clk */ {OFFSET(mmc0_cmd), (MODE(0) | PULLUP_EN | RXACTIVE)}, /* MMC0_CMD (D2) mmc0_cmd.mmc0_cmd */
{OFFSET(mmc0_dat0), (MODE(0) | PULLUP_EN | RXACTIVE)}, /* MMC0_DAT0 (C1) mmc0_dat0.mmc0_dat0 */
{OFFSET(mmc0_dat1), (MODE(0) | PULLUP_EN | RXACTIVE)}, /* MMC0_DAT1 (C2) mmc0_dat1.mmc0_dat1 */
{OFFSET(mmc0_dat2), (MODE(0) | PULLUP_EN | RXACTIVE)}, /* MMC0_DAT2 (B2) mmc0_dat2.mmc0_dat2 */
{OFFSET(mmc0_dat3), (MODE(0) | PULLUP_EN | RXACTIVE)}, /* MMC0_DAT3 (B1) mmc0_dat3.mmc0_dat3 */
{OFFSET(mii1_rxd2), (MODE(3) | PULLUP_EN | RXACTIVE)}, /*0x138 (E16) mii1_rxd2.mmc0_dat4 */
{OFFSET(mii1_rxd3), (MODE(3) | PULLUP_EN | RXACTIVE)}, /*0x134 (C14) mii1_rxd3.mmc0_dat5 */
{OFFSET(mii1_rxclk), (MODE(3) | PULLUP_EN | RXACTIVE)}, /*0x130 (D13) mii1_rx_clk.mmc0_dat6 */
{OFFSET(mii1_txclk), (MODE(3) | PULLUP_EN | RXACTIVE)}, /*0x12c (D14) mii1_tx_clk.mmc0_dat7 */
{-1},};
4377要求的版本是v4.3 我使用的emmc版本号比cpu高是否不用修改软件就可以兼容?
am4377:MMC command/response sets as defined in the MMC standard specification v4.3。
emmc:JEDEC/MMC standard version 4.51-compliant (JEDEC Standard No. 84-B451)
yongqing wang:
dts设备树,这是linux的一种机制,pinmux是Ti自己的
yongqing wang:
回复 yongqing wang:
dts只要用于配置各种功能节点,pinmux用于配置功能复用