add waking up system support for a22
authorluowei <lw@rock-chips.com>
Sun, 10 Apr 2011 11:55:26 +0000 (19:55 +0800)
committerluowei <lw@rock-chips.com>
Sun, 10 Apr 2011 11:55:26 +0000 (19:55 +0800)
arch/arm/configs/rk29_a22_defconfig
arch/arm/mach-rk29/board-rk29-a22.c
drivers/mfd/wm831x-spi-a22.c
drivers/video/display/screen/lcd_ili9803_cpt4_3.c

index a3709ab438384e2ad6271e522ced3c9c6a2a0656..574a6629b9f021aa6c8361a9276b14b16a4ad8fb 100755 (executable)
@@ -1,10 +1,11 @@
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.32.27
-# Fri Mar  4 11:17:59 2011
+# Sun Apr 10 18:01:55 2011
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_HAVE_SCHED_CLOCK=y
 CONFIG_GENERIC_GPIO=y
 CONFIG_GENERIC_TIME=y
 CONFIG_GENERIC_CLOCKEVENTS=y
@@ -197,13 +198,38 @@ CONFIG_MMU=y
 CONFIG_ARCH_RK29=y
 CONFIG_WIFI_CONTROL_FUNC=y
 # CONFIG_MACH_RK29SDK is not set
+# CONFIG_MACH_RK29SDK_DDR3 is not set
 # CONFIG_MACH_RK29WINACCORD is not set
 # CONFIG_MACH_RK29FIH is not set
 # CONFIG_MACH_RK29_AIGO is not set
 # CONFIG_MACH_RK29_MALATA is not set
 # CONFIG_MACH_RK29_PHONESDK is not set
 CONFIG_MACH_RK29_A22=y
+# CONFIG_DDR_TYPE_DDRII is not set
+# CONFIG_DDR_TYPE_DDR3_800D is not set
+# CONFIG_DDR_TYPE_DDR3_800E is not set
+# CONFIG_DDR_TYPE_DDR3_1066E is not set
+# CONFIG_DDR_TYPE_DDR3_1066F is not set
+# CONFIG_DDR_TYPE_DDR3_1066G is not set
+# CONFIG_DDR_TYPE_DDR3_1333F is not set
+# CONFIG_DDR_TYPE_DDR3_1333G is not set
+# CONFIG_DDR_TYPE_DDR3_1333H is not set
+# CONFIG_DDR_TYPE_DDR3_1333J is not set
+# CONFIG_DDR_TYPE_DDR3_1600G is not set
+# CONFIG_DDR_TYPE_DDR3_1600H is not set
+# CONFIG_DDR_TYPE_DDR3_1600J is not set
+# CONFIG_DDR_TYPE_DDR3_1600K is not set
+# CONFIG_DDR_TYPE_DDR3_1866J is not set
+# CONFIG_DDR_TYPE_DDR3_1866K is not set
+# CONFIG_DDR_TYPE_DDR3_1866L is not set
+# CONFIG_DDR_TYPE_DDR3_1866M is not set
+# CONFIG_DDR_TYPE_DDR3_2133K is not set
+# CONFIG_DDR_TYPE_DDR3_2133L is not set
+# CONFIG_DDR_TYPE_DDR3_2133M is not set
+# CONFIG_DDR_TYPE_DDR3_2133N is not set
+CONFIG_DDR_TYPE_DDR3_DEFAULT=y
 CONFIG_RK29_MEM_SIZE_M=512
+CONFIG_DDR_SDRAM_FREQ=200
 
 #
 # RK29 VPU (Video Processing Unit) support
@@ -456,6 +482,8 @@ CONFIG_BT_HCIUART_H4=y
 # CONFIG_BT_HCIVHCI is not set
 # CONFIG_BT_MRVL is not set
 CONFIG_BT_HCIBCM4325=y
+CONFIG_IDBLOCK=y
+# CONFIG_WIFI_MAC is not set
 # CONFIG_AF_RXRPC is not set
 CONFIG_WIRELESS=y
 # CONFIG_CFG80211 is not set
@@ -548,6 +576,9 @@ CONFIG_MTD_CFI_I2=y
 #
 # Self-contained MTD device drivers
 #
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SST25L is not set
 # CONFIG_MTD_SLRAM is not set
 # CONFIG_MTD_PHRAM is not set
 # CONFIG_MTD_MTDRAM is not set
