器件型号:BEAGLEBK
大家好、
我正在从事基于 BeagleBone Black 的电路板设计。 该程序存储在板载 eMMC 上;不使用 SD 卡。
我已修改了许多引脚的"mmc1_PINs"节点下的 Linux 器件树、以将其配置为 GPIO。 所有这些都可以正常工作。
例如、在 arch/arm/boot/dts/AM335x-bone-common.dtsi 中:
mmc1_pins:pinmux_mmc1_pins{
pinctrl-single、pins =<
/* AM33XX_IOPAD (0x960、PIN_INPUT | MUX_MODE7)*/* spio0_CS1.GPIO0_6 */
/*AM33XX_IOPAD (0x8fc、PIN_INPUT_PULLUP | MUX_MODE0)*/* mmc0_dat0.mmc0_data0 */
/*AM33XX_IOPAD (0x8f8、PIN_INPUT_PULLUP | MUX_MODE0)*/* mmc0_dat1.mmc0_data1 */
/*AM33XX_IOPAD (0x8f4、PIN_INPUT_PULLUP | MUX_MODE0)*/* mmc0_data2.mmc0_data2 */
AM33XX_IOPAD (0x8f0、PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_data3 *
/* AM33XX_IOPAD (0x904、PIN_INPUT_PULLUP | MUX_MODE0)*/ /* mmc0_cmd.mmc0_cmd */
/*AM33XX_IOPAD (0x900、PIN_INPUT_PULLUP | MUX_MODE0)*/ /* mmc0_clk.mmc0_clk */
/*AM33XX_IOPAD (0x9a0、PIN_INPUT | MUX_MODE4)*/ /* McASP0_aclkr.mmc0_sdwp */
>;
};
在 AM335x-bonebblack.dts 中:
例如、mmc0_data0配置为 GPIO2_29。
my_GPIO2_pins:pinmux_my_GPIO2_pins{
pinctrl-single、pins =<
AM33XX_IOPAD (0x88c、PIN_INPUT_PULLUP | MUX_MODE7) /* GPMC_clk.GPIO2_1 *
AM33XX_IOPAD (0x8fc、PIN_INPUT_PULLUP | MUX_MODE7) /* mmc0_dat0.GPIO2_29 *
AM33XX_IOPAD (0x8f8、PIN_INPUT_PULLUP | MUX_MODE7) /* mmc0_dat1.GPIO2_28 *
AM33XX_IOPAD (0x8f4、PIN_INPUT_PULLUP | MUX_MODE7) /* mmc0_data2.GPIO2_27 *
AM33XX_IOPAD (0x8f0、PIN_INPUT_PULLUP | MUX_MODE7) /* mmc0_dat3.gpio2_26 *
AM33XX_IOPAD (0x904、PIN_INPUT_PULLUP | MUX_MODE7) /* mmc0_cmd.GPIO2_31 *
AM33XX_IOPAD (0x900、PIN_INPUT_PULLUP | MUX_MODE7) /* mmc0_clk.GPIO2_30 *
AM33XX_IOPAD (0x8ec、PIN_OUTPUT | MUX_MODE7) /* LCD_AC_BIAS_EN.GPIO2_25 *
>;
};
但是、当我尝试删除 AM335x-bone-common.dtsi 中的 mmc0_dat3 (通过完全删除 mmc1_pins 节点或注释掉 mmc1_pins 中的所有条目)时、Linux 内核无法正确引导。
"mmc1_pins"节点似乎无法删除、需要至少包含一个条目。
问题:
1.如果我的理解是正确的,那么修改设备树的正确方法是什么? 我是否只是在 mmc1_pins 中放置 mmc0_data3配置? 或者是否有办法在 AM335x-bonebblack.dts 中的 my_GPIO2_pins 下覆盖它?
2.如果我的理解不正确,请解释问题可能是什么,以及如何正确地解决。
感谢你的帮助!