[PATCH v4] ARM: davinci: AM18x: Add wl1271/wlan support

Jaya Kumar jayakumar.sc at gmail.com
Thu Aug 4 04:40:01 EDT 2011


On Thu, Aug 4, 2011 at 3:51 PM, Ido Yariv <ido at wizery.com> wrote:
> +static __init int da850_wl12xx_init(void)
> +{
> +       int ret;
> +
> +       ret = davinci_cfg_reg_list(da850_wl12xx_pins);
> +       if (ret) {
> +               pr_err("wl12xx/mmc mux setup failed: %d\n", ret);
> +               goto exit;
> +       }
> +
> +       ret = da850_register_mmcsd1(&da850_wl12xx_mmc_config);
> +       if (ret) {
> +               pr_err("wl12xx/mmc registration failed: %d\n", ret);
> +               goto exit;
> +       }
> +
> +       ret = gpio_request_one(DA850_WLAN_EN, GPIOF_OUT_INIT_LOW, "wl12xx_en");
> +       if (ret) {
> +               pr_err("Could not request wl12xx enable gpio: %d\n", ret);
> +               goto exit;
> +       }
> +
> +       ret = gpio_request_one(DA850_WLAN_IRQ, GPIOF_IN, "wl12xx_irq");
> +       if (ret) {
> +               pr_err("Could not request wl12xx irq gpio: %d\n", ret);
> +               goto free_wlan_en;
> +       }
> +
> +       da850_wl12xx_wlan_data.irq = gpio_to_irq(DA850_WLAN_IRQ);
> +
> +       ret = wl12xx_set_platform_data(&da850_wl12xx_wlan_data);
> +       if (ret) {
> +               pr_err("Could not set wl12xx data: %d\n", ret);
> +               goto free_wlan_irq;
> +       }
> +
> +       return 0;

Hi Ido,

A quick question for my own understanding. What's the mechanism by
which wl12xx is bound with above. I see above wl12xx_set_platform_data
but I didn't see something like .name = "wl1271" or dev_name that
comes in through platform_device_register. If I look at other board
files, I see:

321 #ifdef CONFIG_WL12XX_PLATFORM_DATA
322         {
323                 .name           = "wl1271",
324                 .mmc            = 2,
325                 .caps           = MMC_CAP_4_BIT_DATA |
MMC_CAP_POWER_OFF_CARD,
326                 .gpio_wp        = -EINVAL,
327                 .gpio_cd        = -EINVAL,
328                 .nonremovable   = true,
329         },
330 #endif

and

729 #ifdef CONFIG_WL12XX_PLATFORM_DATA
730         /* WL12xx WLAN Init */
731         if (wl12xx_set_platform_data(&omap3evm_wlan_data))
732                 pr_err("error setting wl12xx data\n");
733         platform_device_register(&omap3evm_wlan_regulator);
734 #endif

Thanks,
jayakumar



More information about the linux-arm-kernel mailing list