diff options
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-s5pv210/mach-aquila.c | 118 | ||||
-rw-r--r-- | arch/arm/mach-s5pv210/mach-goni.c | 117 |
2 files changed, 235 insertions, 0 deletions
diff --git a/arch/arm/mach-s5pv210/mach-aquila.c b/arch/arm/mach-s5pv210/mach-aquila.c index cd441ef35bec..4b15549bd142 100644 --- a/arch/arm/mach-s5pv210/mach-aquila.c +++ b/arch/arm/mach-s5pv210/mach-aquila.c | |||
@@ -16,6 +16,8 @@ | |||
16 | #include <linux/i2c.h> | 16 | #include <linux/i2c.h> |
17 | #include <linux/i2c-gpio.h> | 17 | #include <linux/i2c-gpio.h> |
18 | #include <linux/mfd/max8998.h> | 18 | #include <linux/mfd/max8998.h> |
19 | #include <linux/mfd/wm8994/pdata.h> | ||
20 | #include <linux/regulator/fixed.h> | ||
19 | #include <linux/gpio_keys.h> | 21 | #include <linux/gpio_keys.h> |
20 | #include <linux/input.h> | 22 | #include <linux/input.h> |
21 | #include <linux/gpio.h> | 23 | #include <linux/gpio.h> |
@@ -379,6 +381,119 @@ static struct max8998_platform_data aquila_max8998_pdata = { | |||
379 | }; | 381 | }; |
380 | #endif | 382 | #endif |
381 | 383 | ||
384 | static struct regulator_consumer_supply wm8994_fixed_voltage0_supplies[] = { | ||
385 | { | ||
386 | .dev_name = "5-001a", | ||
387 | .supply = "DBVDD", | ||
388 | }, { | ||
389 | .dev_name = "5-001a", | ||
390 | .supply = "AVDD2", | ||
391 | }, { | ||
392 | .dev_name = "5-001a", | ||
393 | .supply = "CPVDD", | ||
394 | }, | ||
395 | }; | ||
396 | |||
397 | static struct regulator_consumer_supply wm8994_fixed_voltage1_supplies[] = { | ||
398 | { | ||
399 | .dev_name = "5-001a", | ||
400 | .supply = "SPKVDD1", | ||
401 | }, { | ||
402 | .dev_name = "5-001a", | ||
403 | .supply = "SPKVDD2", | ||
404 | }, | ||
405 | }; | ||
406 | |||
407 | static struct regulator_init_data wm8994_fixed_voltage0_init_data = { | ||
408 | .constraints = { | ||
409 | .always_on = 1, | ||
410 | }, | ||
411 | .num_consumer_supplies = ARRAY_SIZE(wm8994_fixed_voltage0_supplies), | ||
412 | .consumer_supplies = wm8994_fixed_voltage0_supplies, | ||
413 | }; | ||
414 | |||
415 | static struct regulator_init_data wm8994_fixed_voltage1_init_data = { | ||
416 | .constraints = { | ||
417 | .always_on = 1, | ||
418 | }, | ||
419 | .num_consumer_supplies = ARRAY_SIZE(wm8994_fixed_voltage1_supplies), | ||
420 | .consumer_supplies = wm8994_fixed_voltage1_supplies, | ||
421 | }; | ||
422 | |||
423 | static struct fixed_voltage_config wm8994_fixed_voltage0_config = { | ||
424 | .supply_name = "VCC_1.8V_PDA", | ||
425 | .microvolts = 1800000, | ||
426 | .gpio = -EINVAL, | ||
427 | .init_data = &wm8994_fixed_voltage0_init_data, | ||
428 | }; | ||
429 | |||
430 | static struct fixed_voltage_config wm8994_fixed_voltage1_config = { | ||
431 | .supply_name = "V_BAT", | ||
432 | .microvolts = 3700000, | ||
433 | .gpio = -EINVAL, | ||
434 | .init_data = &wm8994_fixed_voltage1_init_data, | ||
435 | }; | ||
436 | |||
437 | static struct platform_device wm8994_fixed_voltage0 = { | ||
438 | .name = "reg-fixed-voltage", | ||
439 | .id = 0, | ||
440 | .dev = { | ||
441 | .platform_data = &wm8994_fixed_voltage0_config, | ||
442 | }, | ||
443 | }; | ||
444 | |||
445 | static struct platform_device wm8994_fixed_voltage1 = { | ||
446 | .name = "reg-fixed-voltage", | ||
447 | .id = 1, | ||
448 | .dev = { | ||
449 | .platform_data = &wm8994_fixed_voltage1_config, | ||
450 | }, | ||
451 | }; | ||
452 | |||
453 | static struct regulator_consumer_supply wm8994_avdd1_supply = { | ||
454 | .dev_name = "5-001a", | ||
455 | .supply = "AVDD1", | ||
456 | }; | ||
457 | |||
458 | static struct regulator_consumer_supply wm8994_dcvdd_supply = { | ||
459 | .dev_name = "5-001a", | ||
460 | .supply = "DCVDD", | ||
461 | }; | ||
462 | |||
463 | static struct regulator_init_data wm8994_ldo1_data = { | ||
464 | .constraints = { | ||
465 | .name = "AVDD1_3.0V", | ||
466 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, | ||
467 | }, | ||
468 | .num_consumer_supplies = 1, | ||
469 | .consumer_supplies = &wm8994_avdd1_supply, | ||
470 | }; | ||
471 | |||
472 | static struct regulator_init_data wm8994_ldo2_data = { | ||
473 | .constraints = { | ||
474 | .name = "DCVDD_1.0V", | ||
475 | }, | ||
476 | .num_consumer_supplies = 1, | ||
477 | .consumer_supplies = &wm8994_dcvdd_supply, | ||
478 | }; | ||
479 | |||
480 | static struct wm8994_pdata wm8994_platform_data = { | ||
481 | /* configure gpio1 function: 0x0001(Logic level input/output) */ | ||
482 | .gpio_defaults[0] = 0x0001, | ||
483 | /* configure gpio3/4/5/7 function for AIF2 voice */ | ||
484 | .gpio_defaults[2] = 0x8100, | ||
485 | .gpio_defaults[3] = 0x8100, | ||
486 | .gpio_defaults[4] = 0x8100, | ||
487 | .gpio_defaults[6] = 0x0100, | ||
488 | /* configure gpio8/9/10/11 function for AIF3 BT */ | ||
489 | .gpio_defaults[7] = 0x8100, | ||
490 | .gpio_defaults[8] = 0x0100, | ||
491 | .gpio_defaults[9] = 0x0100, | ||
492 | .gpio_defaults[10] = 0x0100, | ||
493 | .ldo[0] = { S5PV210_MP03(6), NULL, &wm8994_ldo1_data }, /* XM0FRNB_2 */ | ||
494 | .ldo[1] = { 0, NULL, &wm8994_ldo2_data }, | ||
495 | }; | ||
496 | |||
382 | /* GPIO I2C PMIC */ | 497 | /* GPIO I2C PMIC */ |
383 | #define AP_I2C_GPIO_PMIC_BUS_4 4 | 498 | #define AP_I2C_GPIO_PMIC_BUS_4 4 |
384 | static struct i2c_gpio_platform_data aquila_i2c_gpio_pmic_data = { | 499 | static struct i2c_gpio_platform_data aquila_i2c_gpio_pmic_data = { |
@@ -423,6 +538,7 @@ static struct i2c_board_info i2c_gpio5_devs[] __initdata = { | |||
423 | { | 538 | { |
424 | /* CS/ADDR = low 0x34 (FYI: high = 0x36) */ | 539 | /* CS/ADDR = low 0x34 (FYI: high = 0x36) */ |
425 | I2C_BOARD_INFO("wm8994", 0x1a), | 540 | I2C_BOARD_INFO("wm8994", 0x1a), |
541 | .platform_data = &wm8994_platform_data, | ||
426 | }, | 542 | }, |
427 | }; | 543 | }; |
428 | 544 | ||
@@ -508,6 +624,8 @@ static struct platform_device *aquila_devices[] __initdata = { | |||
508 | &s5p_device_fimc1, | 624 | &s5p_device_fimc1, |
509 | &s5p_device_fimc2, | 625 | &s5p_device_fimc2, |
510 | &s5pv210_device_iis0, | 626 | &s5pv210_device_iis0, |
627 | &wm8994_fixed_voltage0, | ||
628 | &wm8994_fixed_voltage1, | ||
511 | }; | 629 | }; |
512 | 630 | ||
513 | static void __init aquila_sound_init(void) | 631 | static void __init aquila_sound_init(void) |
diff --git a/arch/arm/mach-s5pv210/mach-goni.c b/arch/arm/mach-s5pv210/mach-goni.c index a857446f153e..bae573b4ff7a 100644 --- a/arch/arm/mach-s5pv210/mach-goni.c +++ b/arch/arm/mach-s5pv210/mach-goni.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/i2c-gpio.h> | 17 | #include <linux/i2c-gpio.h> |
18 | #include <linux/i2c/qt602240_ts.h> | 18 | #include <linux/i2c/qt602240_ts.h> |
19 | #include <linux/mfd/max8998.h> | 19 | #include <linux/mfd/max8998.h> |
20 | #include <linux/mfd/wm8994/pdata.h> | ||
20 | #include <linux/regulator/fixed.h> | 21 | #include <linux/regulator/fixed.h> |
21 | #include <linux/spi/spi.h> | 22 | #include <linux/spi/spi.h> |
22 | #include <linux/spi/spi_gpio.h> | 23 | #include <linux/spi/spi_gpio.h> |
@@ -520,6 +521,119 @@ static struct max8998_platform_data goni_max8998_pdata = { | |||
520 | }; | 521 | }; |
521 | #endif | 522 | #endif |
522 | 523 | ||
524 | static struct regulator_consumer_supply wm8994_fixed_voltage0_supplies[] = { | ||
525 | { | ||
526 | .dev_name = "5-001a", | ||
527 | .supply = "DBVDD", | ||
528 | }, { | ||
529 | .dev_name = "5-001a", | ||
530 | .supply = "AVDD2", | ||
531 | }, { | ||
532 | .dev_name = "5-001a", | ||
533 | .supply = "CPVDD", | ||
534 | }, | ||
535 | }; | ||
536 | |||
537 | static struct regulator_consumer_supply wm8994_fixed_voltage1_supplies[] = { | ||
538 | { | ||
539 | .dev_name = "5-001a", | ||
540 | .supply = "SPKVDD1", | ||
541 | }, { | ||
542 | .dev_name = "5-001a", | ||
543 | .supply = "SPKVDD2", | ||
544 | }, | ||
545 | }; | ||
546 | |||
547 | static struct regulator_init_data wm8994_fixed_voltage0_init_data = { | ||
548 | .constraints = { | ||
549 | .always_on = 1, | ||
550 | }, | ||
551 | .num_consumer_supplies = ARRAY_SIZE(wm8994_fixed_voltage0_supplies), | ||
552 | .consumer_supplies = wm8994_fixed_voltage0_supplies, | ||
553 | }; | ||
554 | |||
555 | static struct regulator_init_data wm8994_fixed_voltage1_init_data = { | ||
556 | .constraints = { | ||
557 | .always_on = 1, | ||
558 | }, | ||
559 | .num_consumer_supplies = ARRAY_SIZE(wm8994_fixed_voltage1_supplies), | ||
560 | .consumer_supplies = wm8994_fixed_voltage1_supplies, | ||
561 | }; | ||
562 | |||
563 | static struct fixed_voltage_config wm8994_fixed_voltage0_config = { | ||
564 | .supply_name = "VCC_1.8V_PDA", | ||
565 | .microvolts = 1800000, | ||
566 | .gpio = -EINVAL, | ||
567 | .init_data = &wm8994_fixed_voltage0_init_data, | ||
568 | }; | ||
569 | |||
570 | static struct fixed_voltage_config wm8994_fixed_voltage1_config = { | ||
571 | .supply_name = "V_BAT", | ||
572 | .microvolts = 3700000, | ||
573 | .gpio = -EINVAL, | ||
574 | .init_data = &wm8994_fixed_voltage1_init_data, | ||
575 | }; | ||
576 | |||
577 | static struct platform_device wm8994_fixed_voltage0 = { | ||
578 | .name = "reg-fixed-voltage", | ||
579 | .id = 0, | ||
580 | .dev = { | ||
581 | .platform_data = &wm8994_fixed_voltage0_config, | ||
582 | }, | ||
583 | }; | ||
584 | |||
585 | static struct platform_device wm8994_fixed_voltage1 = { | ||
586 | .name = "reg-fixed-voltage", | ||
587 | .id = 1, | ||
588 | .dev = { | ||
589 | .platform_data = &wm8994_fixed_voltage1_config, | ||
590 | }, | ||
591 | }; | ||
592 | |||
593 | static struct regulator_consumer_supply wm8994_avdd1_supply = { | ||
594 | .dev_name = "5-001a", | ||
595 | .supply = "AVDD1", | ||
596 | }; | ||
597 | |||
598 | static struct regulator_consumer_supply wm8994_dcvdd_supply = { | ||
599 | .dev_name = "5-001a", | ||
600 | .supply = "DCVDD", | ||
601 | }; | ||
602 | |||
603 | static struct regulator_init_data wm8994_ldo1_data = { | ||
604 | .constraints = { | ||
605 | .name = "AVDD1_3.0V", | ||
606 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, | ||
607 | }, | ||
608 | .num_consumer_supplies = 1, | ||
609 | .consumer_supplies = &wm8994_avdd1_supply, | ||
610 | }; | ||
611 | |||
612 | static struct regulator_init_data wm8994_ldo2_data = { | ||
613 | .constraints = { | ||
614 | .name = "DCVDD_1.0V", | ||
615 | }, | ||
616 | .num_consumer_supplies = 1, | ||
617 | .consumer_supplies = &wm8994_dcvdd_supply, | ||
618 | }; | ||
619 | |||
620 | static struct wm8994_pdata wm8994_platform_data = { | ||
621 | /* configure gpio1 function: 0x0001(Logic level input/output) */ | ||
622 | .gpio_defaults[0] = 0x0001, | ||
623 | /* configure gpio3/4/5/7 function for AIF2 voice */ | ||
624 | .gpio_defaults[2] = 0x8100, | ||
625 | .gpio_defaults[3] = 0x8100, | ||
626 | .gpio_defaults[4] = 0x8100, | ||
627 | .gpio_defaults[6] = 0x0100, | ||
628 | /* configure gpio8/9/10/11 function for AIF3 BT */ | ||
629 | .gpio_defaults[7] = 0x8100, | ||
630 | .gpio_defaults[8] = 0x0100, | ||
631 | .gpio_defaults[9] = 0x0100, | ||
632 | .gpio_defaults[10] = 0x0100, | ||
633 | .ldo[0] = { S5PV210_MP03(6), NULL, &wm8994_ldo1_data }, /* XM0FRNB_2 */ | ||
634 | .ldo[1] = { 0, NULL, &wm8994_ldo2_data }, | ||
635 | }; | ||
636 | |||
523 | /* GPIO I2C PMIC */ | 637 | /* GPIO I2C PMIC */ |
524 | #define AP_I2C_GPIO_PMIC_BUS_4 4 | 638 | #define AP_I2C_GPIO_PMIC_BUS_4 4 |
525 | static struct i2c_gpio_platform_data goni_i2c_gpio_pmic_data = { | 639 | static struct i2c_gpio_platform_data goni_i2c_gpio_pmic_data = { |
@@ -564,6 +678,7 @@ static struct i2c_board_info i2c_gpio5_devs[] __initdata = { | |||
564 | { | 678 | { |
565 | /* CS/ADDR = low 0x34 (FYI: high = 0x36) */ | 679 | /* CS/ADDR = low 0x34 (FYI: high = 0x36) */ |
566 | I2C_BOARD_INFO("wm8994", 0x1a), | 680 | I2C_BOARD_INFO("wm8994", 0x1a), |
681 | .platform_data = &wm8994_platform_data, | ||
567 | }, | 682 | }, |
568 | }; | 683 | }; |
569 | 684 | ||
@@ -681,6 +796,8 @@ static struct platform_device *goni_devices[] __initdata = { | |||
681 | &samsung_device_keypad, | 796 | &samsung_device_keypad, |
682 | &s3c_device_i2c1, | 797 | &s3c_device_i2c1, |
683 | &s3c_device_i2c2, | 798 | &s3c_device_i2c2, |
799 | &wm8994_fixed_voltage0, | ||
800 | &wm8994_fixed_voltage1, | ||
684 | }; | 801 | }; |
685 | 802 | ||
686 | static void __init goni_sound_init(void) | 803 | static void __init goni_sound_init(void) |