#
# 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
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
# 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
#
# 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
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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
#
# Non-8250 serial port support
#
+# CONFIG_SERIAL_MAX3100 is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_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
# 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:
#
# SPI GPIO expanders:
#
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
#
# AC97 GPIO expanders:
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
#
# 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
# 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
# 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
#
# 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
# 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
#
# 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
# 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
# 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
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
# 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
#
# 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
#
# 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
# 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
# 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
}
-
-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;
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) {
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);
//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",
.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 = {