Thread 中讨论的其他器件: WL1831、 WL1835
你(们)好
我正在从事一个项目、其中电路板紧密地基于 BeagleBone Black。
该板上有一个 Wl1831MOD、我正在尝试按照中的说明进行操作
processors.wiki.ti.com/.../WL18xx_Platform_Integration_Guide
processors.wiki.ti.com/.../WiLink8_Linux_Getting_Started_Guide
尝试运行它。
我已将此处提供的补丁作为模板、用于修改器件树以适应我们的布局(基本上是插入必要的引脚参考)、我希望开始调试这些补丁并确认一切正常。
不可原谅的是、在启动时似乎找不到模块;在我开始使用示波器探测电路板之前、我认为最好查看我的器件树是否有意义(因为我对语法不熟悉)
我已对照数据表和 TRM 中的表格检查了使用中的引脚、并使用 PinMUX 工具。 连接的 THS 信号为:
WL1831MOD 连接到 AM3352ZCZ
名称焊盘模式
BT_ENT17模式7
WiFi_INTRU13模式7
WiFi_ENU17模式7
MMC1_CMDV9模式2
MMC1_CLKU9模式2
MMC1_DAT0U7模式1
MMC1_DAT1V7模式1
MMC1_DAT2R8模式1
MMC1_DAT3TART8
1 UART0模式1 UART18模式1 UART0模式1 RTS1 UART0模式1 UART0模式1 UART0模式1 RTS1 UART0模式1 UART0模式1 UART0模式1
0
UART1_RXDD16模式0
发送到 WL1831的信号通过一对 TXB0108DQS 从3V3电平转换到1v8
所有电源轨都是永久性的。
在此过程中、我在 DTSI 文件中创建了以下内容。
如果有人能指出这方面的任何明显错误,我将不胜感激
&am33xx_pinmux{
wi_MMC_PINS_DEFAULT:wi_MMC_PINS_DEFAULT{
pinctrl-single、PIN=<
0x80 (PIN_INPULLUP | MUX_MODE2)//(U9) GPMC_csn1.mmc1_clk *
0x84 (PIN_INPULLUM_PULLUP | M0*
)/GPMC_MO1*
(0x7_MOD1*)/0xMC_MOD1*(0xMC_MOD1_1*)/GPMC_MOD1*(0xMC_MOD1_1_MODON1)/GPMC_1*(0xMC_MODON1
(PIN_INPUT_PULLUP | MUX_MODE1)/*(R8) GPMC_ad2.mmc1_DAT2 */
0xc (PIN_INPUT_PULLUP | MUX_MODE1)/*(T8) GPMC_AD3.mmc1_DAT3 *
;
};WiFi_MMC_PINS_PUT_MUX
(0x80_MMC_PULESD*)/RM_PULP (0x80_M1_MCLUS_M1*
(0xMC_INCK_PUT_INPUT_M1*)/0xMC_MCLUS_PUT_PUT_M1*(0xMC_INCK_PUT_M0_PUT_MCC_M0_PUT_PUT)*(0xMC_M0_M0_M0_M0_PUT_PUT_M
(PIN_INPUT 下拉| MUX_MODE7)/*(U7) GPMC_ad0.mmc1_DAT0 */
0x4 (PIN_INPUT 下拉| MUX_MODE7)/*(V7) GPMC_ad1.mmc1_DAT1 *
/ 0x8 (PIN_INPUT _ PULLUX | MUX_8
)*(GPMC_AD3_MODE8)*(默认值*)/MMCC_ADDR_8)*(GPMC_MODE2)/MM_ADDRUX_1*(0xMC_MODE8)*(0xMC_2)/MMUCC_MODE8)/MMUCC_MODE2) uart1_PINS_DEFAULT{
pinctrl-single、PINS =<
0x180 (PIN_INPUT_PULLUP | MUX_MODE0)/*(D16
) uart1_RXD */ 0x184 (PIN_OUTPUT_PLUP | MUX_MODE0)/*(D15) uart1_RXD
(*) UARTARTART18_OUT18_PUT_DART1*)*(0x17_MODARTART18_PUT0_UART18_PUT_UART1*)*(UART18_UART18_PUT_UART18_PUT_UART1*)*(UART18_PUT_UART18_PUT_UART1*)*(UART18_PUT_UART18_D20
uart1_PINS_SLEEP{
pinctrl-single、PINS =<
0x180 (PIN_INPUT_PULLUP | MUX_MODE0)/*(D16
) uart1_RXD */ 0x184 (PIN_OUTPUT_PLUP | MUX_MODE0)/*(D15) uart1_RXD
(*)/UARTART18_OUTART18_PUT0*)*(0x17_MODART18_UART18_Pn_UART1*)*(UART18_MOD20_UTEN)*(UART18_UART18_D20_MOD20_OUTON_MODE0)
/* wl12xx/wl18xx 卡使能/IRQ GPIO。 */
wlan_pins_default: WLAN_PINS_DEFAULT{
pinctrl-single、PINS =<
0x70 (PIN_OUTPUT_PULLUP | MUX_MODE7)/*(T17) GPMC_wait0.GPIO0[30]*// BT 启用活动高
电平0x3c (PIN_INPUT | MUX_MODE7)/*(U13) GPMC_ADTRU15
)/[WLAN_OUTPUT_1.74](0x3*/UW_UWRT_UWRT_OUTPUT_U17)/[UWRT_OUTPUT_U_UW7)/[UWRT_OUTPUT_1.74](0x3[UWRT_IN_IN_UWRT_U
WLAN_PINS_SLEEP:WLAN_PINS_SLEEP{
pinctrl-single、PINS =<
0x70 (PIN_OUTPUT_PULLUD | MUX_MODE7)/*(T17) GPMC_WAIT0.GPIO0[30]*
0x3c (PIN_INPUT | MUX_MODE7)/*(UARTMC_ADTRL
)/[15_PIN_INTRENTRL = 0x74_PUT)/UART18_PIN_PUT
(默认值)/UART18_INTRN = 0x74_PUT1*)/*** (UART1*)/PUT = 0x7_INTRLESD1*
(0x31)/PUT)/PUT = UART18_INTR_INTR_INTRN)/PUT = 0x3[INTRENTRLESH (0x70)/
状态="确定";
};
&mmc2{
status ="确定";
总线宽度=<4>;
pinctrl-names ="默认值"、"睡眠";
pinctrl-0 =<&WIFI_MMC_PINS_DEFAULT &WLAN_PINS_DEFAULT>;
pinctr-1 =<&WIFI_MMC_PINS_SLEEP &WLAN_PINS_SLEEP;
ti、非可拆卸
电源、
特殊电源处理;ti
#address-cells =<1>;
#size-cells =<0>;
wlcore:wlcore@0{
compatible ="ti、wl1835";
reg =<2>;
interrupt-parent =<&GPIO1>;
interrupts =<15 IRQ_type_EDGE_RISING >;
};
};
我删除了对"固定稳压器"的引用、其中包含的示例是因为该板使用恒定电源轨。
不过、我也尝试过定义的稳压器、行为没有差别。 (我还尝试了引脚多路复用器定义中反相的 WL1831使能)
将 MMC 引脚的 CLK 和 CMD 定义为输入是否正确?
我是否已正确获取 wlcore 中断的索引(我打算将其设置为 GPIO1_15)
当倾倒 DTB 的最终部分时、我看到:
MMC@481d8000{
兼容="ti、omAP4-hsmmc";
ti、hwmds ="mmc2";
TI,需要特殊重置;
DMA =<0x0000002d 0x00000003 0x000003b0 0x00000004 0x00000004 0x00000008>;
dma-names ="TX"、"Rx";
中断= 0x0000001c>;
interrupt-parent = 0x00000001>;
reg =<0x481d8000 0x000003a4>;
状态="正常";
VMMC-SUPPLY = 0x00000037>;
pinctrl-names ="default"、"sleep";
总线宽度=<0x00000004>;
pinctrl-0 =<0x0000003b 0x000003ba>;
pinctrl-1 = 0x0000003d 0x000004c6>;
TI、不可拆卸;
TI、需要特殊处理;
电容断电卡;
暂停时保持供电;
#address-cells = 0x00000001>;
大小单元格=<0x00000000>;
wlcore@0{
兼容="ti、wl1835";
reg =<0x00000002>;
interrupt-parent = 0x0000003f>;
中断=<0x0000000f 0x00000001>;
};
};
我已将[以 pr_info ("rm-%s -%d %.20s\n"、__function__、__line__、pdev->name);]的样式插入到 OMAP-hsmmc 中,我可以看到它在查找模块时一直通过 OMAP-hsmmc_probe 运行;它确实找到了连接到 mmcouth 的插卡引脚0。
[1.190624] RM-OMAP-Hsmmc_probe start (2750) 48060000.MMC
[1.195645] RM-OMAP-Hsmmc_probe - 2771 48060000.MMC
[1.200508] OMAP_hsmmc 48060000.MMC:获得了 CD GPIO
[1.204897] RM-OMAP-Hsmmc_probe - 2807 48060000.MMC
[1.209420] RM-OMAP-Hsmmc_probe - 2811 48060000.MMC
[1.214058] RM-OMAP-Hsmmc_probe - 2841 48060000.MMC
[1.218738] RM-OMAP-Hsmmc_probe - 2871 48060000.MMC
[1.259867] mmc0:MMC_rescan_try_freq:尝试以400000Hz 的频率初始化卡
[1.266046] RM-OMAP-Hsmmc_probe - 2940 48060000.MMC
[1.270679] RM-OMAP-Hsmmc_probe - 2946 48060000.MMC
[1.275202] RM-OMAP-Hsmmc_probe - 2953 48060000.MMC
[1.279804] RM-OMAP-Hsmmc_probe - 2957 48060000.MMC
[1.287852] RM-OMAP-Hsmmc_probe start (2750) 481d8000.MMC
[1.292973] RM-OMAP-Hsmmc_probe - 2771 481d8000.MMC
[1.297827] RM-OMAP-Hsmmc_probe - 2807 481d8000.MMC
[1.302453] RM-OMAP-Hsmmc_probe - 2811 481d8000mmc
[1.307108] RM-OMAP-Hsmmc_probe - 2841 481d8000.MMC
[1.311898] RM-OMAP-Hsmmc_probe - 2871 481d8000.MMC
[1.347273] mmc0:主机不支持读取只读开关、假设已启用写入
[1.356858] mmc0:地址59b4处的新高速 SDHC 卡
[1.362835] mmcblk0:mmc0:59b4 1.84GiB
[1.368540] mmcblk0:P1
[1.439589] RM-OMAP-Hsmmc_probe - 2940 481d8000.MMC
[1.444117] RM-OMAP-Hsmmc_probe - 2946 481d8000.mmc
[1.448639] RM-OMAP-Hsmmc_probe - 2953 481d8000.MMC
[1.453200] mmc1:MMC_rescan_try_freq:尝试以400000Hz 的频率初始化卡
[1.469659] RM-OMAP-Hsmmc_probe - 2957 481d8000.MMC
[1.476330] ledtrig-CPU:已注册以指示 CPU 上的活动
[1.501988] NET:注册协议系列10.
[1.507706] SIT:IPv6 over IPv4隧道驱动程序
[1.520594] NET:注册协议系列17.
如果能就如何从这里着手提出任何建议,我将不胜感激。
此致、
Richard