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