@@ -599,12 +630,14 @@ CONFIG_ANDROID_PMEM=y
 CONFIG_APANIC=y
 CONFIG_APANIC_PLABEL="kpanic"
 # CONFIG_STE is not set
+# CONFIG_MTK23D is not set
 # CONFIG_C2PORT is not set
 
 #
 # EEPROM support
 #
 # CONFIG_EEPROM_AT24 is not set
+# CONFIG_EEPROM_AT25 is not set
 # CONFIG_EEPROM_LEGACY is not set
 # CONFIG_EEPROM_MAX6875 is not set
 # CONFIG_EEPROM_93CX6 is not set
@@ -705,6 +738,7 @@ CONFIG_MII=y
 # CONFIG_RK29_VMAC is not set
 # CONFIG_SMC91X is not set
 # CONFIG_DM9000 is not set
+# CONFIG_ENC28J60 is not set
 # CONFIG_ETHOC is not set
 # CONFIG_SMC911X is not set
 # CONFIG_SMSC911X is not set
@@ -718,6 +752,7 @@ CONFIG_MII=y
 # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
 # CONFIG_B44 is not set
 # CONFIG_KS8842 is not set
+# CONFIG_KS8851 is not set
 # CONFIG_KS8851_MLL is not set
 # CONFIG_NETDEV_1000 is not set
 # CONFIG_NETDEV_10000 is not set
@@ -726,6 +761,7 @@ CONFIG_WLAN_80211=y
 # CONFIG_WIFI_NONE is not set
 CONFIG_BCM4329=y
 # CONFIG_MV8686 is not set
+# CONFIG_BCM4319 is not set
 
 #
 # Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -741,8 +777,20 @@ CONFIG_BCM4329=y
 # CONFIG_USB_USBNET is not set
 # CONFIG_USB_HSO is not set
 # CONFIG_WAN is not set
-# CONFIG_PPP is not set
+CONFIG_PPP=y
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=y
+CONFIG_PPP_SYNC_TTY=y
+CONFIG_PPP_DEFLATE=y
+CONFIG_PPP_BSDCOMP=y
+# CONFIG_PPP_MPPE is not set
+# CONFIG_PPPOE is not set
+# CONFIG_PPPOL2TP is not set
+# CONFIG_PPPOLAC is not set
+# CONFIG_PPPOPNS is not set
 # CONFIG_SLIP is not set
+CONFIG_SLHC=y
 # CONFIG_NETCONSOLE is not set
 # CONFIG_NETPOLL is not set
 # CONFIG_NET_POLL_CONTROLLER is not set
@@ -788,9 +836,13 @@ CONFIG_KEYS_RK29=y
 # CONFIG_INPUT_JOYSTICK is not set
 # CONFIG_INPUT_TABLET is not set
 CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_XPT2046_SPI is not set
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+# CONFIG_TOUCHSCREEN_AD7877 is not set
 CONFIG_TOUCHSCREEN_ILI2102_IIC=y
 # CONFIG_TOUCHSCREEN_IT7250 is not set
 # CONFIG_TOUCHSCREEN_AD7879_I2C is not set
+# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
 # CONFIG_TOUCHSCREEN_AD7879 is not set
 # CONFIG_TOUCHSCREEN_EETI is not set
 # CONFIG_TOUCHSCREEN_FUJITSU is not set
@@ -812,10 +864,7 @@ CONFIG_TOUCHSCREEN_ILI2102_IIC=y
 # CONFIG_HANNSTAR_P1003 is not set
 # CONFIG_ATMEL_MXT224 is not set
 # CONFIG_SINTEK_3FA16 is not set
-CONFIG_EETI_EGALAX=y
-CONFIG_EETI_EGALAX_MAX_X=1087
-CONFIG_EETI_EGALAX_MAX_Y=800
-# CONFIG_EETI_EGALAX_DEBUG is not set
+# CONFIG_EETI_EGALAX is not set
 # CONFIG_TOUCHSCREEN_IT7260 is not set
 # CONFIG_TOUCHSCREEN_GT801_IIC is not set
 CONFIG_INPUT_MISC=y
