1.add soft reset for phonesdk and A22.
authorroot <root@lw.(none)>
Thu, 16 Jun 2011 17:07:07 +0000 (01:07 +0800)
committerroot <root@lw.(none)>
Thu, 16 Jun 2011 17:07:07 +0000 (01:07 +0800)
2.add charge display config for phonesdk.

arch/arm/configs/rk29_phonesdk_defconfig [changed mode: 0755->0644]
arch/arm/mach-rk29/board-rk29-a22.c [changed mode: 0644->0755]
arch/arm/mach-rk29/board-rk29-phonesdk.c
drivers/regulator/wm831x-ldo.c

old mode 100755 (executable)
new mode 100644 (file)
index 147d705..c3abcff
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.32.27
-# Fri May  6 11:36:42 2011
+# Fri Jun 17 00:55:13 2011
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -52,11 +52,6 @@ CONFIG_RCU_FANOUT=32
 # CONFIG_TREE_RCU_TRACE is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_LOG_BUF_SHIFT=17
-CONFIG_GROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-CONFIG_RT_GROUP_SCHED=y
-# CONFIG_USER_SCHED is not set
-CONFIG_CGROUP_SCHED=y
 CONFIG_CGROUPS=y
 CONFIG_CGROUP_DEBUG=y
 # CONFIG_CGROUP_NS is not set
@@ -66,6 +61,9 @@ CONFIG_CGROUP_FREEZER=y
 CONFIG_CGROUP_CPUACCT=y
 CONFIG_RESOURCE_COUNTERS=y
 # CONFIG_CGROUP_MEM_RES_CTLR is not set
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_RT_GROUP_SCHED=y
 # CONFIG_SYSFS_DEPRECATED_V2 is not set
 # CONFIG_RELAY is not set
 # CONFIG_NAMESPACES is not set
@@ -204,6 +202,7 @@ CONFIG_WIFI_CONTROL_FUNC=y
 # CONFIG_MACH_RK29_MALATA is not set
 CONFIG_MACH_RK29_PHONESDK=y
 # CONFIG_MACH_RK29_A22 is not set
+# CONFIG_MACH_RK29_PHONEPADSDK is not set
 # CONFIG_DDR_TYPE_DDRII is not set
 CONFIG_DDR_TYPE_LPDDR=y
 # CONFIG_DDR_TYPE_DDR3_800D is not set
@@ -237,6 +236,12 @@ CONFIG_DDR_SDRAM_FREQ=192
 CONFIG_RK29_VPU=y
 # CONFIG_RK29_VPU_DEBUG is not set
 CONFIG_RK29_JTAG=y
+CONFIG_RK29_LAST_LOG=y
+
+#
+# The control interface support for RK29 suspend 
+#
+# CONFIG_RK29_SPI_INSRAM is not set
 
 #
 # Processor Type
@@ -595,7 +600,6 @@ CONFIG_MTD_NAND_IDS=y
 # CONFIG_MTD_NAND is not set
 CONFIG_MTD_RKNAND=y
 CONFIG_MTD_NAND_RK29XX=y
-CONFIG_RKFTL_PAGECACHE_SIZE=64
 CONFIG_MTD_RKNAND_BUFFER=y
 # CONFIG_MTD_NAND_RK29XX_DEBUG is not set
 # CONFIG_MTD_ONENAND is not set
@@ -633,6 +637,7 @@ CONFIG_APANIC_PLABEL="kpanic"
 # CONFIG_STE is not set
 CONFIG_MTK23D=y
 # CONFIG_FM580X is not set
+# CONFIG_MU509 is not set
 # CONFIG_C2PORT is not set
 
 #
@@ -891,6 +896,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
 # CONFIG_EETI_EGALAX is not set
 # CONFIG_TOUCHSCREEN_IT7260 is not set
 CONFIG_TOUCHSCREEN_GT801_IIC=y
