Lines Matching refs:tsc

50 static int tps6507x_read_u8(struct tps6507x_ts *tsc, u8 reg, u8 *data)
52 return tsc->mfd->read_dev(tsc->mfd, reg, 1, data);
55 static int tps6507x_write_u8(struct tps6507x_ts *tsc, u8 reg, u8 data)
57 return tsc->mfd->write_dev(tsc->mfd, reg, 1, &data);
60 static s32 tps6507x_adc_conversion(struct tps6507x_ts *tsc,
69 ret = tps6507x_write_u8(tsc, TPS6507X_REG_TSCMODE, tsc_mode);
71 dev_err(tsc->dev, "TSC mode read failed\n");
77 ret = tps6507x_write_u8(tsc, TPS6507X_REG_ADCONFIG,
80 dev_err(tsc->dev, "ADC config write failed\n");
85 ret = tps6507x_read_u8(tsc, TPS6507X_REG_ADCONFIG,
88 dev_err(tsc->dev, "ADC config read failed\n");
93 ret = tps6507x_read_u8(tsc, TPS6507X_REG_ADRESULT_2, &result);
95 dev_err(tsc->dev, "ADC result 2 read failed\n");
101 ret = tps6507x_read_u8(tsc, TPS6507X_REG_ADRESULT_1, &result);
103 dev_err(tsc->dev, "ADC result 1 read failed\n");
109 dev_dbg(tsc->dev, "TSC channel %d = 0x%X\n", tsc_mode, *value);
119 static s32 tps6507x_adc_standby(struct tps6507x_ts *tsc)
125 ret = tps6507x_write_u8(tsc, TPS6507X_REG_ADCONFIG,
130 ret = tps6507x_write_u8(tsc, TPS6507X_REG_TSCMODE,
135 ret = tps6507x_read_u8(tsc, TPS6507X_REG_INT, &val);
141 ret = tps6507x_read_u8(tsc, TPS6507X_REG_INT, &val);
152 struct tps6507x_ts *tsc = input_get_drvdata(input_dev);
156 ret = tps6507x_adc_conversion(tsc, TPS6507X_TSCMODE_PRESSURE,
157 &tsc->tc.pressure);
161 pendown = tsc->tc.pressure > tsc->min_pressure;
163 if (unlikely(!pendown && tsc->pendown)) {
164 dev_dbg(tsc->dev, "UP\n");
168 tsc->pendown = false;
173 if (!tsc->pendown) {
174 dev_dbg(tsc->dev, "DOWN\n");
177 dev_dbg(tsc->dev, "still down\n");
179 ret = tps6507x_adc_conversion(tsc, TPS6507X_TSCMODE_X_POSITION,
180 &tsc->tc.x);
184 ret = tps6507x_adc_conversion(tsc, TPS6507X_TSCMODE_Y_POSITION,
185 &tsc->tc.y);
189 input_report_abs(input_dev, ABS_X, tsc->tc.x);
190 input_report_abs(input_dev, ABS_Y, tsc->tc.y);
191 input_report_abs(input_dev, ABS_PRESSURE, tsc->tc.pressure);
193 tsc->pendown = true;
197 tps6507x_adc_standby(tsc);
205 struct tps6507x_ts *tsc;
226 tsc = devm_kzalloc(&pdev->dev, sizeof(struct tps6507x_ts), GFP_KERNEL);
227 if (!tsc) {
232 tsc->mfd = tps6507x_dev;
233 tsc->dev = tps6507x_dev->dev;
234 tsc->min_pressure = init_data ?
237 snprintf(tsc->phys, sizeof(tsc->phys),
238 "%s/input0", dev_name(tsc->dev));
242 dev_err(tsc->dev, "Failed to allocate polled input device.\n");
246 tsc->input = input_dev;
247 input_set_drvdata(input_dev, tsc);
255 input_dev->phys = tsc->phys;
256 input_dev->dev.parent = tsc->dev;
264 error = tps6507x_adc_standby(tsc);