@@ -831,7 +880,12 @@ CONFIG_INPUT_LPSENSOR_ISL29028=y
 # CONFIG_INPUT_UINPUT is not set
 # CONFIG_INPUT_GPIO is not set
 # CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
-CONFIG_INPUT_WM831X_ON=y
+
+#
+# Magnetometer sensors
+#
+# CONFIG_COMPASS_AK8975 is not set
+# CONFIG_COMPASS_AK8973 is not set
 CONFIG_G_SENSOR_DEVICE=y
 # CONFIG_GS_MMA7660 is not set
 CONFIG_GS_MMA8452=y
@@ -863,6 +917,7 @@ CONFIG_DEVKMEM=y
 #
 # Non-8250 serial port support
 #
+# CONFIG_SERIAL_MAX3100 is not set
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_SERIAL_RK29=y
@@ -912,12 +967,29 @@ CONFIG_I2C3_RK29=y
 # CONFIG_I2C_DEBUG_ALGO is not set
 # CONFIG_I2C_DEBUG_BUS is not set
 # CONFIG_I2C_DEBUG_CHIP is not set
-# CONFIG_SPI is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_BITBANG is not set
+# CONFIG_SPI_GPIO is not set
+CONFIG_SPIM_RK29=y
+CONFIG_SPIM0_RK29=y
+CONFIG_SPIM1_RK29=y
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_TLE62X0 is not set
 CONFIG_ADC=y
 # CONFIG_ADC_RK28 is not set
 CONFIG_ADC_RK29=y
 # CONFIG_SPI_FPGA is not set
-# CONFIG_HEADSET_DET is not set
+CONFIG_HEADSET_DET=y
 
 #
 # PPS support
@@ -938,8 +1010,6 @@ CONFIG_GPIOLIB=y
 # CONFIG_GPIO_MAX732X is not set
 # CONFIG_GPIO_PCA953X is not set
 # CONFIG_GPIO_PCF857X is not set
-# CONFIG_GPIO_WM8994 is not set
-CONFIG_GPIO_WM831X=y
 
 #
 # PCI GPIO expanders:
@@ -948,6 +1018,9 @@ CONFIG_GPIO_WM831X=y
 #
 # SPI GPIO expanders:
 #
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
 
 #
 # AC97 GPIO expanders:
@@ -963,17 +1036,13 @@ CONFIG_SPI_FPGA_GPIO_IRQ_NUM=16
 CONFIG_POWER_SUPPLY=y
 # CONFIG_POWER_SUPPLY_DEBUG is not set
 # CONFIG_PDA_POWER is not set
-CONFIG_WM831X_BACKUP=y
-CONFIG_WM831X_POWER=y
 # CONFIG_BATTERY_DS2760 is not set
 # CONFIG_BATTERY_DS2782 is not set
 # CONFIG_BATTERY_BQ27x00 is not set
 # CONFIG_BATTERY_MAX17040 is not set
 # CONFIG_BATTERY_STC3100 is not set
-CONFIG_BATTERY_BQ27510=y
+# CONFIG_BATTERY_BQ27510 is not set
 # CONFIG_BATTERY_BQ3060 is not set
-# CONFIG_CHECK_BATT_CAPACITY is not set
-CONFIG_NO_BATTERY_IC=y
 # CONFIG_HWMON is not set
 # CONFIG_THERMAL is not set
 # CONFIG_WATCHDOG is not set
@@ -987,7 +1056,7 @@ CONFIG_SSB_POSSIBLE=y
 #
 # Multifunction device drivers
 #
-CONFIG_MFD_CORE=y
+# CONFIG_MFD_CORE is not set
 # CONFIG_MFD_SM501 is not set
 # CONFIG_MFD_ASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
@@ -1000,13 +1069,16 @@ CONFIG_MFD_CORE=y
 # CONFIG_MFD_TC6387XB is not set
 # CONFIG_MFD_TC6393XB is not set
 # CONFIG_PMIC_DA903X is not set
-CONFIG_MFD_WM8994=y
+# CONFIG_MFD_WM8994 is not set
 # CONFIG_MFD_WM8400 is not set
