Lines Matching refs:tsc

80 static void lpc32xx_fifo_clear(struct lpc32xx_tsc *tsc)
82 while (!(tsc_readl(tsc, LPC32XX_TSC_STAT) &
84 tsc_readl(tsc, LPC32XX_TSC_FIFO);
91 struct lpc32xx_tsc *tsc = dev_id;
92 struct input_dev *input = tsc->dev;
94 tmp = tsc_readl(tsc, LPC32XX_TSC_STAT);
98 lpc32xx_fifo_clear(tsc);
109 !(tsc_readl(tsc, LPC32XX_TSC_STAT) &
111 tmp = tsc_readl(tsc, LPC32XX_TSC_FIFO);
135 static void lpc32xx_stop_tsc(struct lpc32xx_tsc *tsc)
138 tsc_writel(tsc, LPC32XX_TSC_CON,
139 tsc_readl(tsc, LPC32XX_TSC_CON) &
142 clk_disable(tsc->clk);
145 static void lpc32xx_setup_tsc(struct lpc32xx_tsc *tsc)
149 clk_enable(tsc->clk);
151 tmp = tsc_readl(tsc, LPC32XX_TSC_CON) & ~LPC32XX_TSC_ADCCON_POWER_UP;
157 tsc_writel(tsc, LPC32XX_TSC_CON, tmp);
160 tsc_writel(tsc, LPC32XX_TSC_SEL, LPC32XX_TSC_SEL_DEFVAL);
161 tsc_writel(tsc, LPC32XX_TSC_MIN_X, LPC32XX_TSC_MIN_XY_VAL);
162 tsc_writel(tsc, LPC32XX_TSC_MAX_X, LPC32XX_TSC_MAX_XY_VAL);
163 tsc_writel(tsc, LPC32XX_TSC_MIN_Y, LPC32XX_TSC_MIN_XY_VAL);
164 tsc_writel(tsc, LPC32XX_TSC_MAX_Y, LPC32XX_TSC_MAX_XY_VAL);
167 tsc_writel(tsc, LPC32XX_TSC_AUX_UTR, 0);
168 tsc_writel(tsc, LPC32XX_TSC_AUX_MIN, 0);
169 tsc_writel(tsc, LPC32XX_TSC_AUX_MAX, 0);
177 tsc_writel(tsc, LPC32XX_TSC_RTR, 0x2);
178 tsc_writel(tsc, LPC32XX_TSC_DTR, 0x2);
179 tsc_writel(tsc, LPC32XX_TSC_TTR, 0x10);
180 tsc_writel(tsc, LPC32XX_TSC_DXP, 0x4);
181 tsc_writel(tsc, LPC32XX_TSC_UTR, 88);
183 lpc32xx_fifo_clear(tsc);
186 tsc_writel(tsc, LPC32XX_TSC_CON, tmp | LPC32XX_TSC_ADCCON_AUTO_EN);
191 struct lpc32xx_tsc *tsc = input_get_drvdata(dev);
193 lpc32xx_setup_tsc(tsc);
200 struct lpc32xx_tsc *tsc = input_get_drvdata(dev);
202 lpc32xx_stop_tsc(tsc);
207 struct lpc32xx_tsc *tsc;
226 tsc = kzalloc(sizeof(*tsc), GFP_KERNEL);
228 if (!tsc || !input) {
234 tsc->dev = input;
235 tsc->irq = irq;
245 tsc->tsc_base = ioremap(res->start, size);
246 if (!tsc->tsc_base) {
252 tsc->clk = clk_get(&pdev->dev, NULL);
253 if (IS_ERR(tsc->clk)) {
255 error = PTR_ERR(tsc->clk);
276 input_set_drvdata(input, tsc);
278 error = request_irq(tsc->irq, lpc32xx_ts_interrupt,
279 0, pdev->name, tsc);
291 platform_set_drvdata(pdev, tsc);
297 free_irq(tsc->irq, tsc);
299 clk_put(tsc->clk);
301 iounmap(tsc->tsc_base);
306 kfree(tsc);
313 struct lpc32xx_tsc *tsc = platform_get_drvdata(pdev);
317 free_irq(tsc->irq, tsc);
319 input_unregister_device(tsc->dev);
321 clk_put(tsc->clk);
323 iounmap(tsc->tsc_base);
327 kfree(tsc);
335 struct lpc32xx_tsc *tsc = dev_get_drvdata(dev);
336 struct input_dev *input = tsc->dev;
348 enable_irq_wake(tsc->irq);
350 lpc32xx_stop_tsc(tsc);
360 struct lpc32xx_tsc *tsc = dev_get_drvdata(dev);
361 struct input_dev *input = tsc->dev;
367 disable_irq_wake(tsc->irq);
369 lpc32xx_setup_tsc(tsc);