linux/cybook.config:

* Use new epaper driver instead of qisda fb driver

linux/arch/arm/mach-s3c2416/orizon-devs.c:
	* Rename old cyio-dev.c

linux/arch/arm/mach-s3c2416/mach-cybook_orizon.c,
linux/arch/arm/mach-s3c2416/orizon-devs.c:
	+ Add support for new drivers in platform device list

linux/drivers/video/Makefile,
linux/drivers/video/Kconfig,
linux/drivers/video/epaper/*:
	+ Add new epaper driver for tcon (resolve #9)

linux/drivers/input/misc/orizon_tilt.c:
	+ Add new driver for the tilt sensor

linux/drivers/char/s3c-adc.c:
	- Remove bloated code (this code must be audited, see ticket #8)

linux/include/cybook.h:
	* Extend the CAPABILITY Field
This commit is contained in:
mlt
2010-04-27 19:56:15 +00:00
committed by Godzil
parent f2fd2aec61
commit a55a73c5d1
14 changed files with 1358 additions and 743 deletions

View File

@@ -546,432 +546,7 @@ static int s3c_adc_ioctl(struct inode *inode, struct file *file,
ret = put_user(data_mask, (unsigned long __user *)arg);
break;
case ADC_SET_PM_FUNCTION_POWER:
printk("ADC_SET_PM_FUNCTION_POWER\n");
#if defined(CONFIG_QISDA_AS090B00_EVT1_1) || defined(CONFIG_QISDA_AS090B00_EVT1) || defined(CONFIG_QISDA_QD060N00_DVT1_1) || defined(CONFIG_QISDA_QD090B00_EVT1)
if((arg & ADC_PM_DEBUG_PORT)==0){
printk("ADC_PM_DEBUG_PORT, 0\n");
s3c2410_gpio_cfgpin(S3C2410_GPB6, S3C2410_GPB6_OUTP);
s3c2410_gpio_setpin(S3C2410_GPB6, 0);
s3c2410_gpio_cfgpin(S3C2410_GPH0, S3C2410_GPH0_OUTP);
s3c2410_gpio_setpin(S3C2410_GPH0, 0);
s3c2410_gpio_cfgpin(S3C2410_GPH1, S3C2410_GPH1_OUTP);
s3c2410_gpio_setpin(S3C2410_GPH1, 0);
}
else if((arg & ADC_PM_DEBUG_PORT)==1){
printk("ADC_PM_DEBUG_PORT, 1\n");
s3c2410_gpio_cfgpin(S3C2410_GPB6, S3C2410_GPB6_OUTP);
s3c2410_gpio_setpin(S3C2410_GPB6, 0);
s3c2410_gpio_cfgpin(S3C2410_GPH0, S3C2410_GPH0_nCTS0);
s3c2410_gpio_cfgpin(S3C2410_GPH1, S3C2410_GPH1_nRTS0);
}
else if((arg & ADC_PM_DEBUG_PORT)==2){
printk("ADC_PM_DEBUG_PORT, 2 do special test\n");
}
else{
printk("ADC_PM_DEBUG_PORT, 3 do nothing\n");
}
//WIFI
if(((arg & ADC_PM_WIFI) >> 2)==0){
printk("ADC_PM_WIFI, 0\n");
/*
s3c2410_gpio_cfgpin(S3C2410_GPH12, S3C2410_GPH12_OUTP);
s3c2410_gpio_setpin(S3C2410_GPH12, 0);
writel(((readl(S3C2416_GPKCON) & ~(1<<13)) | (1<<12)), S3C2416_GPKCON);
writel(((readl(S3C2416_GPKDAT) | 0<<6)), S3C2416_GPKDAT);
writel(((readl(S3C2416_GPKCON) & ~(1<<11)) | (1<<10)), S3C2416_GPKCON);
writel(((readl(S3C2416_GPKDAT) | 0<<5)), S3C2416_GPKDAT);
//Signal
s3c2410_gpio_cfgpin(S3C2410_GPE11, S3C2410_GPE11_OUTP);
s3c2410_gpio_setpin(S3C2410_GPE11, 0);
s3c2410_gpio_cfgpin(S3C2410_GPE12, S3C2410_GPE12_OUTP);
s3c2410_gpio_setpin(S3C2410_GPE12, 0);
s3c2410_gpio_cfgpin(S3C2410_GPE13, S3C2410_GPE13_OUTP);
s3c2410_gpio_setpin(S3C2410_GPE13, 0);
s3c2410_gpio_cfgpin(S3C2410_GPF3, S3C2410_GPF3_OUTP);
s3c2410_gpio_setpin(S3C2410_GPF3, 0);
s3c2410_gpio_cfgpin(S3C2410_GPG4, S3C2410_GPG4_OUTP);
s3c2410_gpio_setpin(S3C2410_GPG4, 0);
s3c2410_gpio_cfgpin(S3C2410_GPD8, S3C2410_GPD8_OUTP);
s3c2410_gpio_setpin(S3C2410_GPD8, 0);
s3c2410_gpio_cfgpin(S3C2410_GPL13, S3C2410_GPL13_OUTP);
s3c2410_gpio_setpin(S3C2410_GPL13, 0);
*/
s3c2410_gpio_cfgpin(S3C2410_GPD8, S3C2410_GPD8_OUTP);
s3c2410_gpio_setpin(S3C2410_GPD8, 0);
msleep(100);
s3c2410_gpio_cfgpin(S3C2410_GPE11, S3C2410_GPE11_OUTP);
s3c2410_gpio_setpin(S3C2410_GPE11, 0);
s3c2410_gpio_cfgpin(S3C2410_GPE12, S3C2410_GPE12_OUTP);
s3c2410_gpio_setpin(S3C2410_GPE12, 0);
s3c2410_gpio_cfgpin(S3C2410_GPE13, S3C2410_GPE13_OUTP);
s3c2410_gpio_setpin(S3C2410_GPE13, 0);
s3c2410_gpio_cfgpin(S3C2410_GPF3, S3C2410_GPF3_OUTP);
s3c2410_gpio_setpin(S3C2410_GPF3, 0);
s3c2410_gpio_cfgpin(S3C2410_GPG4, S3C2410_GPG4_OUTP);
s3c2410_gpio_setpin(S3C2410_GPG4, 0);
writel(((readl(S3C2410_GPHCON) & ~(1<<25)) | (1<<24)), S3C2410_GPHCON); /* GPH12, 3.3V */
writel((readl(S3C2410_GPHDAT) & ~(1<<12)), S3C2410_GPHDAT);
writel(((readl(S3C2410_GPHUP) & ~(1<<25)) | (1<<24)), S3C2410_GPHUP);
msleep(100);
s3c2410_gpio_cfgpin(S3C2410_GPL13, S3C2410_GPL13_OUTP);
s3c2410_gpio_setpin(S3C2410_GPL13, 0);
writel(((readl(S3C2416_GPKCON) & ~(1<<13)) | (1<<12)), S3C2416_GPKCON);
writel((readl(S3C2416_GPKDAT) & ~(1<<6)), S3C2416_GPKDAT);
msleep(100);
writel(((readl(S3C2416_GPKCON) & ~(1<<11)) | (1<<10)), S3C2416_GPKCON);
writel((readl(S3C2416_GPKDAT) & ~(1<<5)), S3C2416_GPKDAT);
msleep(100);
}
else if(((arg & ADC_PM_WIFI) >> 2)==1){
printk("ADC_PM_WIFI, 1\n");
// Powering on wifi is via the script file
/*
//power
s3c2410_gpio_cfgpin(S3C2410_GPH12, S3C2410_GPH12_OUTP);
s3c2410_gpio_setpin(S3C2410_GPH12, 1);
writel(((readl(S3C2416_GPKCON) & ~(1<<13)) | (1<<12)), S3C2416_GPKCON);
writel(((readl(S3C2416_GPKDAT) | 1<<6)), S3C2416_GPKDAT);
writel(((readl(S3C2416_GPKCON) & ~(1<<11)) | (1<<10)), S3C2416_GPKCON);
writel(((readl(S3C2416_GPKDAT) | 1<<5)), S3C2416_GPKDAT);
//Signal
s3c2410_gpio_cfgpin(S3C2410_GPE11, S3C2410_GPE11_SPIMISO0);
s3c2410_gpio_cfgpin(S3C2410_GPE12, S3C2410_GPE12_SPIMOSI0);
s3c2410_gpio_cfgpin(S3C2410_GPE13, S3C2410_GPE13_SPICLK0);
s3c2410_gpio_cfgpin(S3C2410_GPF3, S3C2410_GPF3_EINT3);
s3c2410_gpio_cfgpin(S3C2410_GPG4, S3C2410_GPG4_EINT12);
s3c2410_gpio_cfgpin(S3C2410_GPD8, S3C2410_GPD8_OUTP);
s3c2410_gpio_setpin(S3C2410_GPD8, 1);
s3c2410_gpio_cfgpin(S3C2410_GPL13, S3C2410_GPL13_OUTP);
s3c2410_gpio_setpin(S3C2410_GPL13, 1);
*/
/*
s3c2410_gpio_setpin(S3C2410_GPH12, 1);
msleep(100);
s3c2410_gpio_setpin(S3C2410_GPIONO(S3C2416_GPIO_BANKK, 5), 1);
msleep(100);
s3c2410_gpio_setpin(S3C2410_GPIONO(S3C2416_GPIO_BANKK, 6), 1);
msleep(100);
s3c2410_gpio_setpin(S3C2410_GPD8, 1);
msleep(100);
s3c2410_gpio_setpin(S3C2410_GPD8, 0);
msleep(100);
s3c2410_gpio_setpin(S3C2410_GPD8, 1);
msleep(100);
*/
}
else if(((arg & ADC_PM_WIFI) >> 2)==2){
printk("ADC_PM_WIFI, 2 do special test\n");
}
else{
printk("ADC_PM_WIFI, 3 do nothing\n");
}
//Audio ok
if(((arg & ADC_PM_AUDIO) >> 4)==0){
printk("ADC_PM_AUDIO, 0\n");
s3c2410_gpio_cfgpin(S3C2410_GPB10, S3C2410_GPB10_OUTP);
s3c2410_gpio_setpin(S3C2410_GPB10, 0);
s3c2410_gpio_cfgpin(S3C2410_GPE0, S3C2410_GPE0_OUTP);
s3c2410_gpio_setpin(S3C2410_GPE0, 0);
s3c2410_gpio_cfgpin(S3C2410_GPE1, S3C2410_GPE1_OUTP);
s3c2410_gpio_setpin(S3C2410_GPE1, 0);
s3c2410_gpio_cfgpin(S3C2410_GPE2, S3C2410_GPE2_OUTP);
s3c2410_gpio_setpin(S3C2410_GPE2, 0);
s3c2410_gpio_cfgpin(S3C2410_GPE3, S3C2410_GPE3_OUTP);
s3c2410_gpio_setpin(S3C2410_GPE3, 0);
s3c2410_gpio_cfgpin(S3C2410_GPE4, S3C2410_GPE4_OUTP);
s3c2410_gpio_setpin(S3C2410_GPE4, 0);
s3c2410_gpio_cfgpin(S3C2410_GPF4, S3C2410_GPF4_OUTP);
s3c2410_gpio_setpin(S3C2410_GPF4, 0);
#ifdef CONFIG_QISDA_AS090B00_EVT1
s3c2410_gpio_cfgpin(S3C2410_GPG3, S3C2410_GPG3_OUTP);
s3c2410_gpio_setpin(S3C2410_GPG3, 0);
#endif
#if defined(CONFIG_QISDA_AS090B00_EVT1_1)|| defined (CONFIG_QISDA_QD090B00_EVT1) || defined(CONFIG_QISDA_QD060N00_DVT1_1)
s3c2410_gpio_cfgpin(S3C2410_GPA1, S3C2410_GPA1_OUT); //s02 ????S3C2410_GPA1_OUT
s3c2410_gpio_setpin(S3C2410_GPA1, 0);
#endif
}
else if(((arg & ADC_PM_AUDIO) >> 4)==1){
printk("ADC_PM_AUDIO, 1\n");
s3c2410_gpio_cfgpin(S3C2410_GPB10, S3C2410_GPB10_OUTP);
s3c2410_gpio_setpin(S3C2410_GPB10, 1);
s3c2410_gpio_cfgpin(S3C2410_GPE0, S3C2410_GPE0_I2SLRCK);
s3c2410_gpio_cfgpin(S3C2410_GPE1, S3C2410_GPE1_I2SSCLK);
s3c2410_gpio_cfgpin(S3C2410_GPE2, S3C2410_GPE2_CDCLK);
s3c2410_gpio_cfgpin(S3C2410_GPE3, S3C2410_GPE3_I2SSDI);
s3c2410_gpio_cfgpin(S3C2410_GPE4, S3C2410_GPE4_I2SSDO);
s3c2410_gpio_cfgpin(S3C2410_GPF4, S3C2410_GPF4_EINT4);
s3c2410_gpio_pullup(S3C2410_GPF4, 2);
#ifdef CONFIG_QISDA_AS090B00_EVT1
s3c2410_gpio_cfgpin(S3C2410_GPG3, S3C2410_GPG3_OUTP); //s01
s3c2410_gpio_setpin(S3C2410_GPG3, 1);
#endif
#if defined(CONFIG_QISDA_AS090B00_EVT1_1) || defined (CONFIG_QISDA_QD090B00_EVT1) || defined(CONFIG_QISDA_QD060N00_DVT1_1)
s3c2410_gpio_cfgpin(S3C2410_GPA1, S3C2410_GPA1_OUT); //s02 ????S3C2410_GPA1_OUT
s3c2410_gpio_setpin(S3C2410_GPA1, 1);
#endif
}
else if(((arg & ADC_PM_AUDIO) >> 4)==2){
printk("ADC_PM_AUDIO, 2 do special test\n");
}
else{
printk("ADC_PM_AUDIO, 3 do nothing\n");
}
//SD ok
if(((arg & ADC_PM_SD) >> 6)==0){
printk("ADC_PM_SD, 0\n");
s3c2410_gpio_cfgpin(S3C2410_GPG2, S3C2410_GPG2_OUTP);
s3c2410_gpio_setpin(S3C2410_GPG2, 0);
s3c2410_gpio_cfgpin(S3C2410_GPE5, S3C2410_GPE5_OUTP);
s3c2410_gpio_setpin(S3C2410_GPE5, 0);
s3c2410_gpio_cfgpin(S3C2410_GPE6, S3C2410_GPE6_OUTP);
s3c2410_gpio_setpin(S3C2410_GPE6, 0);
s3c2410_gpio_cfgpin(S3C2410_GPE7, S3C2410_GPE7_OUTP);
s3c2410_gpio_setpin(S3C2410_GPE7, 0);
s3c2410_gpio_cfgpin(S3C2410_GPE8, S3C2410_GPE8_OUTP);
s3c2410_gpio_setpin(S3C2410_GPE8, 0);
s3c2410_gpio_cfgpin(S3C2410_GPE9, S3C2410_GPE9_OUTP);
s3c2410_gpio_setpin(S3C2410_GPE9, 0);
s3c2410_gpio_cfgpin(S3C2410_GPE10, S3C2410_GPE10_OUTP);
s3c2410_gpio_setpin(S3C2410_GPE10, 0);
s3c2410_gpio_cfgpin(S3C2410_GPF1, S3C2410_GPF1_OUTP);
s3c2410_gpio_setpin(S3C2410_GPF1, 0);
}
else if(((arg & ADC_PM_SD) >> 6)==1){
printk("ADC_PM_SD, 1\n");
s3c2410_gpio_cfgpin(S3C2410_GPG2, S3C2410_GPG2_OUTP);
s3c2410_gpio_setpin(S3C2410_GPG2, 1);
s3c2410_gpio_cfgpin(S3C2410_GPE5, S3C2450_GPE5_SD0_CLK);
s3c2410_gpio_cfgpin(S3C2410_GPE6, S3C2450_GPE6_SD0_CMD);
s3c2410_gpio_cfgpin(S3C2410_GPE7, S3C2450_GPE7_SD0_DAT0);
s3c2410_gpio_cfgpin(S3C2410_GPE8, S3C2450_GPE8_SD0_DAT1);
s3c2410_gpio_cfgpin(S3C2410_GPE9, S3C2450_GPE9_SD0_DAT2);
s3c2410_gpio_cfgpin(S3C2410_GPE10, S3C2450_GPE10_SD0_DAT3);
s3c2410_gpio_cfgpin(S3C2410_GPF1, S3C2410_GPF1_EINT1);
s3c2410_gpio_setpin(S3C2410_GPF1, 0);
}
else if(((arg & ADC_PM_SD) >> 6)==2){
printk("ADC_PM_SD, 2 do special test\n");
}
else{
printk("ADC_PM_SD, 3 do nothing\n");
}
//TCON ivan interface ok
if(((arg & ADC_PM_TCON) >> 8)==0){
//power and signal
printk("ADC_PM_TCON, 0\n");
//AUO T-CON Standby
Epaper_Enter_Standby_Mode(1);
//AUO T-CON Sleep
Epaper_Enter_Sleep_Mode(1);
msleep(250);
//Shutdown T-CON Power
Epaper_Power(0);
//Shutdown i80 of s3c
EPaper_CloseLcdPort();
msleep(1000);
}
else if(((arg & ADC_PM_TCON) >> 8)==1){
//power and signal
printk("ADC_PM_TCON, 1\n");
Epaper_SetLcdPort();
msleep(100); //sleep for RST_N pull high
}
else if(((arg & ADC_PM_TCON) >> 8)==2){
printk("ADC_PM_TCON, 2 do special test\n");
}
else{
printk("ADC_PM_TCON, 3 do nothing\n");
}
//USB ok
if(((arg & ADC_PM_USB) >> 10)==0){
printk("ADC_PM_USB, 0\n");
s3c2410_gpio_cfgpin(S3C2410_GPD13, S3C2410_GPD13_OUTP);
s3c2410_gpio_setpin(S3C2410_GPD13, 0); /* usb power enbale */
s3c2410_gpio_cfgpin(S3C2443_GPH14, S3C2443_GPH14_OUTP);
s3c2410_gpio_setpin(S3C2443_GPH14, 0);
}
else if(((arg & ADC_PM_USB) >> 10)==1){
printk("ADC_PM_USB, 1\n");
s3c2410_gpio_cfgpin(S3C2410_GPD13, S3C2410_GPD13_OUTP);
s3c2410_gpio_setpin(S3C2410_GPD13, 1); /* usb power enbale */
s3c2410_gpio_cfgpin(S3C2443_GPH14, S3C2443_GPH14_OUTP);
s3c2410_gpio_setpin(S3C2443_GPH14, 1);
}
else if(((arg & ADC_PM_USB) >> 10)==2){
printk("ADC_PM_USB, 2 do special test\n");
}
else{
printk("ADC_PM_USB, 3 do nothing\n");
}
//Touch GPIO ok, 12~15
if(((arg & ADC_PM_TOUCH) >> 12)==0){
printk("ADC_PM_TOUCH, 0\n");
// s3c2410_gpio_cfgpin(S3C2410_GPB3, S3C2410_GPB3_OUTP);
// s3c2410_gpio_setpin(S3C2410_GPB3, 0);
s3c2410_gpio_cfgpin(S3C2410_GPF2, S3C2410_GPF2_OUTP);
s3c2410_gpio_setpin(S3C2410_GPF2, 0);
#ifdef CONFIG_QISDA_BK060B00
s3c2410_gpio_cfgpin(S3C2410_GPD10, S3C2410_GPD10_OUTP);
s3c2410_gpio_setpin(S3C2410_GPD10, 0);
#else
s3c2410_gpio_cfgpin(S3C2410_GPF5, S3C2410_GPF5_OUTP);
s3c2410_gpio_setpin(S3C2410_GPF5, 0);
#endif
}
else if(((arg & ADC_PM_TOUCH) >> 12)==1){
//power on
printk("ADC_PM_TOUCH, 1\n");
// s3c2410_gpio_cfgpin(S3C2410_GPB3, S3C2410_GPB3_OUTP);
// s3c2410_gpio_setpin(S3C2410_GPB3, 1);
s3c2410_gpio_cfgpin(S3C2410_GPF2, S3C2410_GPF2_INP);
#ifdef CONFIG_QISDA_BK060B00
s3c2410_gpio_cfgpin(S3C2410_GPD10, S3C2410_GPD10_OUTP);
s3c2410_gpio_setpin(S3C2410_GPD10, 1);
#else
s3c2410_gpio_cfgpin(S3C2410_GPF5, S3C2410_GPF5_OUTP);
s3c2410_gpio_setpin(S3C2410_GPF5, 1);
#endif
}
else if(((arg & ADC_PM_TOUCH) >> 12)==2){
//power on () + touch active mode (touch ioctl)
printk("ADC_PM_TOUCH, 2 Touch GPIO on and Enter Active\n");
s3c2410_gpio_cfgpin(S3C2410_GPF2, S3C2410_GPF2_INP);
#ifdef CONFIG_QISDA_BK060B00
s3c2410_gpio_cfgpin(S3C2410_GPD10, S3C2410_GPD10_OUTP);
s3c2410_gpio_setpin(S3C2410_GPD10, 1);
#else
s3c2410_gpio_cfgpin(S3C2410_GPF5, S3C2410_GPF5_OUTP);
s3c2410_gpio_setpin(S3C2410_GPF5, 1);
#endif
}
else if(((arg & ADC_PM_TOUCH) >> 12)==3){
//power on + touch sleep mode (via touch ioctl)
printk("ADC_PM_TOUCH, 3 Touch GPIO on and Enter Sleep\n");
s3c2410_gpio_cfgpin(S3C2410_GPF2, S3C2410_GPF2_INP);
#ifdef CONFIG_QISDA_BK060B00
s3c2410_gpio_cfgpin(S3C2410_GPD10, S3C2410_GPD10_OUTP);
s3c2410_gpio_setpin(S3C2410_GPD10, 1);
#else
s3c2410_gpio_cfgpin(S3C2410_GPF5, S3C2410_GPF5_OUTP);
s3c2410_gpio_setpin(S3C2410_GPF5, 1);
#endif
}
else if(((arg & ADC_PM_TOUCH) >> 12)==4){
//power on + touch deep sleep mode (via touch ioctl)
printk("ADC_PM_TOUCH, 4 Touch GPIO on and Enter Deep sleep\n");
s3c2410_gpio_cfgpin(S3C2410_GPF2, S3C2410_GPF2_INP);
#ifdef CONFIG_QISDA_BK060B00
s3c2410_gpio_cfgpin(S3C2410_GPD10, S3C2410_GPD10_OUTP);
s3c2410_gpio_setpin(S3C2410_GPD10, 1);
#else
s3c2410_gpio_cfgpin(S3C2410_GPF5, S3C2410_GPF5_OUTP);
s3c2410_gpio_setpin(S3C2410_GPF5, 1);
#endif
}
else{
printk("ADC_PM_TOUCH, 5~15 do nothing\n");
}
//SMART_CARD ok
if(((arg & ADC_PM_SMART_CARD) >> 16)==0){
printk("ADC_PM_SMART_CARD, 0\n");
s3c2410_gpio_cfgpin(S3C2410_GPC3, S3C2410_GPC3_OUTP);
s3c2410_gpio_setpin(S3C2410_GPC3, 0);
s3c2410_gpio_cfgpin(S3C2410_GPH2, S3C2410_GPH2_OUTP);
s3c2410_gpio_setpin(S3C2410_GPH2, 0);
s3c2410_gpio_cfgpin(S3C2410_GPH3, S3C2410_GPH3_OUTP);
s3c2410_gpio_setpin(S3C2410_GPH3, 0);
}
else if(((arg & ADC_PM_SMART_CARD) >> 16)==1){
printk("ADC_PM_SMART_CARD, 1\n");
s3c2410_gpio_cfgpin(S3C2410_GPC3, S3C2410_GPC3_OUTP);
s3c2410_gpio_setpin(S3C2410_GPC3, 1);
s3c2410_gpio_cfgpin(S3C2410_GPH2, S3C2410_GPH2_TXD0);
s3c2410_gpio_cfgpin(S3C2410_GPH3, S3C2410_GPH3_RXD0);
}
else if(((arg & ADC_PM_SMART_CARD) >> 16)==2){
printk("ADC_PM_SMART_CARD, 2 do special test\n");
}
else{
printk("ADC_PM_SMART_CARD, 3 do nothing\n");
}
//SMART_CARD ok
if(((arg & ADC_PM_3G_MODULE) >> 18)==0){
printk("ADC_PM_3G_MODULE, 0\n");
s3c2410_gpio_cfgpin(S3C2410_GPG3, S3C2410_GPG3_OUTP);
s3c2410_gpio_setpin(S3C2410_GPG3, 0);
s3c2410_gpio_cfgpin(S3C2410_GPH8, S3C2410_GPH8_OUTP);
s3c2410_gpio_setpin(S3C2410_GPH8, 0);
s3c2410_gpio_cfgpin(S3C2410_GPH9, S3C2410_GPH9_OUTP);
s3c2410_gpio_setpin(S3C2410_GPH9, 0);
s3c2410_gpio_cfgpin(S3C2410_GPH11, S3C2410_GPH11_OUTP);
s3c2410_gpio_setpin(S3C2410_GPH11, 0);
}
else if(((arg & ADC_PM_3G_MODULE) >> 18)==1){
printk("ADC_PM_3G_MODULE, 1\n");
s3c2410_gpio_cfgpin(S3C2410_GPG3, S3C2410_GPG3_OUTP);
s3c2410_gpio_setpin(S3C2410_GPG3, 1);
s3c2410_gpio_cfgpin(S3C2410_GPH8, S3C2410_GPH8_OUTP);
s3c2410_gpio_setpin(S3C2410_GPH8, 1);
// s3c2410_gpio_cfgpin(S3C2410_GPH9, S3C2410_GPH9_OUTP);
// s3c2410_gpio_setpin(S3C2410_GPH9, 0);
s3c2410_gpio_cfgpin(S3C2410_GPH11, S3C2410_GPH11_OUTP);
s3c2410_gpio_setpin(S3C2410_GPH11, 1);
}
else if(((arg & ADC_PM_3G_MODULE) >> 18)==2){
printk("ADC_PM_3G_MODULE, 2 do special test\n");
}
else{
printk("ADC_PM_3G_MODULE, 3 do nothing\n");
}
//ADC_PM_I2C ok
if(((arg & ADC_PM_I2C) >> 20)==0){
printk("ADC_PM_I2C, 0\n");
s3c2410_gpio_cfgpin(S3C2410_GPE14, S3C2410_GPE14_OUTP);
s3c2410_gpio_setpin(S3C2410_GPE14, 0); // IICSCL
s3c2410_gpio_cfgpin(S3C2410_GPE15, S3C2410_GPE15_OUTP);
s3c2410_gpio_setpin(S3C2410_GPE15, 0); // IICSDA
}
else if(((arg & ADC_PM_I2C) >> 20)==1){
printk("ADC_PM_I2C, 1\n");
s3c2410_gpio_cfgpin(S3C2410_GPE15, S3C2410_GPE15_IICSDA);
s3c2410_gpio_cfgpin(S3C2410_GPE14, S3C2410_GPE14_IICSCL);
}
else if(((arg & ADC_PM_I2C) >> 20)==2){
printk("ADC_PM_I2C, 2 do special test\n");
}
else{
printk("ADC_PM_I2C, 3 do nothing\n");
}
#endif
ret = 0;
break;
#ifdef CONFIG_PM_CPU_MODE
case ADC_SET_CPU_PM_MODE: