ts_dev 74 drivers/input/touchscreen/ti_am335x_tsc.c static int titsc_config_wires(struct titsc *ts_dev) ts_dev 85 drivers/input/touchscreen/ti_am335x_tsc.c analog_line[i] = (ts_dev->config_inp[i] & 0xF0) >> 4; ts_dev 86 drivers/input/touchscreen/ti_am335x_tsc.c wire_order[i] = ts_dev->config_inp[i] & 0x0F; ts_dev 104 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->bit_xp = bit_cfg; ts_dev 105 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->inp_xp = an_line; ts_dev 109 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->bit_xn = bit_cfg; ts_dev 110 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->inp_xn = an_line; ts_dev 114 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->bit_yp = bit_cfg; ts_dev 115 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->inp_yp = an_line; ts_dev 118 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->bit_yn = bit_cfg; ts_dev 119 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->inp_yn = an_line; ts_dev 126 drivers/input/touchscreen/ti_am335x_tsc.c static void titsc_step_config(struct titsc *ts_dev) ts_dev 134 drivers/input/touchscreen/ti_am335x_tsc.c STEPCONFIG_AVG_16 | ts_dev->bit_xp; ts_dev 135 drivers/input/touchscreen/ti_am335x_tsc.c switch (ts_dev->wires) { ts_dev 137 drivers/input/touchscreen/ti_am335x_tsc.c config |= STEPCONFIG_INP(ts_dev->inp_yp) | ts_dev->bit_xn; ts_dev 140 drivers/input/touchscreen/ti_am335x_tsc.c config |= ts_dev->bit_yn | ts_dev 141 drivers/input/touchscreen/ti_am335x_tsc.c STEPCONFIG_INP_AN4 | ts_dev->bit_xn | ts_dev 142 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->bit_yp; ts_dev 145 drivers/input/touchscreen/ti_am335x_tsc.c config |= STEPCONFIG_INP(ts_dev->inp_yp) | ts_dev->bit_xn; ts_dev 149 drivers/input/touchscreen/ti_am335x_tsc.c tsc_steps = ts_dev->coordinate_readouts * 2 + 2; ts_dev 153 drivers/input/touchscreen/ti_am335x_tsc.c for (i = end_step - ts_dev->coordinate_readouts; i < end_step; i++) { ts_dev 154 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_STEPCONFIG(i), config); ts_dev 155 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_STEPDELAY(i), STEPCONFIG_OPENDLY); ts_dev 160 drivers/input/touchscreen/ti_am335x_tsc.c STEPCONFIG_AVG_16 | ts_dev->bit_yn | ts_dev 162 drivers/input/touchscreen/ti_am335x_tsc.c switch (ts_dev->wires) { ts_dev 164 drivers/input/touchscreen/ti_am335x_tsc.c config |= ts_dev->bit_yp | STEPCONFIG_INP(ts_dev->inp_xp); ts_dev 167 drivers/input/touchscreen/ti_am335x_tsc.c config |= ts_dev->bit_xp | STEPCONFIG_INP_AN4 | ts_dev 171 drivers/input/touchscreen/ti_am335x_tsc.c config |= ts_dev->bit_yp | STEPCONFIG_INP(ts_dev->inp_xp); ts_dev 176 drivers/input/touchscreen/ti_am335x_tsc.c end_step = first_step + ts_dev->coordinate_readouts; ts_dev 178 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_STEPCONFIG(i), config); ts_dev 179 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_STEPDELAY(i), STEPCONFIG_OPENDLY); ts_dev 184 drivers/input/touchscreen/ti_am335x_tsc.c config = titsc_readl(ts_dev, REG_IDLECONFIG); ts_dev 185 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_CHARGECONFIG, config); ts_dev 186 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_CHARGEDELAY, ts_dev->charge_delay); ts_dev 190 drivers/input/touchscreen/ti_am335x_tsc.c STEPCONFIG_AVG_16 | ts_dev->bit_yp | ts_dev 191 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->bit_xn | STEPCONFIG_INM_ADCREFM | ts_dev 192 drivers/input/touchscreen/ti_am335x_tsc.c STEPCONFIG_INP(ts_dev->inp_xp); ts_dev 193 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_STEPCONFIG(end_step), config); ts_dev 194 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_STEPDELAY(end_step), ts_dev 198 drivers/input/touchscreen/ti_am335x_tsc.c config |= STEPCONFIG_INP(ts_dev->inp_yn); ts_dev 199 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_STEPCONFIG(end_step), config); ts_dev 200 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_STEPDELAY(end_step), ts_dev 208 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->step_mask = stepenable; ts_dev 209 drivers/input/touchscreen/ti_am335x_tsc.c am335x_tsc_se_set_cache(ts_dev->mfd_tscadc, ts_dev->step_mask); ts_dev 217 drivers/input/touchscreen/ti_am335x_tsc.c static void titsc_read_coordinates(struct titsc *ts_dev, ts_dev 222 drivers/input/touchscreen/ti_am335x_tsc.c unsigned int creads = ts_dev->coordinate_readouts; ts_dev 225 drivers/input/touchscreen/ti_am335x_tsc.c yvals[i] = titsc_readl(ts_dev, REG_FIFO0); ts_dev 229 drivers/input/touchscreen/ti_am335x_tsc.c *z1 = titsc_readl(ts_dev, REG_FIFO0); ts_dev 231 drivers/input/touchscreen/ti_am335x_tsc.c *z2 = titsc_readl(ts_dev, REG_FIFO0); ts_dev 235 drivers/input/touchscreen/ti_am335x_tsc.c xvals[i] = titsc_readl(ts_dev, REG_FIFO0); ts_dev 271 drivers/input/touchscreen/ti_am335x_tsc.c struct titsc *ts_dev = dev; ts_dev 272 drivers/input/touchscreen/ti_am335x_tsc.c struct input_dev *input_dev = ts_dev->input; ts_dev 277 drivers/input/touchscreen/ti_am335x_tsc.c status = titsc_readl(ts_dev, REG_RAWIRQSTATUS); ts_dev 279 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->pen_down = true; ts_dev 281 drivers/input/touchscreen/ti_am335x_tsc.c pm_stay_awake(ts_dev->dev); ts_dev 285 drivers/input/touchscreen/ti_am335x_tsc.c fsm = titsc_readl(ts_dev, REG_ADCFSM); ts_dev 287 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->pen_down = false; ts_dev 291 drivers/input/touchscreen/ti_am335x_tsc.c pm_relax(ts_dev->dev); ts_dev 293 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->pen_down = true; ts_dev 307 drivers/input/touchscreen/ti_am335x_tsc.c titsc_read_coordinates(ts_dev, &x, &y, &z1, &z2); ts_dev 309 drivers/input/touchscreen/ti_am335x_tsc.c if (ts_dev->pen_down && z1 != 0 && z2 != 0) { ts_dev 317 drivers/input/touchscreen/ti_am335x_tsc.c z *= ts_dev->x_plate_resistance; ts_dev 332 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_IRQSTATUS, irqclr); ts_dev 334 drivers/input/touchscreen/ti_am335x_tsc.c am335x_tsc_se_set_cache(ts_dev->mfd_tscadc, ts_dev 335 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->step_mask); ts_dev 342 drivers/input/touchscreen/ti_am335x_tsc.c struct titsc *ts_dev) ts_dev 350 drivers/input/touchscreen/ti_am335x_tsc.c err = of_property_read_u32(node, "ti,wires", &ts_dev->wires); ts_dev 353 drivers/input/touchscreen/ti_am335x_tsc.c switch (ts_dev->wires) { ts_dev 363 drivers/input/touchscreen/ti_am335x_tsc.c &ts_dev->x_plate_resistance); ts_dev 372 drivers/input/touchscreen/ti_am335x_tsc.c &ts_dev->coordinate_readouts); ts_dev 376 drivers/input/touchscreen/ti_am335x_tsc.c &ts_dev->coordinate_readouts); ts_dev 382 drivers/input/touchscreen/ti_am335x_tsc.c if (ts_dev->coordinate_readouts <= 0) { ts_dev 385 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->coordinate_readouts = 5; ts_dev 389 drivers/input/touchscreen/ti_am335x_tsc.c &ts_dev->charge_delay); ts_dev 395 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->charge_delay = CHARGEDLY_OPENDLY; ts_dev 400 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->config_inp, ARRAY_SIZE(ts_dev->config_inp)); ts_dev 409 drivers/input/touchscreen/ti_am335x_tsc.c struct titsc *ts_dev; ts_dev 415 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev = kzalloc(sizeof(*ts_dev), GFP_KERNEL); ts_dev 417 drivers/input/touchscreen/ti_am335x_tsc.c if (!ts_dev || !input_dev) { ts_dev 423 drivers/input/touchscreen/ti_am335x_tsc.c tscadc_dev->tsc = ts_dev; ts_dev 424 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->mfd_tscadc = tscadc_dev; ts_dev 425 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->input = input_dev; ts_dev 426 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->irq = tscadc_dev->irq; ts_dev 427 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->dev = &pdev->dev; ts_dev 429 drivers/input/touchscreen/ti_am335x_tsc.c err = titsc_parse_dt(pdev, ts_dev); ts_dev 435 drivers/input/touchscreen/ti_am335x_tsc.c err = request_irq(ts_dev->irq, titsc_irq, ts_dev 436 drivers/input/touchscreen/ti_am335x_tsc.c IRQF_SHARED, pdev->dev.driver->name, ts_dev); ts_dev 443 drivers/input/touchscreen/ti_am335x_tsc.c err = dev_pm_set_wake_irq(&pdev->dev, ts_dev->irq); ts_dev 447 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_IRQSTATUS, TSC_IRQENB_MASK); ts_dev 448 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_IRQENABLE, IRQENB_FIFO0THRES); ts_dev 449 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_IRQENABLE, IRQENB_EOS); ts_dev 450 drivers/input/touchscreen/ti_am335x_tsc.c err = titsc_config_wires(ts_dev); ts_dev 455 drivers/input/touchscreen/ti_am335x_tsc.c titsc_step_config(ts_dev); ts_dev 456 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_FIFO0THR, ts_dev 457 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->coordinate_readouts * 2 + 2 - 1); ts_dev 474 drivers/input/touchscreen/ti_am335x_tsc.c platform_set_drvdata(pdev, ts_dev); ts_dev 480 drivers/input/touchscreen/ti_am335x_tsc.c free_irq(ts_dev->irq, ts_dev); ts_dev 483 drivers/input/touchscreen/ti_am335x_tsc.c kfree(ts_dev); ts_dev 489 drivers/input/touchscreen/ti_am335x_tsc.c struct titsc *ts_dev = platform_get_drvdata(pdev); ts_dev 494 drivers/input/touchscreen/ti_am335x_tsc.c free_irq(ts_dev->irq, ts_dev); ts_dev 497 drivers/input/touchscreen/ti_am335x_tsc.c steps = 2 * ts_dev->coordinate_readouts + 2; ts_dev 499 drivers/input/touchscreen/ti_am335x_tsc.c am335x_tsc_se_clr(ts_dev->mfd_tscadc, steps); ts_dev 501 drivers/input/touchscreen/ti_am335x_tsc.c input_unregister_device(ts_dev->input); ts_dev 503 drivers/input/touchscreen/ti_am335x_tsc.c kfree(ts_dev); ts_dev 509 drivers/input/touchscreen/ti_am335x_tsc.c struct titsc *ts_dev = dev_get_drvdata(dev); ts_dev 513 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_IRQSTATUS, TSC_IRQENB_MASK); ts_dev 514 drivers/input/touchscreen/ti_am335x_tsc.c idle = titsc_readl(ts_dev, REG_IRQENABLE); ts_dev 515 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_IRQENABLE, ts_dev 517 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_IRQWAKEUP, IRQWKUP_ENB); ts_dev 524 drivers/input/touchscreen/ti_am335x_tsc.c struct titsc *ts_dev = dev_get_drvdata(dev); ts_dev 527 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_IRQWAKEUP, ts_dev 529 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_IRQCLR, IRQENB_HW_PEN); ts_dev 532 drivers/input/touchscreen/ti_am335x_tsc.c titsc_step_config(ts_dev); ts_dev 533 drivers/input/touchscreen/ti_am335x_tsc.c titsc_writel(ts_dev, REG_FIFO0THR, ts_dev 534 drivers/input/touchscreen/ti_am335x_tsc.c ts_dev->coordinate_readouts * 2 + 2 - 1);