123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- /*
- * Platform glue data for ST-Ericsson CW1200 driver
- *
- * Copyright (c) 2013, Sagrad, Inc
- * Author: Solomon Peachy <speachy@sagrad.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
- #include <linux/module.h>
- #include <linux/cw1200_platform.h>
- MODULE_AUTHOR("Solomon Peachy <speachy@sagrad.com>");
- MODULE_DESCRIPTION("ST-Ericsson CW1200 Platform glue driver");
- MODULE_LICENSE("GPL");
- /* Define just one of these. Feel free to customize as needed */
- #define SAGRAD_1091_1098_EVK_SDIO
- /* #define SAGRAD_1091_1098_EVK_SPI */
- #ifdef SAGRAD_1091_1098_EVK_SDIO
- #if 0
- static struct resource cw1200_href_resources[] = {
- {
- .start = 215, /* fix me as appropriate */
- .end = 215, /* ditto */
- .flags = IORESOURCE_IO,
- .name = "cw1200_wlan_reset",
- },
- {
- .start = 216, /* fix me as appropriate */
- .end = 216, /* ditto */
- .flags = IORESOURCE_IO,
- .name = "cw1200_wlan_powerup",
- },
- {
- .start = NOMADIK_GPIO_TO_IRQ(216), /* fix me as appropriate */
- .end = NOMADIK_GPIO_TO_IRQ(216), /* ditto */
- .flags = IORESOURCE_IRQ,
- .name = "cw1200_wlan_irq",
- },
- };
- #endif
- static int cw1200_power_ctrl(const struct cw1200_platform_data_sdio *pdata,
- bool enable)
- {
- /* Control 3v3 and 1v8 to hardware as appropriate */
- /* Note this is not needed if it's controlled elsewhere or always on */
- /* May require delay for power to stabilize */
- return 0;
- }
- static int cw1200_clk_ctrl(const struct cw1200_platform_data_sdio *pdata,
- bool enable)
- {
- /* Turn CLK_32K off and on as appropriate. */
- /* Note this is not needed if it's always on */
- /* May require delay for clock to stabilize */
- return 0;
- }
- static struct cw1200_platform_data_sdio cw1200_platform_data = {
- .ref_clk = 38400,
- .have_5ghz = false,
- #if 0
- .reset = &cw1200_href_resources[0],
- .powerup = &cw1200_href_resources[1],
- .irq = &cw1200_href_resources[2],
- #endif
- .power_ctrl = cw1200_power_ctrl,
- .clk_ctrl = cw1200_clk_ctrl,
- /* .macaddr = ??? */
- .sdd_file = "sdd_sagrad_1091_1098.bin",
- };
- #endif
- #ifdef SAGRAD_1091_1098_EVK_SPI
- /* Note that this is an example of integrating into your board support file */
- static struct resource cw1200_href_resources[] = {
- {
- .start = GPIO_RF_RESET,
- .end = GPIO_RF_RESET,
- .flags = IORESOURCE_IO,
- .name = "cw1200_wlan_reset",
- },
- {
- .start = GPIO_RF_POWERUP,
- .end = GPIO_RF_POWERUP,
- .flags = IORESOURCE_IO,
- .name = "cw1200_wlan_powerup",
- },
- };
- static int cw1200_power_ctrl(const struct cw1200_platform_data_spi *pdata,
- bool enable)
- {
- /* Control 3v3 and 1v8 to hardware as appropriate */
- /* Note this is not needed if it's controlled elsewhere or always on */
- /* May require delay for power to stabilize */
- return 0;
- }
- static int cw1200_clk_ctrl(const struct cw1200_platform_data_spi *pdata,
- bool enable)
- {
- /* Turn CLK_32K off and on as appropriate. */
- /* Note this is not needed if it's always on */
- /* May require delay for clock to stabilize */
- return 0;
- }
- static struct cw1200_platform_data_spi cw1200_platform_data = {
- .ref_clk = 38400,
- .spi_bits_per_word = 16,
- .reset = &cw1200_href_resources[0],
- .powerup = &cw1200_href_resources[1],
- .power_ctrl = cw1200_power_ctrl,
- .clk_ctrl = cw1200_clk_ctrl,
- /* .macaddr = ??? */
- .sdd_file = "sdd_sagrad_1091_1098.bin",
- };
- static struct spi_board_info myboard_spi_devices[] __initdata = {
- {
- .modalias = "cw1200_wlan_spi",
- .max_speed_hz = 10000000, /* 52MHz Max */
- .bus_num = 0,
- .irq = WIFI_IRQ,
- .platform_data = &cw1200_platform_data,
- .chip_select = 0,
- },
- };
- #endif
- const void *cw1200_get_platform_data(void)
- {
- return &cw1200_platform_data;
- }
- EXPORT_SYMBOL_GPL(cw1200_get_platform_data);
|