diff mbox

ARM: S3C64XX: Hook up GPIO initiated DVS on Cragganmore

Message ID 1311627177-26388-1-git-send-email-broonie@opensource.wolfsonmicro.com (mailing list archive)
State New, archived
Headers show

Commit Message

Mark Brown July 25, 2011, 8:52 p.m. UTC
Allow us to ramp VDDARM quickly by using a GPIO to signal a voltage change
instead of doing a register write.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
---
 arch/arm/mach-s3c64xx/mach-crag6410.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

Comments

Kim Kukjin Aug. 12, 2011, 9:19 a.m. UTC | #1
Mark Brown wrote:
> 
> Allow us to ramp VDDARM quickly by using a GPIO to signal a voltage change
> instead of doing a register write.
> 
> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
> ---
>  arch/arm/mach-s3c64xx/mach-crag6410.c |    9 +++++++++
>  1 files changed, 9 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-
> s3c64xx/mach-crag6410.c
> index d59afa1..2005d5f 100644
> --- a/arch/arm/mach-s3c64xx/mach-crag6410.c
> +++ b/arch/arm/mach-s3c64xx/mach-crag6410.c
> @@ -376,6 +376,12 @@ static struct pca953x_platform_data crag6410_pca_data
> = {
>  	.irq_base	= 0,
>  };
> 
> +/* VDDARM is controlled by DVS1 connected to GPK(0) */
> +static struct wm831x_buckv_pdata vddarm_pdata = {
> +	.dvs_control_src = 1,
> +	.dvs_gpio = S3C64XX_GPK(0),
> +};
> +
>  static struct regulator_consumer_supply vddarm_consumers[] __initdata = {
>  	REGULATOR_SUPPLY("vddarm", NULL),
>  };
> @@ -391,6 +397,7 @@ static struct regulator_init_data vddarm __initdata =
{
>  	.num_consumer_supplies = ARRAY_SIZE(vddarm_consumers),
>  	.consumer_supplies = vddarm_consumers,
>  	.supply_regulator = "WALLVDD",
> +	.driver_data = &vddarm_pdata,
>  };
> 
>  static struct regulator_init_data vddint __initdata = {
> @@ -526,6 +533,8 @@ static struct wm831x_pdata crag_pmic_pdata __initdata
=
> {
>  	.backup = &banff_backup_pdata,
> 
>  	.gpio_defaults = {
> +		/* GPIO5: DVS1_REQ - CMOS, DBVDD, active high */
> +		[4] = WM831X_GPN_DIR | WM831X_GPN_POL |
> WM831X_GPN_ENA | 0x8,
>  		/* GPIO11: Touchscreen data - CMOS, DBVDD, active high*/
>  		[10] = WM831X_GPN_POL | WM831X_GPN_ENA | 0x6,
>  		/* GPIO12: Touchscreen pen down - CMOS, DBVDD, active
> high*/
> --
> 1.7.5.4

Applied, thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
diff mbox

Patch

diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-s3c64xx/mach-crag6410.c
index d59afa1..2005d5f 100644
--- a/arch/arm/mach-s3c64xx/mach-crag6410.c
+++ b/arch/arm/mach-s3c64xx/mach-crag6410.c
@@ -376,6 +376,12 @@  static struct pca953x_platform_data crag6410_pca_data = {
 	.irq_base	= 0,
 };
 
+/* VDDARM is controlled by DVS1 connected to GPK(0) */
+static struct wm831x_buckv_pdata vddarm_pdata = {
+	.dvs_control_src = 1,
+	.dvs_gpio = S3C64XX_GPK(0),
+};
+
 static struct regulator_consumer_supply vddarm_consumers[] __initdata = {
 	REGULATOR_SUPPLY("vddarm", NULL),
 };
@@ -391,6 +397,7 @@  static struct regulator_init_data vddarm __initdata = {
 	.num_consumer_supplies = ARRAY_SIZE(vddarm_consumers),
 	.consumer_supplies = vddarm_consumers,
 	.supply_regulator = "WALLVDD",
+	.driver_data = &vddarm_pdata,
 };
 
 static struct regulator_init_data vddint __initdata = {
@@ -526,6 +533,8 @@  static struct wm831x_pdata crag_pmic_pdata __initdata = {
 	.backup = &banff_backup_pdata,
 
 	.gpio_defaults = {
+		/* GPIO5: DVS1_REQ - CMOS, DBVDD, active high */
+		[4] = WM831X_GPN_DIR | WM831X_GPN_POL | WM831X_GPN_ENA | 0x8,
 		/* GPIO11: Touchscreen data - CMOS, DBVDD, active high*/
 		[10] = WM831X_GPN_POL | WM831X_GPN_ENA | 0x6,
 		/* GPIO12: Touchscreen pen down - CMOS, DBVDD, active high*/