[PATCH 2/5] pxa/vpac270: Add PMIC support

Eric Miao eric.y.miao at gmail.com
Wed May 26 09:48:26 EDT 2010


On Fri, May 21, 2010 at 9:12 AM, Marek Vasut <marek.vasut at gmail.com> wrote:
> This patch adds support for the MAX1587A used on Voipac PXA270 board.
>
> Signed-off-by: Marek Vasut <marek.vasut at gmail.com>

Applied.

> ---
>  arch/arm/mach-pxa/vpac270.c |   61 +++++++++++++++++++++++++++++++++++++++++-
>  1 files changed, 59 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-pxa/vpac270.c b/arch/arm/mach-pxa/vpac270.c
> index 9884fa9..1192e2b 100644
> --- a/arch/arm/mach-pxa/vpac270.c
> +++ b/arch/arm/mach-pxa/vpac270.c
> @@ -25,6 +25,7 @@
>  #include <linux/dm9000.h>
>  #include <linux/ucb1400.h>
>  #include <linux/ata_platform.h>
> +#include <linux/regulator/max1586.h>
>
>  #include <asm/mach-types.h>
>  #include <asm/mach/arch.h>
> @@ -464,7 +465,6 @@ static struct i2c_board_info __initdata vpac270_i2c_devs[] = {
>
>  static void __init vpac270_rtc_init(void)
>  {
> -       pxa_set_i2c_info(NULL);
>        i2c_register_board_info(0, ARRAY_AND_SIZE(vpac270_i2c_devs));
>  }
>  #else
> @@ -538,7 +538,8 @@ static inline void vpac270_lcd_init(void) {}
>  /******************************************************************************
>  * PATA IDE
>  ******************************************************************************/
> -#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
> +#if defined(CONFIG_PATA_PLATFORM) || \
> +       defined(CONFIG_PATA_PLATFORM_MODULE)
>  static struct pata_platform_info vpac270_pata_pdata = {
>        .ioport_shift   = 1,
>        .irq_flags      = IRQF_TRIGGER_RISING,
> @@ -580,6 +581,59 @@ static inline void vpac270_ide_init(void) {}
>  #endif
>
>  /******************************************************************************
> + * Core power regulator
> + ******************************************************************************/
> +#if defined(CONFIG_REGULATOR_MAX1586) || \
> +       defined(CONFIG_REGULATOR_MAX1586_MODULE)
> +static struct regulator_consumer_supply vpac270_max1587a_consumers[] = {
> +       {
> +               .supply = "vcc_core",
> +       }
> +};
> +
> +static struct regulator_init_data vpac270_max1587a_v3_info = {
> +       .constraints = {
> +               .name           = "vcc_core range",
> +               .min_uV         = 900000,
> +               .max_uV         = 1705000,
> +               .always_on      = 1,
> +               .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
> +       },
> +       .consumer_supplies      = vpac270_max1587a_consumers,
> +       .num_consumer_supplies  = ARRAY_SIZE(vpac270_max1587a_consumers),
> +};
> +
> +static struct max1586_subdev_data vpac270_max1587a_subdevs[] = {
> +       {
> +               .name           = "vcc_core",
> +               .id             = MAX1586_V3,
> +               .platform_data  = &vpac270_max1587a_v3_info,
> +       }
> +};
> +
> +static struct max1586_platform_data vpac270_max1587a_info = {
> +       .subdevs     = vpac270_max1587a_subdevs,
> +       .num_subdevs = ARRAY_SIZE(vpac270_max1587a_subdevs),
> +       .v3_gain     = MAX1586_GAIN_R24_3k32, /* 730..1550 mV */
> +};
> +
> +static struct i2c_board_info __initdata vpac270_pi2c_board_info[] = {
> +       {
> +               I2C_BOARD_INFO("max1586", 0x14),
> +               .platform_data  = &vpac270_max1587a_info,
> +       },
> +};
> +
> +static void __init vpac270_pmic_init(void)
> +{
> +       i2c_register_board_info(1, ARRAY_AND_SIZE(vpac270_pi2c_board_info));
> +}
> +#else
> +static inline void vpac270_pmic_init(void) {}
> +#endif
> +
> +
> +/******************************************************************************
>  * Machine init
>  ******************************************************************************/
>  static void __init vpac270_init(void)
> @@ -589,7 +643,10 @@ static void __init vpac270_init(void)
>        pxa_set_ffuart_info(NULL);
>        pxa_set_btuart_info(NULL);
>        pxa_set_stuart_info(NULL);
> +       pxa_set_i2c_info(NULL);
> +       pxa27x_set_i2c_power_info(NULL);
>
> +       vpac270_pmic_init();
>        vpac270_lcd_init();
>        vpac270_mmc_init();
>        vpac270_nor_init();
> --
> 1.7.0
>
>



More information about the linux-arm-kernel mailing list