Hi,
I am using TI SDK version 7 and been to able initialize the MMC2 interface in uboot successfully by using the following link:
e2e.ti.com/.../1242196
U-boot log:
U-Boot SPL 2013.10-00189-g78d8ebd-dirty (Mar 10 2015 - 16:03:10)
Enabling NAND pin mux Successful
DRA 618 MPU freq set to 720Mhz
DRA 618 Core freq set to 720Mhz
reading args
spl: error reading image args, err - -1
reading u-boot.img
reading u-boot.img
U-Boot 2013.10-00189-g78d8ebd-dirty (Mar 10 2015 - 16:03:10)
I2C: ready
DRAM: 256 MiB
NAND: 1024 MiB
MMC:
OMAP_HSMMC3_BASE case
@@@@ MMC2 init Success
OMAP SD/MMC: 0, OMAP SD/MMC: 1, OMAP SD/MMC: 2
Net: Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot: 0
But the MMC2 interface is not getting initialized in Kernel. I have attached the kernel log for the same.
I need this as the WL1801 connected on MMC2 is not getting detected.
We need to get this working for Wi-Fi to work.
Here are the device tree details:
/* wl12xx/wl18xx card on mmc2 */
mmc3_pins: pinmux_mmc3_pins {
pinctrl-single,pins = <
0x44 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a1.mmc2_dat0, INPUT_PULLUP | MODE3 */
0x48 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a2.mmc2_dat1, INPUT_PULLUP | MODE3 */
0x4C (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a3.mmc2_dat2, INPUT_PULLUP | MODE3 */
0x78 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ben1.mmc2_dat3, INPUT_PULLUP | MODE3 */
0x88 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_csn3.mmc2_cmd, INPUT_PULLUP | MODE3 */
0x8C (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_clk.mmc2_clk, INPUT_PULLUP | MODE3 */
>;
};
/* wl12xx/wl18xx card enable/irq GPIOs. */
wlan_pins: pinmux_wlan_pins {
pinctrl-single,pins = <
0x110 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* MII1_RX_ER.gpio3_2 used for wi-fi en */
0xE4 0x27 /* LCD_HSYNC.gpio2_23, INPUT | MODE7 wi fi irq*/
>;
};
&mmc3 {
/* these are on the crossbar and are outlined in the
xbar-event-map element */
dmas = <&edma 12
&edma 13>;
dma-names = "tx", "rx";
status = "okay";
vmmc-supply = <&wlan_en_reg>;
bus-width = <4>;
pinctrl-names = "default";
pinctrl-0 = <&mmc3_pins &wlan_pins>;
ti,non-removable;
ti,needs-special-hs-handling;
cap-power-off-card;
keep-power-in-suspend;
#address-cells = <1>;
#size-cells = <0>;
wlcore: wlcore@0 {
compatible = "ti,wlcore";
reg = <2>;
interrupt-parent = <&gpio2>;
interrupts = <23 IRQ_TYPE_NONE>;
};
};
&edma {
ti,edma-xbar-event-map = /bits/ 16 <1 12
2 13>;
};
wlcore {
compatible = "wlcore";
gpio = <87>; /* Bank2, pin23 GPIO for Wi-Fi_IRQ */
/*
* TODO: use edge irqs for suspend/resume.
* in newer kerenls, we seem to miss interrupts when
* working with edge irqs, so revert back to level irqs.
*/
/* platform-quirks = <1>; */
/* if a 12xx card is there, configure the clock to
WL12XX_REFCLOCK_38_XTAL */
board-ref-clock = <4>;
};
wlan_en_reg: fixedregulator@2 {
compatible = "regulator-fixed";
regulator-name = "wlan-en-regulator";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
/* WLAN_EN GPIO for this board - Bank3, pin2 */
gpio = <&gpio3 2 0>;
/* WLAN card specific delay */
startup-delay-us = <70000>;
enable-active-high;
};