工具/软件:Linux
我一直在查看 Uboot 和 Linux 的器件树、但无法找到连接到 mmc0的 SD 卡的 pinmux 设置的位置。
在 AM335x-evm.dts 中、我找到以下内容、告诉我 pinmux 配置位于 mmc1_pins 下:
&mmc1{ status ="确定"; VMMC-supply =<&VMMC_reg>; 总线宽度=<4>; pinctrl-names ="默认值"; pinctrl-0 =<&mmc1_PINs>; CD-GPIO =<&GPIO0 6 GPIO_ACTIVE_LOW>; };
当我在 pinmux 部分中查找 mmc1_pins 时、我会看到:
mmc1_pins:pinmux_mmc1_pins{ pinctrl-single、pins =< 0x160 (PIN_input | MUX_MODE7)/* spi0_CS1.GPIO0_6 */ >; };
如果没有引脚0x0f0、0x0f4、0x0f8、0x0fc、0x100、 0x104? 我理解0x160行的含义、但我也希望得到 Data0-2、CLK、CMD 的定义。 我知道 ROM 引导加载程序会在查找 SPL 时设置这些引脚、但如果您打算使用这些引脚、保留在 devicetree 中定义的引脚是否谨慎?
为了便于参考、我希望找到如下内容:
mmc1_pins:pinmux_mmc1_pins{ pinctrl-single、pins =< 0x100 (PIN_INPUT | MUX_MODE0)/*(G17) mmc0_clk.mmc0_clk * 0x104 (PIN_INPUT | MUX_MODE0)/*(G18) mmc0_cmd.mmc0_cmd * 0xFC (PIN_INPUT | MUX_MODE0)/*(G16) mmc0_data0.mmc0_data0 */ 0xf8 (PIN_INPUT | MUX_MODE0)/*(G15) mmc0_data1.mmc0_data1 */ 0xf4 (PIN_INPUT | MUX_MODE0)/*(F18) mmc0_data2.mmc0_data2 */ 0xf0 (PIN_INPUT | MUX_MODE0)/*(F17) mmc0_data3.mmc0_data3 */ 0x160 (PIN_INPUT | MUX_MODE7)/*(C15) spi0_CS1.mmc0_sdcd */ >; };
感谢您的任何见解、
Tyler
编辑
我使用了 BeagleBone Black 使用的 DTB (未启用 uboot 覆盖)并对其进行了反编译、我发现 mmc1的情况与此完全相同:
pinmux_mmc1_pins{ pinctrl-single、pins =<0x160 0x2F>; Linux、phandle =<0x38>; phandle =<0x38>; };
因此、我确信 SD 卡总线没有引脚多路复用器配置、我认为这是因为 ROM 引导加载程序正在设置引脚多路复用器、 但是、我的原始问题是、如果您打算使用这些引脚、保留在 devicetree 中定义的这些引脚并不谨慎 、或者是否有很好的理由在 ROM 引导加载程序设置这些引脚后不接触这些引脚的引脚多路复用寄存器?
Tyler