-CONFIG_MFD_WM831X=y
-CONFIG_MFD_WM831X_I2C=y
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM831X_SPI is not set
+CONFIG_MFD_WM831X_SPI_A22=y
 # CONFIG_MFD_WM8350_I2C is not set
 # CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_MC13783 is not set
 # CONFIG_AB3100_CORE is not set
+# CONFIG_EZX_PCAP is not set
 CONFIG_REGULATOR=y
 # CONFIG_REGULATOR_DEBUG is not set
 # CONFIG_REGULATOR_FIXED_VOLTAGE is not set
@@ -1014,14 +1086,12 @@ CONFIG_REGULATOR=y
 # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
 # CONFIG_REGULATOR_BQ24022 is not set
 # CONFIG_REGULATOR_MAX1586 is not set
-# CONFIG_REGULATOR_WM8994 is not set
-CONFIG_REGULATOR_WM831X=y
 # CONFIG_REGULATOR_LP3971 is not set
 # CONFIG_REGULATOR_TPS65023 is not set
 # CONFIG_REGULATOR_TPS6507X is not set
 # CONFIG_RK2818_REGULATOR_CHARGE is not set
 # CONFIG_RK2818_REGULATOR_LP8725 is not set
-CONFIG_RK29_PWM_REGULATOR=y
+# CONFIG_RK29_PWM_REGULATOR is not set
 CONFIG_MEDIA_SUPPORT=y
 
 #
@@ -1183,9 +1253,9 @@ CONFIG_FB_CFB_IMAGEBLIT=y
 # Frame buffer hardware drivers
 #
 # CONFIG_FB_S1D13XXX is not set
-# CONFIG_FB_TMIO is not set
 # CONFIG_FB_RK2818 is not set
 CONFIG_FB_RK29=y
+# CONFIG_FB_WORK_IPP is not set
 # CONFIG_FB_VIRTUAL is not set
 # CONFIG_FB_METRONOME is not set
 # CONFIG_FB_MB862XX is not set
@@ -1194,8 +1264,7 @@ CONFIG_BACKLIGHT_LCD_SUPPORT=y
 # CONFIG_LCD_CLASS_DEVICE is not set
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 # CONFIG_BACKLIGHT_GENERIC is not set
-CONFIG_BACKLIGHT_WM831X=y
-CONFIG_BACKLIGHT_RK29_BL=y
+# CONFIG_BACKLIGHT_RK29_BL is not set
 
 #
 # Display device support
@@ -1228,10 +1297,7 @@ CONFIG_LCD_ILI9803_CPT4_3=y
 #
 # HDMI support
 #
-CONFIG_HDMI=y
-CONFIG_ANX7150=y
-# CONFIG_ANX9030 is not set
-# CONFIG_HDMI_DEBUG is not set
+# CONFIG_HDMI is not set
 
 #
 # Console display driver support
@@ -1278,6 +1344,7 @@ CONFIG_SND_JACK=y
 # CONFIG_SND_EMU10K1_SEQ is not set
 # CONFIG_SND_DRIVERS is not set
 # CONFIG_SND_ARM is not set
+CONFIG_SND_SPI=y
 CONFIG_SND_USB=y
 # CONFIG_SND_USB_AUDIO is not set
 # CONFIG_SND_USB_CAIAQ is not set
@@ -1493,8 +1560,7 @@ CONFIG_USB_ANDROID_MASS_STORAGE=y
 # CONFIG_NOP_USB_XCEIV is not set
 CONFIG_USB11_HOST=y
 CONFIG_USB11_HOST_EN=y
-CONFIG_USB20_HOST=y
-CONFIG_USB20_HOST_EN=y
+# CONFIG_USB20_HOST is not set
 CONFIG_USB20_OTG=y
 # CONFIG_DWC_OTG_HOST_ONLY is not set
 CONFIG_DWC_OTG_DEVICE_ONLY=y
@@ -1503,7 +1569,7 @@ CONFIG_DWC_CONN_EN=y
 CONFIG_DWC_OTG=y
 CONFIG_MMC=y
 # CONFIG_MMC_DEBUG is not set
-# CONFIG_MMC_UNSAFE_RESUME is not set
+CONFIG_MMC_UNSAFE_RESUME=y
 CONFIG_MMC_EMBEDDED_SDIO=y
 # CONFIG_MMC_PARANOID_SD_INIT is not set
 
