This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Flow of Application Processor ->SDIO->WLAN

Other Parts Discussed in Thread: WL1271

Hi,

I am a newbie to the linux world and I am trying to understand the wifi module of TI on Android G1 device.

I could understand that AP connects to the WIFI chip or viceversa via SDIO driver. I went to a stage where I could figure out of the SDIO driver gets initialized for an EMBEDDED device (EMBEDDED SDIO). Also on the WIFI module I could find functions like SDIO sync read and SDIO sync write.

Now I dont understand how App processor sends data to the wifi chip via SDIO driver i.e., the actual flow of AP->SDIO->WLAN.

Can anybody please help me figure out the flow? Or is there any documentation which will explain me the working?

I am very new to all these and hence need to first understand the sequential flow more than anything else ........

  • Hi Vishal ,

                    Are you solved above problem.If yes i needed some help fom you please reply .

  • Hi,

    That information is not normally provided on such a forum, since we could fill a book on the subject, however the basic is as follows: lets take the transmission path for example, the data to be transmitted come from external port (like Ethernet) that gets to the WLAN driver through a user mode TCP/IP stuck, then the driver store the date in internal queues and send them through the SDIO bus to a WLAN chip (like 1271 by TI), in the 1271 chip there as an ARM processor that gets the data and transmit it the air using WLAN protocol.  The WLAN driver has lots of other tasks for example to generate scans in order to find wlan networks, generate all the connection sequence and taking care of the key exchange in case of secured network.

    So to conclude there is the WLAN driver that is located on Host processor that communicate with WLAN chip through the SDIO bus

    Regards,

    Eyal

  • Hi Eyal ,

                Thanks for your reply , but i have to first set the drivers for SDIO and WLAN .so,first i am setting them but while we are runing the board with sdio card i am geting these following errors .

    mmc0: card claims to support voltages below the defined range. These will be ignored.
    mmc0: queuing unknown CIS tuple 0x91 (3 bytes)
    mmc0: new SDIO card at address 0001
    wl1271: ERROR missing wlan platform data: -19
    wl12xx_sdio_test mmc0:0001:2: missing wlan platform data: -19

     

    AND INFO TO YOU IS :->

    -------------------------------------------------------------

    we are working with this platforms:

    BOARD : DAVINCI DM6446

    WIFI MODULE : WG7310-00 jorjin

    OS : LINUX

    --------------------------------------------------------------

    so please help me in this issue .

    Thanks

    venkat

  • Venkat,

    In your board file do you a code that intialized the platform data structure?

    See the following example taken from am180x:

     


    static struct wl12xx_platform_data da850_wl12xx_wlan_data __initdata = {
     .irq = -1,
     .board_ref_clock = WL12XX_REFCLOCK_38,
     .platform_quirks = WL12XX_PLATFORM_QUIRK_EDGE_IRQ,
    };

    static void da850_wl12xx_set_platform_data(void)
    {
     da850_wl12xx_wlan_data.irq = gpio_to_irq(DA850_WLAN_IRQ);
     if (wl12xx_set_platform_data(&da850_wl12xx_wlan_data))
      pr_err("Error setting wl12xx data\n");
    }


    static void da850_wl12xx_init(void)
    {
    ...

    ...

     if (gpio_request(DA850_WLAN_EN, "wl12xx") ||
         gpio_direction_output(DA850_WLAN_EN, 0))
      pr_err("Error initializing the wl12xx enable gpio\n");

     if (gpio_request(DA850_WLAN_IRQ, "wl12xx_irq") ||
         gpio_direction_input(DA850_WLAN_IRQ))
      pr_err("Error initializing the wl12xx irq gpio\n");

     da850_wl12xx_set_platform_data();
    }

    Best Regards,

    Eyal