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

source code of linux/include/linux/platform_data/net-cw1200.h