@@ -1530,6 +1596,7 @@ CONFIG_SDMMC1_RK29=y
 # CONFIG_MMC_SDHCI is not set
 # CONFIG_MMC_AT91 is not set
 # CONFIG_MMC_ATMELMCI is not set
+# CONFIG_MMC_SPI is not set
 # CONFIG_MEMSTICK is not set
 # CONFIG_NEW_LEDS is not set
 CONFIG_SWITCH=y
@@ -1555,7 +1622,7 @@ CONFIG_RTC_INTF_ALARM_DEV=y
 #
 # I2C RTC drivers
 #
-CONFIG_RTC_HYM8563=y
+# CONFIG_RTC_HYM8563 is not set
 # CONFIG_RTC_DRV_DS1307 is not set
 # CONFIG_RTC_DRV_DS1374 is not set
 # CONFIG_RTC_DRV_DS1672 is not set
@@ -1575,6 +1642,14 @@ CONFIG_RTC_HYM8563=y
 #
 # SPI RTC drivers
 #
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_DS3234 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
 
 #
 # Platform RTC drivers
@@ -1590,7 +1665,6 @@ CONFIG_RTC_HYM8563=y
 # CONFIG_RTC_DRV_M48T59 is not set
 # CONFIG_RTC_DRV_BQ4802 is not set
 # CONFIG_RTC_DRV_V3020 is not set
-CONFIG_RTC_DRV_WM831X=y
 
 #
 # on-CPU RTC drivers
@@ -2008,6 +2082,7 @@ CONFIG_CRC32=y
 # CONFIG_CRC7 is not set
 # CONFIG_LIBCRC32C is not set
 CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
 CONFIG_DECOMPRESS_GZIP=y
 CONFIG_REED_SOLOMON=y
 CONFIG_REED_SOLOMON_ENC8=y