+# CONFIG_D70_L3188A is not set
 CONFIG_INPUT_MISC=y
 # CONFIG_INPUT_LPSENSOR_ISL29028 is not set
 # CONFIG_INPUT_LPSENSOR_CM3602 is not set
@@ -976,9 +982,17 @@ CONFIG_I2C_RK29=y
 # Now, there are four I2C interfaces selected by developer.
 #
 CONFIG_I2C0_RK29=y
+CONFIG_RK29_I2C0_CONTROLLER=y
+# CONFIG_RK29_I2C0_GPIO is not set
 CONFIG_I2C1_RK29=y
+CONFIG_RK29_I2C1_CONTROLLER=y
+# CONFIG_RK29_I2C1_GPIO is not set
 CONFIG_I2C2_RK29=y
+CONFIG_RK29_I2C2_CONTROLLER=y
+# CONFIG_RK29_I2C2_GPIO is not set
 CONFIG_I2C3_RK29=y
+CONFIG_RK29_I2C3_CONTROLLER=y
+# CONFIG_RK29_I2C3_GPIO is not set
 # CONFIG_I2C_DEV_RK29 is not set
 
 #
@@ -1068,6 +1082,7 @@ CONFIG_POWER_SUPPLY=y
 # CONFIG_PDA_POWER is not set
 CONFIG_WM831X_BACKUP=y
 CONFIG_WM831X_POWER=y
+CONFIG_WM831X_CHARGER_DISPLAY=y
 # CONFIG_BATTERY_DS2760 is not set
 # CONFIG_BATTERY_DS2782 is not set
 # CONFIG_BATTERY_BQ27x00 is not set
@@ -1172,6 +1187,7 @@ CONFIG_SOC_CAMERA=y
 # CONFIG_SOC_CAMERA_MT9M111 is not set
 # CONFIG_SOC_CAMERA_MT9M112 is not set
 # CONFIG_SOC_CAMERA_MT9T031 is not set
+# CONFIG_SOC_CAMERA_MT9T111 is not set
 # CONFIG_SOC_CAMERA_MT9P111 is not set
 # CONFIG_SOC_CAMERA_MT9D112 is not set
 # CONFIG_SOC_CAMERA_MT9D113 is not set
@@ -1316,6 +1332,7 @@ CONFIG_BACKLIGHT_WM831X=y
 # CONFIG_BACKLIGHT_RK29_BL is not set
 # CONFIG_FIH_TOUCHKEY_LED is not set
 # CONFIG_BACKLIGHT_AW9364 is not set
+# CONFIG_BUTTON_LIGHT is not set
 
 #
 # Display device support
@@ -1333,6 +1350,7 @@ CONFIG_DISPLAY_SUPPORT=y
 # CONFIG_LCD_HSD070IDW1 is not set
 # CONFIG_LCD_RGB_TFT480800_25_E is not set
 # CONFIG_LCD_HSD100PXN is not set
+# CONFIG_LCD_HSD07PFW1 is not set
 # CONFIG_LCD_B101AW06 is not set
 CONFIG_LCD_LS035Y8DX02A=y
 # CONFIG_LCD_CPTCLAA038LA31XE is not set
@@ -1342,6 +1360,7 @@ CONFIG_LCD_LS035Y8DX02A=y
 # CONFIG_LCD_NT35580 is not set
 # CONFIG_LCD_IPS1P5680_V1_E is not set
 # CONFIG_LCD_MCU_TFT480800_25_E is not set
+# CONFIG_LCD_NT35510 is not set
 # CONFIG_LCD_ILI9803_CPT4_3 is not set
 # CONFIG_DEFAULT_OUT_HDMI is not set
 # CONFIG_LCD_AT070TNA2 is not set
@@ -1361,6 +1380,7 @@ CONFIG_LOGO=y
 # CONFIG_LOGO_LINUX_MONO is not set
 # CONFIG_LOGO_LINUX_VGA16 is not set
 CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_LOGO_CHARGER_CLUT224=y
 CONFIG_SOUND=y
 # CONFIG_SOUND_OSS_CORE is not set
 CONFIG_SND=y
