Hi,
I am using am3352 CPU on a custom board which is very similar to Beaglebone Balck. Redpine RS9110 wifi module is attached to MMC0.
But the wifi module is not detected the MMC0.
In Uboot i have pinpuxed MMC0 in the following way,
static struct module_pin_mux mmc0_pin_mux_cioffi[] = {
{OFFSET(mmc0_dat3), (MODE(0) | RXACTIVE | PULLUP_EN)}, /* MMC0_DAT3 */
{OFFSET(mmc0_dat2), (MODE(0) | RXACTIVE | PULLUP_EN)}, /* MMC0_DAT2 */
{OFFSET(mmc0_dat1), (MODE(0) | RXACTIVE | PULLUP_EN)}, /* MMC0_DAT1 */
{OFFSET(mmc0_dat0), (MODE(0) | RXACTIVE | PULLUP_EN)}, /* MMC0_DAT0 */
{OFFSET(mmc0_clk), (MODE(0) | RXACTIVE | PULLUP_EN)}, /* MMC0_CLK */
{OFFSET(mmc0_cmd), (MODE(0) | RXACTIVE | PULLUP_EN)}, /* MMC0_CMD */
/*{OFFSET(mcasp0_aclkr), (MODE(4) | RXACTIVE)},*//// /* MMC0_WP */
/*{OFFSET(spi0_cs1), (MODE(5) | RXACTIVE | PULLUP_EN)}*////, /* MMC0_CD */
{-1},
};
When I test it from Uboot CLI, the SDIO interface is working. (I attached SD card slot temporarily and insert a card, Was able to read card info ).
But the issue is after Linux is booted, MMC0 does not detect the wifi module as a SDIO slave, and Wifi interface is not created.
(I did not get the "MMC0 Higs speed SDIO is detected" message in boot log)
Im my device tree I have configured MMC0 as follows,
314 mmc1: mmc@48060000 {
315 compatible = "ti,omap4-hsmmc";
316 ti,hwmods = "mmc1";
317 ti,dual-volt;
318 ti,needs-special-reset;
319 ti,needs-special-hs-handling;
320 dmas = <&edma 24
321 &edma 25>;
322 dma-names = "tx", "rx";
323 interrupts = <64>;
324 interrupt-parent = <&intc>;
325 reg = <0x48060000 0x1000>;
326 status = "disabled";
327 };
mmc1_pins_default: pinmux_mmc1_pins {
152 pinctrl-single,pins = <
153 0x0F0 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
154 0x0F4 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
155 0x0F8 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
156 0x0FC (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
157 0x100 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */
158 0x104 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
159 /*0x1A0 (PIN_INPUT_PULLUP | MUX_MODE7)*/ /* mcasp0_aclkr.gpio3_18 */ /*Not using */
160 /*0x160 (PIN_INPUT | MUX_MODE7)*/ /* spi0_cs1.gpio0_6 */ /* Not using */
161 >;
162 };
&mmc1 {
336 status = "okay";
337 bus-width = <0x4>;
338 pinctrl-names = "default";
339 pinctrl-0 = <&mmc1_pins_default>;
340 /*pinctrl-1 = <&mmc1_pins_sleep>;*/
341 /*cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;*/
342 /*cd-inverted;*/
343 ti,non-removable; /* I am not using cd-gpios as the wifi module is permanently wired */
343 };
And my wifi module is powered separately using a pmic.
I am not quite sure whether i need following DT pat,
24 &mmc1 {
25 vmmc-supply = <&vmmcsd_fixed>;
26 };
But any way I have tried both ways with vmmc-supply and without it.
vmmc-supply is some thing in am335x-bone-common.dtsi, as follows, but i do not have such a regulator in my pmic.
vmmcsd_fixed: fixedregulator@0 { 57 compatible = "regulator-fixed"; 58 regulator-name = "vmmcsd_fixed"; 59 regulator-min-microvolt = <3300000>; 60 regulator-max-microvolt = <3300000>; 61 };
Any help or information would be highly appreciated.
Thanks
Nilan