index 14f12379f0fb549b495f4b64801fd6d77ba09958..c5f1005af32f88db4bcfd206582e900e1178cfd6 100755 (executable)
@@ -1279,7 +1279,7 @@ struct platform_device rk29_device_gps = {
  * wm8994  codec
  * author: qjb@rock-chips.com
  *****************************************************************************************/
-#if defined(CONFIG_MFD_WM8994)
+//#if defined(CONFIG_MFD_WM8994)
 #if defined (CONFIG_REGULATOR_WM8994)
 static struct regulator_consumer_supply wm8994_ldo1_consumers[] = {
        {
@@ -1383,7 +1383,7 @@ struct wm8994_pdata wm8994_platdata = {
        .jd_scthr = 0,
        .jd_thr = 0,
 };
-#endif 
+//#endif 
 
 #ifdef CONFIG_HEADSET_DET
 #define HEADSET_GPIO RK29_PIN4_PD2
@@ -1497,9 +1497,9 @@ static struct i2c_board_info __initdata board_i2c0_devices[] = {
                .type                   = "wm8994",
                .addr           = 0x1a,
                .flags                  = 0,
-       #if defined(CONFIG_MFD_WM8994)  
+//     #if defined(CONFIG_MFD_WM8994)  
                .platform_data  = &wm8994_platdata,     
-       #endif  
+//     #endif  
        },
 #endif
 #if defined (CONFIG_BATTERY_STC3100)
index 9e7d9cc0b67d5889137a061f06a1afb893ee40fc..cf624ccc74a268a7aaf754055bc66b6b895a1f77 100755 (executable)
@@ -532,76 +532,36 @@ static int wm831x_init(struct wm831x *wm831x)
        
 }
 
-
-struct wm831x_on {
-       struct input_dev *dev;
-       struct delayed_work work;
-       struct wm831x *wm831x;
-       struct wake_lock        wm831x_on_wake;
-};
-
-static struct wm831x_on *g_wm831x_on;
-
-void rk29_send_wakeup_key(void)
-{
-     
-       if(!g_wm831x_on)
-       {
-               printk("%s:addr err!\n",__FUNCTION__);
-               return;
-       }
-        input_report_key(g_wm831x_on->dev, KEY_POWER, 1);
-        input_sync(g_wm831x_on->dev);
-        input_report_key(g_wm831x_on->dev, KEY_POWER, 0);
-        input_sync(g_wm831x_on->dev);
-       //printk("%s\n", __FUNCTION__);
-}
-
+extern void rk28_send_wakeup_key(void);
+static int gNumInt = 0;
 
 static void wm831x_irq_worker(struct work_struct *work)
 {
        struct wm831x *wm831x = container_of(work, struct wm831x, irq_work);    
-       
        wm831x_reg_write(wm831x, WM831X_INTERRUPT_STATUS_1, 0xffff);//clear all intterupt
-       rk29_send_wakeup_key();
-       //enable_irq(wm831x->irq);      
+
+       if(++ gNumInt >= 2)
+       {
+               rk28_send_wakeup_key();
+               //wake_lock_timeout(&wm831x->irq_wake,msecs_to_jiffies(2000));
+               gNumInt = 0;
+       }
+       enable_irq(wm831x->irq);        
        wake_unlock(&wm831x->irq_wake);
-       printk("%s\n",__FUNCTION__);
+       //printk("%s,irq=%d\n",__FUNCTION__,wm831x->irq);
 }
 
 static irqreturn_t wm831x_irq_thread(int irq, void *data)
 {
        struct wm831x *wm831x = data;
 
-       //disable_irq_nosync(irq);
+       disable_irq_nosync(irq);
        wake_lock(&wm831x->irq_wake);
        queue_work(wm831x->irq_wq, &wm831x->irq_work);
 
        return IRQ_HANDLED;
 }
 
-static struct platform_driver wm831x_on_driver = {
-       .driver         = {
-               .name   = "wm831x-on",
-       },
-};
-
-static struct platform_device wm831x_on_device = {
-       .name           = "wm831x-on",
-       .id             = -1,
-       .dev = {
-               .driver = &wm831x_on_driver.driver,
-       }
-       
-};
-
-static inline void wm831x_on_init(void)
-{
-       if (platform_driver_register(&wm831x_on_driver) == 0)
-       (void) platform_device_register(&wm831x_on_device);
-}
-
-
 static int __devinit wm831x_spi_probe(struct spi_device *spi)
 {
        struct wm831x *wm831x;
@@ -655,38 +615,6 @@ static int __devinit wm831x_spi_probe(struct spi_device *spi)
        mutex_init(&wm831x->io_lock);
        
        wm831x_init(wm831x);
-       //wm831x_device_init(wm831x, type, irq);
-       
-       dev_set_drvdata(wm831x->dev, wm831x);
-       wm831x_on_init();
-
-       g_wm831x_on = kzalloc(sizeof(struct wm831x_on), GFP_KERNEL);
-       if (!g_wm831x_on) {
-               printk( "Can't allocate data\n");
-               return -ENOMEM;
-       }
-       
-       g_wm831x_on->wm831x = wm831x;
-       g_wm831x_on->dev = input_allocate_device();
-       if (!g_wm831x_on->dev) {
-               //dev_err(&wm831x->dev, "Can't allocate input dev\n");
-               return  -ENOMEM;
-       }
-
-       g_wm831x_on->dev->evbit[0] = BIT_MASK(EV_KEY);
-       g_wm831x_on->dev->keybit[BIT_WORD(KEY_POWER)] = BIT_MASK(KEY_POWER);
-       g_wm831x_on->dev->name = "wm831x_on";
-       g_wm831x_on->dev->phys = "wm831x_on/input0";
-#if 0
-       g_wm831x_on->dev->dev.parent = &wm831x_on_device.dev;
-       dev_err(&wm831x_on_device.dev, "%s\n", __FUNCTION__);
-       ret = input_register_device(g_wm831x_on->dev);
-       if (ret) {
-               printk( "Can't register input device: %d\n");
-               return  -ENOMEM;
-       }
-       
-#endif
        
        wm831x->irq_wq = create_singlethread_workqueue("wm831x-irq");
        if (!wm831x->irq_wq) {
@@ -698,14 +626,14 @@ static int __devinit wm831x_spi_probe(struct spi_device *spi)
        wake_lock_init(&wm831x->irq_wake, WAKE_LOCK_SUSPEND, "wm831x_irq_wake");
 
        ret = request_threaded_irq(irq, wm831x_irq_thread, NULL, 
-                                IRQF_TRIGGER_FALLING,
+                                IRQF_TRIGGER_LOW,
                                   "wm831x", wm831x);
        if (ret != 0) {
                dev_err(wm831x->dev, "Failed to request IRQ %d: %d\n",
                        wm831x->irq, ret);
                return ret;
        }
-
+       wm831x->irq = irq;
        enable_irq_wake(irq); // so wm831x irq can wake up system
        /* only support on intterupt */
        wm831x_reg_write(wm831x, WM831X_SYSTEM_INTERRUPTS_MASK, 0xefff);
@@ -731,6 +659,11 @@ static int wm831x_spi_suspend(struct spi_device *spi, pm_message_t m)
        //return wm831x_device_suspend(wm831x);
 }
 
+static int wm831x_spi_resume(struct spi_device *spi)
+{
+       return 0;
+}
+
 static struct spi_driver wm8310_spi_driver = {
        .driver = {
                .name   = "wm8310",
@@ -740,6 +673,7 @@ static struct spi_driver wm8310_spi_driver = {
        .probe          = wm831x_spi_probe,
        .remove         = __devexit_p(wm831x_spi_remove),
        .suspend        = wm831x_spi_suspend,
+       .resume = wm831x_spi_resume,
 };
 
 static struct spi_driver wm8311_spi_driver = {
index 1a39d29d04349b23140b687c69d85441cd88b8aa..f93ff48143e044df21cd8dbd7fde5b20ca260e6b 100755 (executable)
@@ -8,7 +8,7 @@
 \r
 /* Base */\r
 #define OUT_TYPE               SCREEN_RGB\r
-#define OUT_FACE               OUT_P666\r
+#define OUT_FACE               OUT_P888\r
 #define OUT_CLK                26*1000*1000    //***27\r
 #define LCDC_ACLK       150000000     //29 lcdc axi DMA Ƶ��           //rk29\r
 \r
@@ -196,7 +196,7 @@ void set_backlight(int brightness)
         gpio_direction_output(PIN_BL_SET,GPIO_HIGH);\r
        else\r
        gpio_direction_output(PIN_BL_SET,GPIO_LOW);     \r
-\r
+       printk("%s:brightness=%d\n",__FUNCTION__,brightness);\r
 }\r
 \r
 void WriteCommand( int  Command)\r
@@ -1380,7 +1380,11 @@ void init_nt35510(void)
        WriteParameter(0x00);\r
 \r
        WriteCommand(0X3a00); \r
-       WriteParameter(0x60);//WriteParameter(0x66);\r
+       \r
+if(OUT_FACE == OUT_P888)\r
+       WriteParameter(0x70);   //24bit\r
+else if(OUT_FACE == OUT_P666)\r
+       WriteParameter(0x60);//18bit\r
 \r
        WriteCommand(0X3600); \r
        WriteParameter(0x00);//R<->B\r
@@ -1427,30 +1431,26 @@ int init(void)
 int standby(u8 enable) //***enable =1 means suspend, 0 means resume \r
 {\r
        int i;\r
-       set_backlight(0);\r
-#if 0\r
+\r
     if(gLcd_info)\r
         gLcd_info->io_init();\r
 \r
        if(enable) {\r
-               spi_screenreg_cmd(0xB7);\r
-               spi_screenreg_param(0x0f);\r
+               WriteCommand(0X2800); \r
+               set_backlight(0);\r
+               mdelay(100);\r
+               WriteCommand(0X1000); \r
        } else { \r
-               CS_OUT() ;\r
-               for(i=0; i<6; i++)\r
-               {\r
-                       CS_SET();\r
-                       DRVDelayUs(1);\r
-                       CS_CLR();\r
-                       DRVDelayUs(1);\r
-                       CS_SET();\r
-                       mdelay(2);                      \r
-               }\r
+               WriteCommand(0X1100); \r
+               mdelay(120);\r
+               WriteCommand(0X2900); \r
+               mdelay(100);\r
+               set_backlight(255);\r
        }\r
 \r
     if(gLcd_info)\r
         gLcd_info->io_deinit();\r
-#endif\r
+\r
     return 0;\r
 }\r
 \r