@@ -1394,6 +1414,7 @@ CONFIG_SND_RK29_SOC_I2S_8CH=y
 # CONFIG_SND_RK29_SOC_WM8900 is not set
 # CONFIG_SND_RK29_SOC_alc5621 is not set
 # CONFIG_SND_RK29_SOC_alc5631 is not set
+# CONFIG_SND_RK29_SOC_RT5625 is not set
 CONFIG_SND_RK29_SOC_WM8994=y
 # CONFIG_SND_RK29_CODEC_SOC_MASTER is not set
 CONFIG_SND_RK29_CODEC_SOC_SLAVE=y
@@ -1602,6 +1623,7 @@ CONFIG_USB11_HOST_EN=y
 CONFIG_USB20_OTG=y
 # CONFIG_DWC_OTG_HOST_ONLY is not set
 CONFIG_DWC_OTG_DEVICE_ONLY=y
+# CONFIG_DWC_OTG_BOTH_HOST_SLAVE is not set
 CONFIG_DWC_CONN_EN=y
 # CONFIG_DWC_OTG_DEBUG is not set
 CONFIG_DWC_OTG=y
@@ -1793,6 +1815,7 @@ CONFIG_RK29_IPP=y
 # CMMB
 #
 # CONFIG_CMMB is not set
+# CONFIG_TEST_CODE is not set
 
 #
 # File systems
old mode 100644 (file)
new mode 100755 (executable)
index ee0e319..d0f4d02
@@ -758,8 +758,50 @@ EXPORT_SYMBOL_GPL(pmu_wm831x_set_resume_voltage);
 
 int wm831x_last_deinit(struct wm831x *parm)
 {
+       struct regulator* ldo;
+
        printk("%s\n", __FUNCTION__);
 
+       ldo = regulator_get(NULL, "ldo1");
+       regulator_disable(ldo);                 
+       regulator_put(ldo);
+       
+       ldo = regulator_get(NULL, "ldo2");
+       regulator_disable(ldo);                 
+       regulator_put(ldo);
+       
+       ldo = regulator_get(NULL, "ldo3");
+       regulator_disable(ldo);                 
+       regulator_put(ldo);
+       
+       ldo = regulator_get(NULL, "ldo4");
+       //regulator_disable(ldo);       
+       regulator_put(ldo);
+
+       ldo = regulator_get(NULL, "ldo5");
+       regulator_disable(ldo);                 
+       regulator_put(ldo);
+
+       ldo = regulator_get(NULL, "ldo6");
+       regulator_disable(ldo);                 
+       regulator_put(ldo);
+
+       ldo = regulator_get(NULL, "ldo7");
+       regulator_disable(ldo);                 
+       regulator_put(ldo);
+
+       ldo = regulator_get(NULL, "ldo8");
+       //regulator_disable(ldo);                       
+       regulator_put(ldo);
+
+       ldo = regulator_get(NULL, "ldo9");
+       regulator_disable(ldo);                 
+       regulator_put(ldo);
+
+       ldo = regulator_get(NULL, "ldo10");
+       regulator_disable(ldo);                                         
+       regulator_put(ldo);
+
        return 0;
 }
 
@@ -3026,7 +3068,7 @@ static void __init machine_rk29_board_init(void)
        gpio_set_value(POWER_ON_PIN, GPIO_HIGH);
        gpio_direction_output(POWER_ON_PIN, GPIO_HIGH);
        pm_power_off = rk29_pm_power_off;
-       arm_pm_restart = rk29_pm_power_restart;
+       //arm_pm_restart = rk29_pm_power_restart;
 
        platform_add_devices(devices, ARRAY_SIZE(devices));
 #ifdef CONFIG_I2C0_RK29
