Thread 中讨论的其他器件:WL1831、 SysConfig、 AM4372、 WL1835
工具/软件:Linux
您好!
我有一个基于 AM437x EVM 的定制板、我使用的是 TI-SDK 版本4.3.0.5。 我正在尝试在电路板上启动并运行 WiFi、我正在使用 WL1831 WiFi/BT 组合模块。 WiFi 引脚连接到 AM4378上的 MMC2。
最初在我的 DTS 文件中、我有一个 mmc2节点、因为我使用的是 MMC2、但它不起作用、我注意到 EVM 也使用 MMC2连接 WiFi 芯片、但它在 DTS 文件中有一个标记为 mmc3的节点。 我还记得对于 mmc0、我必须在 DTS 文件中为其标记 mmc1。
因此、我将 DTS 文件中的节点更改为标记为 mmc3、但现在、当 U-Boot 尝试使用 MMC 执行操作时、引导会在 U-Boot 期间挂起。 以下是引导日志:
U-Boot SPL 2018.01-00558-g8617e02脏污(2019年4月19日- 09:32:41)
尝试从 MMC1引导
SPL:请为您的电路板实施 spl_start_uboot()
SPL:直接 Linux 引导未激活!
U-Boot 2018.01-00558-g8617e02脏污(2019年4月19日- 09:32:41 -0500)
CPU:AM437X-GP 1.2版
型号:TI AM437x UTI 电路板
DRAM:512 MiB
PMIC:无
NAND:0 MIB
MMC:
我查看了 CCS 中的代码、发现它在函数 omap_hsmmc_init_setup()中的 writel (readl (&mmc_base->SysConfig)| MMC_SOFTRESET、&MMC_base->SysConfig)行中失败;
是否有任何关于可能出错的想法? 以下是我的器件树的相关部分:
wlan_en_reg:fixedregator@2{
兼容="稳压器固定";
reguler-name ="wlan-en-regulator ";
稳压器最小微伏=<1800000>;
稳压器最大值微伏=<1800000>;
启动延迟-us =<70000>;
/*此板的 WLAN_EN GPIO -组0、pin31 */
GPIO =<&GPIO0 31 GPIO_ACTIVE_HIGH_>;
使能端高电平有效;
};
mmc3_PINS_DEFAULT:mmc3_PINS_DEFAULT{
pinctrl-single、pins =<
AM4372_IOPAD (0x88c、PIN_INPUT_PULLUP | MUX_MODE3)/*(A12) GPMC_clk.mmc2_clk *
AM4372_IOPAD (0x888、PIN_INPUT_PULLUP | MUX_MODE3)/*(B12) GPMC_csn3.mmc2_cmd *
AM4372_IOPAD (0x844、PIN_INPUT_PULLUP | MUX_MODE3)/*(C5) GPMC_A1.mmc2_dat0 *
AM4372_IOPAD (0x848、PIN_INPUT_PULLUP | MUX_MODE3)/*(C6) GPMC_A2.mmc2_DAT1 */
AM4372_IOPAD (0x84c、PIN_INPUT_PULLUP | MUX_MODE3)/*(A4) GPMC_A3.mmc2_DAT2 */
AM4372_IOPAD (0x878、PIN_INPUT_PULLUP | MUX_MODE3)/*(A3) GPMC_BE1n.mmc2_dat3 */
>;
};
/*可选的睡眠引脚设置。 必须在下面的框架中手动输入值。 *
mmc3_PINS_SLEEP:mmc3_PINS_SLEEP{
pinctrl-single、pins =<
AM4372_IOPAD (0x88c、PIN_INPUT_PULLUGDOWN | MUX_MODE7)/*(A12) GPMC_clk.mmc2_clk *
AM4372_IOPAD (0x888、PIN_INPUT_PULLUGDOWN | MUX_MODE7)/*(B12) GPMC_csn3.mmc2_cmd *
AM4372_IOPAD (0x844、PIN_INPUT 下拉| MUX_MODE7)/*(C5) GPMC_A1.mmc2_dat0 *
AM4372_IOPAD (0x848、PIN_INPUT_PULLUGDOWN | MUX_MODE7)/*(C6) GPMC_A2.mmc2_DAT1 */
AM4372_IOPAD (0x84c、PIN_INPUT_PULLUGDOWN | MUX_MODE7)/*(A4) GPMC_A3.mmc2_DAT2 */
AM4372_IOPAD (0x878、PIN_INPUT_PULLUGDOWN | MUX_MODE7)/*(A3) GPMC_BE1n.mmc2_dat3 */
>;
};
WLAN_PINS_DEFAULT:WLAN_PINS_DEFAULT{
pinctrl-single、pins =<
AM4372_IOPAD (0x85c、PIN_INPUT_PULLUGDOWN | WAKEUP_ENABLE | MUX_MODE7)/*(F6) GPMC_A7.GPIO1[23] WLAN_IRQ*/
AM4372_IOPAD (0x870、PIN_OUTPUT 下拉| MUX_MODE7)/*(A2) GPMC_wait0.GPIO0[30] BT_ENABLE */
AM4372_IOPAD (0x874、PIN_OUTPUT 下拉| MUX_MODE7)/*(B3) GPMC_WPN.GPIO0[31] WLAN_ENABLE */
>;
};
WLAN_PINS_SLEEP:WLAN_PINS_SLEEP{
pinctrl-single、pins =<
AM4372_IOPAD (0x85c、PIN_INPUT_PULLUGDOWN | WAKEUP_ENABLE | MUX_MODE7)/*(F6) GPMC_A7.GPIO1[23] WLAN_IRQ*/
AM4372_IOPAD (0x870、PIN_OUTPUT 上拉| MUX_MODE7)/*(A2) GPMC_wait0.GPIO0[30] BT_ENABLE */
AM4372_IOPAD (0x874、PIN_OUTPUT 下拉| MUX_MODE7)/*(B3) GPMC_WPN.GPIO0[31] WLAN_ENABLE */
>;
};
/* WiFi/蓝牙模块*/
mmc3{(&M)
状态="正常";
/*这些位于纵横制上,并在中进行了概述
Xbar-event-map 元素*/
DMA =<&EDMA 30 0 2>、
< EDMA 31 0 3>;
dma-names ="TX"、"Rx";
VMMC-supply =<&wlan_en_reg>;
总线宽度=<4>;
pinctrl-names ="default"、"sleep";
pinctrl-0 =<&mmc3_PINS_DEFAULT>;
pinctrl-1 =<&mmc3_PINS_SLEEP>;
TI、不可拆卸;
电容断电卡;
暂停时保持供电;
#address-cells =<1>;
#size-cells =<0>;
wlcore:wlcore@0{
兼容="ti、wl1835";
reg =<2>;
interrupt-parent =<&GPIO1>;
中断=<23 IRQ_TYPE_LEVEL_HIGH_>;
};
};