diff options
-rw-r--r-- | arch/arm/mach-pxa/corgi.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-pxa/poodle.c | 6 | ||||
-rw-r--r-- | sound/soc/pxa/corgi.c | 36 | ||||
-rw-r--r-- | sound/soc/pxa/poodle.c | 36 |
4 files changed, 12 insertions, 72 deletions
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c index 962dda2e154a..5363e1aea3fb 100644 --- a/arch/arm/mach-pxa/corgi.c +++ b/arch/arm/mach-pxa/corgi.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/pm.h> | 23 | #include <linux/pm.h> |
24 | #include <linux/gpio.h> | 24 | #include <linux/gpio.h> |
25 | #include <linux/backlight.h> | 25 | #include <linux/backlight.h> |
26 | #include <linux/i2c.h> | ||
26 | #include <linux/io.h> | 27 | #include <linux/io.h> |
27 | #include <linux/spi/spi.h> | 28 | #include <linux/spi/spi.h> |
28 | #include <linux/spi/ads7846.h> | 29 | #include <linux/spi/ads7846.h> |
@@ -600,6 +601,10 @@ static struct platform_device *devices[] __initdata = { | |||
600 | &sharpsl_rom_device, | 601 | &sharpsl_rom_device, |
601 | }; | 602 | }; |
602 | 603 | ||
604 | static struct i2c_board_info __initdata corgi_i2c_devices[] = { | ||
605 | { I2C_BOARD_INFO("wm8731", 0x1b) }, | ||
606 | }; | ||
607 | |||
603 | static void corgi_poweroff(void) | 608 | static void corgi_poweroff(void) |
604 | { | 609 | { |
605 | if (!machine_is_corgi()) | 610 | if (!machine_is_corgi()) |
@@ -634,6 +639,7 @@ static void __init corgi_init(void) | |||
634 | pxa_set_mci_info(&corgi_mci_platform_data); | 639 | pxa_set_mci_info(&corgi_mci_platform_data); |
635 | pxa_set_ficp_info(&corgi_ficp_platform_data); | 640 | pxa_set_ficp_info(&corgi_ficp_platform_data); |
636 | pxa_set_i2c_info(NULL); | 641 | pxa_set_i2c_info(NULL); |
642 | i2c_register_board_info(0, ARRAY_AND_SIZE(corgi_i2c_devices)); | ||
637 | 643 | ||
638 | platform_scoop_config = &corgi_pcmcia_config; | 644 | platform_scoop_config = &corgi_pcmcia_config; |
639 | 645 | ||
diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c index ac431ed10399..9352d4a34837 100644 --- a/arch/arm/mach-pxa/poodle.c +++ b/arch/arm/mach-pxa/poodle.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/delay.h> | 22 | #include <linux/delay.h> |
23 | #include <linux/mtd/physmap.h> | 23 | #include <linux/mtd/physmap.h> |
24 | #include <linux/gpio.h> | 24 | #include <linux/gpio.h> |
25 | #include <linux/i2c.h> | ||
25 | #include <linux/spi/spi.h> | 26 | #include <linux/spi/spi.h> |
26 | #include <linux/spi/ads7846.h> | 27 | #include <linux/spi/ads7846.h> |
27 | #include <linux/mtd/sharpsl.h> | 28 | #include <linux/mtd/sharpsl.h> |
@@ -486,6 +487,10 @@ static struct platform_device *devices[] __initdata = { | |||
486 | &sharpsl_rom_device, | 487 | &sharpsl_rom_device, |
487 | }; | 488 | }; |
488 | 489 | ||
490 | static struct i2c_board_info __initdata poodle_i2c_devices[] = { | ||
491 | { I2C_BOARD_INFO("wm8731", 0x1b) }, | ||
492 | }; | ||
493 | |||
489 | static void poodle_poweroff(void) | 494 | static void poodle_poweroff(void) |
490 | { | 495 | { |
491 | arm_machine_restart('h', NULL); | 496 | arm_machine_restart('h', NULL); |
@@ -519,6 +524,7 @@ static void __init poodle_init(void) | |||
519 | pxa_set_mci_info(&poodle_mci_platform_data); | 524 | pxa_set_mci_info(&poodle_mci_platform_data); |
520 | pxa_set_ficp_info(&poodle_ficp_platform_data); | 525 | pxa_set_ficp_info(&poodle_ficp_platform_data); |
521 | pxa_set_i2c_info(NULL); | 526 | pxa_set_i2c_info(NULL); |
527 | i2c_register_board_info(0, ARRAY_AND_SIZE(poodle_i2c_devices)); | ||
522 | poodle_init_spi(); | 528 | poodle_init_spi(); |
523 | } | 529 | } |
524 | 530 | ||
diff --git a/sound/soc/pxa/corgi.c b/sound/soc/pxa/corgi.c index d5be2b30cda5..fefe1a57f31a 100644 --- a/sound/soc/pxa/corgi.c +++ b/sound/soc/pxa/corgi.c | |||
@@ -320,38 +320,6 @@ static struct snd_soc_device corgi_snd_devdata = { | |||
320 | .codec_dev = &soc_codec_dev_wm8731, | 320 | .codec_dev = &soc_codec_dev_wm8731, |
321 | }; | 321 | }; |
322 | 322 | ||
323 | /* | ||
324 | * FIXME: This is a temporary bodge to avoid cross-tree merge issues. | ||
325 | * New drivers should register the wm8731 I2C device in the machine | ||
326 | * setup code (under arch/arm for ARM systems). | ||
327 | */ | ||
328 | static int wm8731_i2c_register(void) | ||
329 | { | ||
330 | struct i2c_board_info info; | ||
331 | struct i2c_adapter *adapter; | ||
332 | struct i2c_client *client; | ||
333 | |||
334 | memset(&info, 0, sizeof(struct i2c_board_info)); | ||
335 | info.addr = 0x1b; | ||
336 | strlcpy(info.type, "wm8731", I2C_NAME_SIZE); | ||
337 | |||
338 | adapter = i2c_get_adapter(0); | ||
339 | if (!adapter) { | ||
340 | printk(KERN_ERR "can't get i2c adapter 0\n"); | ||
341 | return -ENODEV; | ||
342 | } | ||
343 | |||
344 | client = i2c_new_device(adapter, &info); | ||
345 | i2c_put_adapter(adapter); | ||
346 | if (!client) { | ||
347 | printk(KERN_ERR "can't add i2c device at 0x%x\n", | ||
348 | (unsigned int)info.addr); | ||
349 | return -ENODEV; | ||
350 | } | ||
351 | |||
352 | return 0; | ||
353 | } | ||
354 | |||
355 | static struct platform_device *corgi_snd_device; | 323 | static struct platform_device *corgi_snd_device; |
356 | 324 | ||
357 | static int __init corgi_init(void) | 325 | static int __init corgi_init(void) |
@@ -362,10 +330,6 @@ static int __init corgi_init(void) | |||
362 | machine_is_husky())) | 330 | machine_is_husky())) |
363 | return -ENODEV; | 331 | return -ENODEV; |
364 | 332 | ||
365 | ret = wm8731_i2c_register(); | ||
366 | if (ret != 0) | ||
367 | return ret; | ||
368 | |||
369 | corgi_snd_device = platform_device_alloc("soc-audio", -1); | 333 | corgi_snd_device = platform_device_alloc("soc-audio", -1); |
370 | if (!corgi_snd_device) | 334 | if (!corgi_snd_device) |
371 | return -ENOMEM; | 335 | return -ENOMEM; |
diff --git a/sound/soc/pxa/poodle.c b/sound/soc/pxa/poodle.c index a51058f66747..c5f36e0eab58 100644 --- a/sound/soc/pxa/poodle.c +++ b/sound/soc/pxa/poodle.c | |||
@@ -280,38 +280,6 @@ static struct snd_soc_card snd_soc_poodle = { | |||
280 | .num_links = 1, | 280 | .num_links = 1, |
281 | }; | 281 | }; |
282 | 282 | ||
283 | /* | ||
284 | * FIXME: This is a temporary bodge to avoid cross-tree merge issues. | ||
285 | * New drivers should register the wm8731 I2C device in the machine | ||
286 | * setup code (under arch/arm for ARM systems). | ||
287 | */ | ||
288 | static int wm8731_i2c_register(void) | ||
289 | { | ||
290 | struct i2c_board_info info; | ||
291 | struct i2c_adapter *adapter; | ||
292 | struct i2c_client *client; | ||
293 | |||
294 | memset(&info, 0, sizeof(struct i2c_board_info)); | ||
295 | info.addr = 0x1b; | ||
296 | strlcpy(info.type, "wm8731", I2C_NAME_SIZE); | ||
297 | |||
298 | adapter = i2c_get_adapter(0); | ||
299 | if (!adapter) { | ||
300 | printk(KERN_ERR "can't get i2c adapter 0\n"); | ||
301 | return -ENODEV; | ||
302 | } | ||
303 | |||
304 | client = i2c_new_device(adapter, &info); | ||
305 | i2c_put_adapter(adapter); | ||
306 | if (!client) { | ||
307 | printk(KERN_ERR "can't add i2c device at 0x%x\n", | ||
308 | (unsigned int)info.addr); | ||
309 | return -ENODEV; | ||
310 | } | ||
311 | |||
312 | return 0; | ||
313 | } | ||
314 | |||
315 | /* poodle audio subsystem */ | 283 | /* poodle audio subsystem */ |
316 | static struct snd_soc_device poodle_snd_devdata = { | 284 | static struct snd_soc_device poodle_snd_devdata = { |
317 | .card = &snd_soc_poodle, | 285 | .card = &snd_soc_poodle, |
@@ -327,10 +295,6 @@ static int __init poodle_init(void) | |||
327 | if (!machine_is_poodle()) | 295 | if (!machine_is_poodle()) |
328 | return -ENODEV; | 296 | return -ENODEV; |
329 | 297 | ||
330 | ret = wm8731_i2c_register(); | ||
331 | if (ret != 0) | ||
332 | return ret; | ||
333 | |||
334 | locomo_gpio_set_dir(&poodle_locomo_device.dev, | 298 | locomo_gpio_set_dir(&poodle_locomo_device.dev, |
335 | POODLE_LOCOMO_GPIO_AMP_ON, 0); | 299 | POODLE_LOCOMO_GPIO_AMP_ON, 0); |
336 | /* should we mute HP at startup - burning power ?*/ | 300 | /* should we mute HP at startup - burning power ?*/ |