1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (C) ST-Ericsson SA 2011 4 * 5 * Author: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> 6 */ 7 8 #ifndef CW1200_PLAT_H_INCLUDED 9 #define CW1200_PLAT_H_INCLUDED 10 11 struct cw1200_platform_data_spi { 12 u8 spi_bits_per_word; /* REQUIRED */ 13 u16 ref_clk; /* REQUIRED (in KHz) */ 14 15 /* All others are optional */ 16 bool have_5ghz; 17 int reset; /* GPIO to RSTn signal (0 disables) */ 18 int powerup; /* GPIO to POWERUP signal (0 disables) */ 19 int (*power_ctrl)(const struct cw1200_platform_data_spi *pdata, 20 bool enable); /* Control 3v3 / 1v8 supply */ 21 int (*clk_ctrl)(const struct cw1200_platform_data_spi *pdata, 22 bool enable); /* Control CLK32K */ 23 const u8 *macaddr; /* if NULL, use cw1200_mac_template module parameter */ 24 const char *sdd_file; /* if NULL, will use default for detected hw type */ 25 }; 26 27 struct cw1200_platform_data_sdio { 28 u16 ref_clk; /* REQUIRED (in KHz) */ 29 30 /* All others are optional */ 31 bool have_5ghz; 32 bool no_nptb; /* SDIO hardware does not support non-power-of-2-blocksizes */ 33 int reset; /* GPIO to RSTn signal (0 disables) */ 34 int powerup; /* GPIO to POWERUP signal (0 disables) */ 35 int irq; /* IRQ line or 0 to use SDIO IRQ */ 36 int (*power_ctrl)(const struct cw1200_platform_data_sdio *pdata, 37 bool enable); /* Control 3v3 / 1v8 supply */ 38 int (*clk_ctrl)(const struct cw1200_platform_data_sdio *pdata, 39 bool enable); /* Control CLK32K */ 40 const u8 *macaddr; /* if NULL, use cw1200_mac_template module parameter */ 41 const char *sdd_file; /* if NULL, will use default for detected hw type */ 42 }; 43 44 45 /* An example of SPI support in your board setup file: 46 47 static struct cw1200_platform_data_spi cw1200_platform_data = { 48 .ref_clk = 38400, 49 .spi_bits_per_word = 16, 50 .reset = GPIO_RF_RESET, 51 .powerup = GPIO_RF_POWERUP, 52 .macaddr = wifi_mac_addr, 53 .sdd_file = "sdd_sagrad_1091_1098.bin", 54 }; 55 static struct spi_board_info myboard_spi_devices[] __initdata = { 56 { 57 .modalias = "cw1200_wlan_spi", 58 .max_speed_hz = 52000000, 59 .bus_num = 0, 60 .irq = WIFI_IRQ, 61 .platform_data = &cw1200_platform_data, 62 .chip_select = 0, 63 }, 64 }; 65 66 */ 67 68 /* An example of SDIO support in your board setup file: 69 70 static struct cw1200_platform_data_sdio my_cw1200_platform_data = { 71 .ref_clk = 38400, 72 .have_5ghz = false, 73 .sdd_file = "sdd_myplatform.bin", 74 }; 75 cw1200_sdio_set_platform_data(&my_cw1200_platform_data); 76 77 */ 78 79 void __init cw1200_sdio_set_platform_data(struct cw1200_platform_data_sdio *pdata); 80 81 #endif /* CW1200_PLAT_H_INCLUDED */