aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-omap2/board-omap3pandora.c2
-rw-r--r--arch/arm/mach-omap2/board-rx51-peripherals.c2
-rw-r--r--arch/arm/mach-omap2/board-zoom-peripherals.c54
-rw-r--r--arch/s390/include/asm/qdio.h13
4 files changed, 64 insertions, 7 deletions
diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c
index b7d6df4e3cf9..41d6f549070c 100644
--- a/arch/arm/mach-omap2/board-omap3pandora.c
+++ b/arch/arm/mach-omap2/board-omap3pandora.c
@@ -25,7 +25,7 @@
25#include <linux/spi/ads7846.h> 25#include <linux/spi/ads7846.h>
26#include <linux/regulator/machine.h> 26#include <linux/regulator/machine.h>
27#include <linux/i2c/twl.h> 27#include <linux/i2c/twl.h>
28#include <linux/spi/wl12xx.h> 28#include <linux/wl12xx.h>
29#include <linux/mtd/partitions.h> 29#include <linux/mtd/partitions.h>
30#include <linux/mtd/nand.h> 30#include <linux/mtd/nand.h>
31#include <linux/leds.h> 31#include <linux/leds.h>
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c
index 9a5eb87425fc..ce28a851dcd3 100644
--- a/arch/arm/mach-omap2/board-rx51-peripherals.c
+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
@@ -14,7 +14,7 @@
14#include <linux/input.h> 14#include <linux/input.h>
15#include <linux/input/matrix_keypad.h> 15#include <linux/input/matrix_keypad.h>
16#include <linux/spi/spi.h> 16#include <linux/spi/spi.h>
17#include <linux/spi/wl12xx.h> 17#include <linux/wl12xx.h>
18#include <linux/i2c.h> 18#include <linux/i2c.h>
19#include <linux/i2c/twl.h> 19#include <linux/i2c/twl.h>
20#include <linux/clk.h> 20#include <linux/clk.h>
diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c
index 6b3984964cc5..189a6d1600b2 100644
--- a/arch/arm/mach-omap2/board-zoom-peripherals.c
+++ b/arch/arm/mach-omap2/board-zoom-peripherals.c
@@ -16,6 +16,8 @@
16#include <linux/gpio.h> 16#include <linux/gpio.h>
17#include <linux/i2c/twl.h> 17#include <linux/i2c/twl.h>
18#include <linux/regulator/machine.h> 18#include <linux/regulator/machine.h>
19#include <linux/regulator/fixed.h>
20#include <linux/wl12xx.h>
19 21
20#include <asm/mach-types.h> 22#include <asm/mach-types.h>
21#include <asm/mach/arch.h> 23#include <asm/mach/arch.h>
@@ -27,6 +29,9 @@
27#include "mux.h" 29#include "mux.h"
28#include "hsmmc.h" 30#include "hsmmc.h"
29 31
32#define OMAP_ZOOM_WLAN_PMENA_GPIO (101)
33#define OMAP_ZOOM_WLAN_IRQ_GPIO (162)
34
30/* Zoom2 has Qwerty keyboard*/ 35/* Zoom2 has Qwerty keyboard*/
31static int board_keymap[] = { 36static int board_keymap[] = {
32 KEY(0, 0, KEY_E), 37 KEY(0, 0, KEY_E),
@@ -106,6 +111,11 @@ static struct regulator_consumer_supply zoom_vmmc2_supply = {
106 .supply = "vmmc", 111 .supply = "vmmc",
107}; 112};
108 113
114static struct regulator_consumer_supply zoom_vmmc3_supply = {
115 .supply = "vmmc",
116 .dev_name = "mmci-omap-hs.2",
117};
118
109/* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */ 119/* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */
110static struct regulator_init_data zoom_vmmc1 = { 120static struct regulator_init_data zoom_vmmc1 = {
111 .constraints = { 121 .constraints = {
@@ -151,6 +161,38 @@ static struct regulator_init_data zoom_vsim = {
151 .consumer_supplies = &zoom_vsim_supply, 161 .consumer_supplies = &zoom_vsim_supply,
152}; 162};
153 163
164static struct regulator_init_data zoom_vmmc3 = {
165 .constraints = {
166 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
167 },
168 .num_consumer_supplies = 1,
169 .consumer_supplies = &zoom_vmmc3_supply,
170};
171
172static struct fixed_voltage_config zoom_vwlan = {
173 .supply_name = "vwl1271",
174 .microvolts = 1800000, /* 1.8V */
175 .gpio = OMAP_ZOOM_WLAN_PMENA_GPIO,
176 .startup_delay = 70000, /* 70msec */
177 .enable_high = 1,
178 .enabled_at_boot = 0,
179 .init_data = &zoom_vmmc3,
180};
181
182static struct platform_device omap_vwlan_device = {
183 .name = "reg-fixed-voltage",
184 .id = 1,
185 .dev = {
186 .platform_data = &zoom_vwlan,
187 },
188};
189
190struct wl12xx_platform_data omap_zoom_wlan_data __initdata = {
191 .irq = OMAP_GPIO_IRQ(OMAP_ZOOM_WLAN_IRQ_GPIO),
192 /* ZOOM ref clock is 26 MHz */
193 .board_ref_clock = 1,
194};
195
154static struct omap2_hsmmc_info mmc[] __initdata = { 196static struct omap2_hsmmc_info mmc[] __initdata = {
155 { 197 {
156 .name = "external", 198 .name = "external",
@@ -168,6 +210,14 @@ static struct omap2_hsmmc_info mmc[] __initdata = {
168 .nonremovable = true, 210 .nonremovable = true,
169 .power_saving = true, 211 .power_saving = true,
170 }, 212 },
213 {
214 .name = "wl1271",
215 .mmc = 3,
216 .caps = MMC_CAP_4_BIT_DATA,
217 .gpio_wp = -EINVAL,
218 .gpio_cd = -EINVAL,
219 .nonremovable = true,
220 },
171 {} /* Terminator */ 221 {} /* Terminator */
172}; 222};
173 223
@@ -279,7 +329,11 @@ static void enable_board_wakeup_source(void)
279 329
280void __init zoom_peripherals_init(void) 330void __init zoom_peripherals_init(void)
281{ 331{
332 if (wl12xx_set_platform_data(&omap_zoom_wlan_data))
333 pr_err("error setting wl12xx data\n");
334
282 omap_i2c_init(); 335 omap_i2c_init();
336 platform_device_register(&omap_vwlan_device);
283 usb_musb_init(&musb_board_data); 337 usb_musb_init(&musb_board_data);
284 enable_board_wakeup_source(); 338 enable_board_wakeup_source();
285} 339}
diff --git a/arch/s390/include/asm/qdio.h b/arch/s390/include/asm/qdio.h
index 2ba630276295..46e96bc1f5a1 100644
--- a/arch/s390/include/asm/qdio.h
+++ b/arch/s390/include/asm/qdio.h
@@ -360,6 +360,7 @@ struct qdio_initialize {
360 unsigned int no_output_qs; 360 unsigned int no_output_qs;
361 qdio_handler_t *input_handler; 361 qdio_handler_t *input_handler;
362 qdio_handler_t *output_handler; 362 qdio_handler_t *output_handler;
363 void (*queue_start_poll) (struct ccw_device *, int, unsigned long);
363 unsigned long int_parm; 364 unsigned long int_parm;
364 void **input_sbal_addr_array; 365 void **input_sbal_addr_array;
365 void **output_sbal_addr_array; 366 void **output_sbal_addr_array;
@@ -377,11 +378,13 @@ struct qdio_initialize {
377extern int qdio_allocate(struct qdio_initialize *); 378extern int qdio_allocate(struct qdio_initialize *);
378extern int qdio_establish(struct qdio_initialize *); 379extern int qdio_establish(struct qdio_initialize *);
379extern int qdio_activate(struct ccw_device *); 380extern int qdio_activate(struct ccw_device *);
380 381extern int do_QDIO(struct ccw_device *, unsigned int, int, unsigned int,
381extern int do_QDIO(struct ccw_device *cdev, unsigned int callflags, 382 unsigned int);
382 int q_nr, unsigned int bufnr, unsigned int count); 383extern int qdio_start_irq(struct ccw_device *, int);
383extern int qdio_shutdown(struct ccw_device*, int); 384extern int qdio_stop_irq(struct ccw_device *, int);
385extern int qdio_get_next_buffers(struct ccw_device *, int, int *, int *);
386extern int qdio_shutdown(struct ccw_device *, int);
384extern int qdio_free(struct ccw_device *); 387extern int qdio_free(struct ccw_device *);
385extern int qdio_get_ssqd_desc(struct ccw_device *dev, struct qdio_ssqd_desc*); 388extern int qdio_get_ssqd_desc(struct ccw_device *, struct qdio_ssqd_desc *);
386 389
387#endif /* __QDIO_H__ */ 390#endif /* __QDIO_H__ */