index e25a2f68ed44bfe216627f23601d13bcc55fc4eb..c02533b34dd2be1f8a519e02f452fa48427cac42 100755 (executable)
@@ -811,8 +811,50 @@ EXPORT_SYMBOL_GPL(pmu_wm831x_set_resume_voltage);
 
 int wm831x_last_deinit(struct wm831x *parm)
 {
+       struct regulator* ldo;
+
        printk("%s\n", __FUNCTION__);
 
+       ldo = regulator_get(NULL, "ldo1");
+       regulator_disable(ldo);                 
+       regulator_put(ldo);
+       
+       ldo = regulator_get(NULL, "ldo2");
+       regulator_disable(ldo);                 
+       regulator_put(ldo);
+       
+       ldo = regulator_get(NULL, "ldo3");
+       regulator_disable(ldo);                 
+       regulator_put(ldo);
+       
+       ldo = regulator_get(NULL, "ldo4");
+       //regulator_disable(ldo);       
+       regulator_put(ldo);
+
+       ldo = regulator_get(NULL, "ldo5");
+       regulator_disable(ldo);                 
+       regulator_put(ldo);
+
+       ldo = regulator_get(NULL, "ldo6");
+       regulator_disable(ldo);                 
+       regulator_put(ldo);
+
+       ldo = regulator_get(NULL, "ldo7");
+       regulator_disable(ldo);                 
+       regulator_put(ldo);
+
+       ldo = regulator_get(NULL, "ldo8");
+       //regulator_disable(ldo);                       
+       regulator_put(ldo);
+
+       ldo = regulator_get(NULL, "ldo9");
+       regulator_disable(ldo);                 
+       regulator_put(ldo);
+
+       ldo = regulator_get(NULL, "ldo10");
+       regulator_disable(ldo);                                         
+       regulator_put(ldo);
+
        return 0;
 }
 
@@ -2935,18 +2977,10 @@ static void __init machine_rk29_init_irq(void)
 }
 
 #define POWER_ON_PIN RK29_PIN4_PA4
-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);
-}
+
 static void rk29_pm_power_restart(void)
 {
-       printk("%s\n",__FUNCTION__);
+       printk("%s,line=%d\n",__FUNCTION__,__LINE__);
        mdelay(2);
 #if defined(CONFIG_MFD_WM831X)
        wm831x_device_restart(gWm831x);
@@ -2954,6 +2988,19 @@ static void rk29_pm_power_restart(void)
 
 }
 
+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)
+       if(wm831x_read_usb(gWm831x))
+       rk29_pm_power_restart();        //if charging then restart
+       else
+       wm831x_device_shutdown(gWm831x);//else shutdown
+#endif
+       while (1);
+}
+
 static void __init machine_rk29_board_init(void)
 {
        rk29_board_iomux_init();
@@ -2962,7 +3009,7 @@ static void __init machine_rk29_board_init(void)
        gpio_set_value(POWER_ON_PIN, GPIO_HIGH);
        gpio_direction_output(POWER_ON_PIN, GPIO_HIGH);
        pm_power_off = rk29_pm_power_off;
-       arm_pm_restart = rk29_pm_power_restart;
+       //arm_pm_restart = rk29_pm_power_restart;
 
        platform_add_devices(devices, ARRAY_SIZE(devices));
 #ifdef CONFIG_I2C0_RK29
index 6ebc657425534a167b2df6b9b369920b5385db06..30d5dbec260538350febc76fa3d0be4d49c5d500 100755 (executable)
@@ -833,6 +833,8 @@ static __devexit int wm831x_alive_ldo_remove(struct platform_device *pdev)
 static __devexit int wm831x_alive_ldo_shutdown(struct platform_device *pdev)   /*ZMF*/
 {
        //struct wm831x_ldo *ldo = platform_get_drvdata(pdev);
+#if 0
+       //close ldo in wm831x_last_deinit()
        struct regulator* ldo;
 
        //if (reboot_cmd_get())
@@ -878,7 +880,7 @@ static __devexit int wm831x_alive_ldo_shutdown(struct platform_device *pdev)        /*Z
        ldo = regulator_get(NULL, "ldo10");
        regulator_disable(ldo);                                         
        regulator_put(ldo);
-
+#endif
        return 0;
 }