aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSonic Zhang <sonic.zhang@analog.com>2010-06-02 01:00:21 -0400
committerMike Frysinger <vapier@gentoo.org>2010-10-22 03:48:50 -0400
commit1b04cbeabdbda802c53f4bf85cd9db0c82643152 (patch)
treeb444ff041e96fe2f7ed6c60afc4f8a6e4558d0ed
parent2adcf194cbf3ec5181efa8e7af180e2c9f1a63e2 (diff)
Blackfin: bf537-stamp: re-use the fixed regulator voltage driver
Rather than write our own ADP switch driver, use the existing fixed regulator driver and rewrite the platform resources accordingly. Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-rw-r--r--arch/blackfin/mach-bf537/boards/stamp.c80
1 files changed, 25 insertions, 55 deletions
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c
index 328f002f76a0..3888b43e1b31 100644
--- a/arch/blackfin/mach-bf537/boards/stamp.c
+++ b/arch/blackfin/mach-bf537/boards/stamp.c
@@ -35,12 +35,13 @@
35#include <asm/reboot.h> 35#include <asm/reboot.h>
36#include <asm/portmux.h> 36#include <asm/portmux.h>
37#include <asm/dpmc.h> 37#include <asm/dpmc.h>
38#ifdef CONFIG_REGULATOR_ADP_SWITCH 38#ifdef CONFIG_REGULATOR_FIXED_VOLTAGE
39#include <linux/regulator/adp_switch.h> 39#include <linux/regulator/fixed.h>
40#endif 40#endif
41#ifdef CONFIG_REGULATOR_AD5398 41#ifdef CONFIG_REGULATOR_AD5398
42#include <linux/regulator/ad5398.h> 42#include <linux/regulator/ad5398.h>
43#endif 43#endif
44#include <linux/regulator/machine.h>
44#include <linux/regulator/consumer.h> 45#include <linux/regulator/consumer.h>
45#include <linux/regulator/userspace-consumer.h> 46#include <linux/regulator/userspace-consumer.h>
46 47
@@ -2590,50 +2591,38 @@ static struct platform_device bfin_ac97 = {
2590}; 2591};
2591#endif 2592#endif
2592 2593
2593#if defined(CONFIG_REGULATOR_ADP_SWITCH) || defined(CONFIG_REGULATOR_ADP_SWITCH_MODULE) 2594#if defined(CONFIG_REGULATOR_FIXED_VOLTAGE) || defined(CONFIG_REGULATOR_FIXED_VOLTAGE_MODULE)
2594#define REGULATOR_ADP122 "adp122" 2595#define REGULATOR_ADP122 "adp122"
2595#define REGULATOR_ADP150 "adp150" 2596#define REGULATOR_ADP122_UV 2500000
2596 2597
2597static struct regulator_consumer_supply adp122_consumers = { 2598static struct regulator_consumer_supply adp122_consumers = {
2598 .supply = REGULATOR_ADP122, 2599 .supply = REGULATOR_ADP122,
2599}; 2600};
2600 2601
2601static struct regulator_consumer_supply adp150_consumers = { 2602static struct regulator_init_data adp_switch_regulator_data = {
2602 .supply = REGULATOR_ADP150, 2603 .constraints = {
2603}; 2604 .name = REGULATOR_ADP122,
2604 2605 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
2605static struct regulator_init_data adp_switch_regulator_data[] = { 2606 .min_uV = REGULATOR_ADP122_UV,
2606 { 2607 .max_uV = REGULATOR_ADP122_UV,
2607 .constraints = { 2608 .min_uA = 0,
2608 .name = REGULATOR_ADP122, 2609 .max_uA = 300000,
2609 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
2610 .min_uA = 0,
2611 .max_uA = 300000,
2612 },
2613 .num_consumer_supplies = 1, /* only 1 */
2614 .consumer_supplies = &adp122_consumers,
2615 .driver_data = (void *)GPIO_PF2, /* gpio port only */
2616 },
2617 {
2618 .constraints = {
2619 .name = REGULATOR_ADP150,
2620 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
2621 .min_uA = 0,
2622 .max_uA = 150000,
2623 },
2624 .num_consumer_supplies = 1, /* only 1 */
2625 .consumer_supplies = &adp150_consumers,
2626 .driver_data = (void *)GPIO_PF3, /* gpio port only */
2627 }, 2610 },
2611 .num_consumer_supplies = 1, /* only 1 */
2612 .consumer_supplies = &adp122_consumers,
2628}; 2613};
2629 2614
2630static struct adp_switch_platform_data adp_switch_pdata = { 2615static struct fixed_voltage_config adp_switch_pdata = {
2631 .regulator_num = ARRAY_SIZE(adp_switch_regulator_data), 2616 .supply_name = REGULATOR_ADP122,
2632 .regulator_data = adp_switch_regulator_data, 2617 .microvolts = REGULATOR_ADP122_UV,
2618 .gpio = GPIO_PF2,
2619 .enable_high = 1,
2620 .enabled_at_boot = 0,
2621 .init_data = &adp_switch_regulator_data,
2633}; 2622};
2634 2623
2635static struct platform_device adp_switch_device = { 2624static struct platform_device adp_switch_device = {
2636 .name = "adp_switch", 2625 .name = "reg-fixed-voltage",
2637 .id = 0, 2626 .id = 0,
2638 .dev = { 2627 .dev = {
2639 .platform_data = &adp_switch_pdata, 2628 .platform_data = &adp_switch_pdata,
@@ -2659,24 +2648,6 @@ static struct platform_device adp122_userspace_consumer_device = {
2659 .platform_data = &adp122_userspace_comsumer_data, 2648 .platform_data = &adp122_userspace_comsumer_data,
2660 }, 2649 },
2661}; 2650};
2662
2663static struct regulator_bulk_data adp150_bulk_data = {
2664 .supply = REGULATOR_ADP150,
2665};
2666
2667static struct regulator_userspace_consumer_data adp150_userspace_comsumer_data = {
2668 .name = REGULATOR_ADP150,
2669 .num_supplies = 1,
2670 .supplies = &adp150_bulk_data,
2671};
2672
2673static struct platform_device adp150_userspace_consumer_device = {
2674 .name = "reg-userspace-consumer",
2675 .id = 1,
2676 .dev = {
2677 .platform_data = &adp150_userspace_comsumer_data,
2678 },
2679};
2680#endif 2651#endif
2681#endif 2652#endif
2682 2653
@@ -2829,12 +2800,11 @@ static struct platform_device *stamp_devices[] __initdata = {
2829#endif 2800#endif
2830#endif 2801#endif
2831 2802
2832#if defined(CONFIG_REGULATOR_ADP_SWITCH) || defined(CONFIG_REGULATOR_ADP_SWITCH_MODULE) 2803#if defined(CONFIG_REGULATOR_FIXED_VOLTAGE) || defined(CONFIG_REGULATOR_FIXED_VOLTAGE_MODULE)
2833 &adp_switch_device, 2804 &adp_switch_device,
2834#if defined(CONFIG_REGULATOR_USERSPACE_CONSUMER) || \ 2805#if defined(CONFIG_REGULATOR_USERSPACE_CONSUMER) || \
2835 defined(CONFIG_REGULATOR_USERSPACE_CONSUMER_MODULE) 2806 defined(CONFIG_REGULATOR_USERSPACE_CONSUMER_MODULE)
2836 &adp122_userspace_consumer_device, 2807 &adp122_userspace_consumer_device,
2837 &adp150_userspace_consumer_device,
2838#endif 2808#endif
2839#endif 2809#endif
2840 2810