您好!
我使用 mmc3连接 SDIO wifi 模块 Marvell、sd8997。 引导时 、MMC 驱动程序发送 CMD5以检测 SDIO 时始终没有响应。
我在中提到了这个主题
https://e2e.ti.com/support/processors/f/791/t/590036?Linux-AM3358-MMC3-fails
并修改我的设备树。 但是、仍然没有检测到 SDIO 器件。
SDK 版本为06.00.00.07。 相关器件树如下所示
(笑声)
wlan_en_reg:fixedregulator4{ 兼容="稳压器固定"; reguler-name ="wlan-en-regulator "; 稳压器最小微伏=<3300000>; 稳压器最大值微伏=<3300000>; /*此板的 WLAN_EN GPIO -组2、pin12 (WIFI_WDIS)*/ GPIO =<&GPIO2 12 GPIO_ACTIVE_HIGH_>; /* WLAN 卡特定延迟*/ 启动延迟-us =<70000>; 使能端高电平有效; }; ... wlan_pins:pinmux_wlan_pins{ pinctrl-single、pins =< AM33XX_IOPAD (0x8B8、PIN_OUTPUT_PULLUP | MUX_MODE7)/*(T3) WIFI_wds.GPIO2[12]*/ AM33XX_IOPAD (0x858、PIN_INPUT_PULLUP | MUX_MODE7)/*(U15) MMc2_CDN.GPIO1[22]* >; }; ... mmc3{(&M) 状态="正常"; // VMMC-supply =<&VMMC_reg>; VMMC-supply =<&wlan_en_reg>; // VMMC-supply =<&vmmcsd_fixed>; 总线宽度=<4>; pinctrl-names ="default"; pinctrl-0 =<&mmc3_pins &wlan_pines>; // pinctrl-0 =<&mmc3_PINs>; /*这些位于纵横制上,并在中进行了概述 Xbar-event-map 元素*/ DMA =<&EDMA_Xbar 12 0 1 EDMA_Xbar 13 0 2>; dma-names ="TX"、"Rx"; // ti,不可移动; 光盘损坏; TI、需要特殊处理; 电容断电卡; 暂停时保持供电; NO-1-8-v; #address-cells =<1>; #size-cells =<0>; mwifex:wifi@0{ // compatible ="ti、wl1835"; compatible ="Marvell、sd8997"; reg =<2>; //interrupt-parent =<&PIO>; //interrupts =<tx28_TYPE_LEVEL_LOW>;0x08/ 0x0008;0x000_0x000_012_c= 0x000/ 0x000_0x000/ 0x000/ 0x000/ 0x0001;0x000/ 0x000_000/ 0x000/ 0x000/ 0x000/ 0x000/ 0x000/ 0x000/ 0x000/ 0x000/ 0x000/ 0x000/ 0x000/ 0x000_000
我修改了驱动程序代码以打印相关日志。以下是启动时的相关日志
[1.171930] sdhci:安全数字主机控制器接口驱动程序
[1.178225] sdhci:版权所有(c) Pierre Osman
[1.183436] mmc0 reg 开始:0x48060000、偏移量:0x00000100、基地址:0xfa060100
[1.183928] omap_hsmmc 48060000.mmc:作为消费类产品链接到 regular.4
[1.223288] mmc0:MMC_rescan_try_freq:尝试以400000Hz 的频率初始化卡
[1.229941] mmc0:MMC_rescan_try_freq:SDIO_reset
[1.234723] omap_hsmmc 48060000.mmc:omap_hsmmc_probe 完成。
[1.240859] mmc1 reg start:0x47810000、偏移量:0x00000100、基地址:0xe08cf100
[1.241296] OMAP_hsmmc 4781000.MMC:以消费类产品身份链接到 regular.5
[1.259990] mmc0:扫描开始(SDIO->SDO->MMC)...
[1.266014] mmc0:MMC_ATE_SDIO:MMC_SEND_IO_OP_COND 失败。
[1.272548] mmc0:MMC_attach_SD:MMC_SEND_APP_OP_COND 成功
[1.278059] mmc0:MMC_ATE_SD:MMC_SELECT_VOLTAGE 成功
[1.283462] OMAP_hsmmc 4781000.MMC:OMAP-hsmmc_probe Done。
[1.289285] sddhci-pltfm:SDHCI 平台和驱动程序助手
[1.296069] ledtrig-CPU:已注册以指示 CPU 上的活动
[1.302249] mmc1:MMC_rescan_try_freq:尝试以400000Hz 的频率初始化卡
[1.3089] mmc1:MMC_rescan_try_freq:SDIO_reset
[1.317505] NET:注册协议系列10.
[1.322434] mmc1:CMD52、参数0x00000c00
[1.327466] mmc1:CMD52、参数0x80000c08
[1.33269]使用 IPv6的段路由
[1.336772] SIT:IPv6、IPv4和 MPLS over IPv4隧道驱动程序
[1.343864] NET:注册协议系列17.
[1.348426] mmc1:CMD0、参数0x00000000
[1.353150]注册的密钥类型 DNS_旋 变传感器
[1.357828] OMA_VOLTGE_LARD_INIT:未添加电压驱动器支持
[1.36444] mmc0:主机不支持只读开关、假设已启用写入
[1.372430] mmc1:CMD8、参数0x000001aa
[1.377684]正在加载已编译的 X.509证书
[1.382582] mmc1:扫描开始(SDIO->SDO->MMC)...
[1.387144] mmc1:CMD5、参数0x00000000
[1.393596] mmc0:MMC_ATE_SD:MMC_SD_INIT_CARD 成功
[1.398793] mmc0:地址0260处的新高速 SD 卡
[1.412262] mmc1:CMD5、参数0x00000000
[1.417096] mmc1:CMD5、参数0x00000000
[1.421844] GPMC 探头
[1.424373] OMAP-GPMC baseaddr = e08de000
[1.428537] OMAP-GPMC 50000000。GPMC:GPMC 版本6.0
[1.434482] mmcblk0:mmc0:0260 SD 977 MIB
[1.439334] mmc1:CMD5、参数0x00000000
[1.444410] GPMC_mem_init:禁用映射在0x0-0x1000000的 CS 0
[1.450635] mmc1:MMC_ATE_SDIO:MMC_SEND_IO_OP_COND 失败。
[1.456525] mmcblk0:P1 P2 P3
[1.460317] GPMC GPMC_PROBLE_dt_children、用于'afe'
[1.466221] mmc0:MMC_attach_SD:MMC_add_card 成功
[1.471046] mmc0:MMC_ATE_SD:完成。
[1.474874] mmc1:CMD55、参数0x00000000
[1.479253] GPMC_READ_SETTINGS_dt:设置了页/突发长度、但未使用!
[1.485926] mmc1:CMD55、参数0x00000000
[1.490237] mmc0:MMC_rescan_try_freq:SD 卡。
[1.494871] mmc1:CMD55、参数0x00000000
[1.500125]针对'FPGA'的 GPMC GPMC_PROBLE_dt_children
[1.505082] mmc1:CMD55、参数0x00000000
[1.510870] mmc1:MMC_attach_SD:MMC_SEND_APP_OP_COND 失败。
[1.517755] omap_i2c 44e0b000.i2c:400kHz 时的总线0版本0.11
[1.523470] mmc1:CMD1、参数0x00000000
[1.528999] i2c i2c-2:for_i2c:/ocp/i2c 上的 MODALIAS 故障@4819c000/TPS@48
[1.536088] mmc1:MMC_attach_MMC:MMC_SEND_OP_COND 失败。
[1.541428] mmc1:MMC_rescan_try_freq:MMC_attach_bus 失败。