Index: tsc2200_adc_ssp.c =================================================================== RCS file: /cvs/linux/kernel26/drivers/misc/adc/tsc2200_adc_ssp.c,v retrieving revision 1.1 diff -r1.1 tsc2200_adc_ssp.c 26c26 < unsigned short pin_ctrl_cmd[] = { --- > unsigned char pin_ctrl_cmd[] = { 42a43 > unsigned char flags ; 58,65c59,81 < tsc2200_write(dev->parent, < TSC2200_CTRLREG_ADC, < TSC2200_CTRLREG_ADC_AD1 | < TSC2200_CTRLREG_ADC_RES (TSC2200_CTRLREG_ADC_RES_12BIT) | < TSC2200_CTRLREG_ADC_AVG (TSC2200_CTRLREG_ADC_16AVG) | < TSC2200_CTRLREG_ADC_CL (TSC2200_CTRLREG_ADC_CL_4MHZ_10BIT) | < TSC2200_CTRLREG_ADC_PV (TSC2200_CTRLREG_ADC_PV_1mS) ); < req->senses[i].value = tsc2200_read(dev->parent, pin_ctrl_cmd[pin_id]); --- > int touched = tsc2200_read(dev->parent, TSC2200_CTRLREG_ADC) & TSC2200_CTRLREG_ADC_PSM_TSC2200; > if ( (touched) && (pin_id <4) ) > { > tsc2200_write(dev->parent, > TSC2200_CTRLREG_ADC, > 1 << TSC2200_CTRLREG_ADC_AD1 | > TSC2200_CTRLREG_ADC_RES (TSC2200_CTRLREG_ADC_RES_12BIT) | > TSC2200_CTRLREG_ADC_AVG (TSC2200_CTRLREG_ADC_16AVG) | > TSC2200_CTRLREG_ADC_CL (TSC2200_CTRLREG_ADC_CL_4MHZ_10BIT) | > TSC2200_CTRLREG_ADC_PV (TSC2200_CTRLREG_ADC_PV_1mS) ); > req->senses[i].value = tsc2200_read(dev->parent, pin_ctrl_cmd[pin_id]); > } > if ( (pin_id >3) && (!touched) ) > { > tsc2200_write(dev->parent, > TSC2200_CTRLREG_ADC, > TSC2200_CTRLREG_ADC_AD (TSC2200_CTRLREG_ADC_AD3 | TSC2200_CTRLREG_ADC_AD1 | TSC2200_CTRLREG_ADC_AD0 ) | > TSC2200_CTRLREG_ADC_RES (TSC2200_CTRLREG_ADC_RES_12BIT) | > TSC2200_CTRLREG_ADC_AVG (TSC2200_CTRLREG_ADC_16AVG) | > TSC2200_CTRLREG_ADC_CL (TSC2200_CTRLREG_ADC_CL_4MHZ_10BIT) | > TSC2200_CTRLREG_ADC_PV (TSC2200_CTRLREG_ADC_PV_1mS) ); > req->senses[i].value = tsc2200_read(dev->parent, pin_ctrl_cmd[pin_id]); > } 184c200 < // struct tsc2200_adc_data *params = dev->dev.platform_data; --- > struct tsc2200_adc_data *params = dev->dev.platform_data;