From 4b4674fad140baf6a4434ff7afd384d7477e5d50 Mon Sep 17 00:00:00 2001 From: luowei Date: Wed, 27 Apr 2011 17:27:29 +0800 Subject: [PATCH] add wm831x shutdown support for phonesdk --- arch/arm/mach-rk29/board-rk29-phonesdk.c | 8 +++++--- drivers/mfd/wm831x-core.c | 10 ++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/arch/arm/mach-rk29/board-rk29-phonesdk.c b/arch/arm/mach-rk29/board-rk29-phonesdk.c index 45d2e65d435c..16d50e2b4a23 100755 --- a/arch/arm/mach-rk29/board-rk29-phonesdk.c +++ b/arch/arm/mach-rk29/board-rk29-phonesdk.c @@ -547,12 +547,12 @@ struct rk29_gpio_expander_info wm831x_gpio_settinginfo[] = { #if defined(CONFIG_MFD_WM831X) - +static struct wm831x *gWm831x; int wm831x_pre_init(struct wm831x *parm) { int ret; printk("%s\n", __FUNCTION__); - + gWm831x = parm; //ILIM = 900ma ret = wm831x_reg_read(parm, WM831X_POWER_STATE) & 0xffff; wm831x_reg_write(parm, WM831X_POWER_STATE, (ret&0xfff8) | 0x04); @@ -568,7 +568,6 @@ int wm831x_post_init(struct wm831x *parm) struct regulator *dcdc; struct regulator *ldo; - dcdc = regulator_get(NULL, "dcdc3"); // 1th IO regulator_set_voltage(dcdc,3000000,3000000); regulator_enable(dcdc); @@ -3030,6 +3029,9 @@ static void rk29_pm_power_off(void) { printk(KERN_ERR "rk29_pm_power_off start...\n"); gpio_direction_output(POWER_ON_PIN, GPIO_LOW); +#if defined(CONFIG_MFD_WM831X) + wm831x_device_shutdown(gWm831x); +#endif while (1); } diff --git a/drivers/mfd/wm831x-core.c b/drivers/mfd/wm831x-core.c index d7489cb71e89..0ce83bee2c84 100755 --- a/drivers/mfd/wm831x-core.c +++ b/drivers/mfd/wm831x-core.c @@ -1796,17 +1796,19 @@ int wm831x_device_shutdown(struct wm831x *wm831x) //goto err_irq; } } -#if 0 - if(0 == reboot_cmd_get()) + + //if(0 == reboot_cmd_get()) { if(wm831x_set_bits(wm831x, WM831X_POWER_STATE, WM831X_CHIP_ON_MASK, 0) < 0) printk("%s wm831x_set_bits err\n", __FUNCTION__); - printk("post WM831X_POWER_STATE = 0x%x\n", wm831x_reg_read(wm831x, WM831X_POWER_STATE)); + //printk("post WM831X_POWER_STATE = 0x%x\n", wm831x_reg_read(wm831x, WM831X_POWER_STATE)); } -#endif + return 0; } +EXPORT_SYMBOL_GPL(wm831x_device_shutdown); + MODULE_DESCRIPTION("Core support for the WM831X AudioPlus PMIC"); MODULE_LICENSE("GPL"); MODULE_AUTHOR("Mark Brown"); -- 2.34.1