Lines Matching refs:tsc

71 static void lpc32xx_fifo_clear(struct lpc32xx_tsc *tsc)
73 while (!(tsc_readl(tsc, LPC32XX_TSC_STAT) &
75 tsc_readl(tsc, LPC32XX_TSC_FIFO);
82 struct lpc32xx_tsc *tsc = dev_id;
83 struct input_dev *input = tsc->dev;
85 tmp = tsc_readl(tsc, LPC32XX_TSC_STAT);
89 lpc32xx_fifo_clear(tsc);
100 !(tsc_readl(tsc, LPC32XX_TSC_STAT) &
102 tmp = tsc_readl(tsc, LPC32XX_TSC_FIFO);
126 static void lpc32xx_stop_tsc(struct lpc32xx_tsc *tsc)
129 tsc_writel(tsc, LPC32XX_TSC_CON,
130 tsc_readl(tsc, LPC32XX_TSC_CON) &
133 clk_disable_unprepare(tsc->clk);
136 static int lpc32xx_setup_tsc(struct lpc32xx_tsc *tsc)
141 err = clk_prepare_enable(tsc->clk);
145 tmp = tsc_readl(tsc, LPC32XX_TSC_CON) & ~LPC32XX_TSC_ADCCON_POWER_UP;
151 tsc_writel(tsc, LPC32XX_TSC_CON, tmp);
154 tsc_writel(tsc, LPC32XX_TSC_SEL, LPC32XX_TSC_SEL_DEFVAL);
155 tsc_writel(tsc, LPC32XX_TSC_MIN_X, LPC32XX_TSC_MIN_XY_VAL);
156 tsc_writel(tsc, LPC32XX_TSC_MAX_X, LPC32XX_TSC_MAX_XY_VAL);
157 tsc_writel(tsc, LPC32XX_TSC_MIN_Y, LPC32XX_TSC_MIN_XY_VAL);
158 tsc_writel(tsc, LPC32XX_TSC_MAX_Y, LPC32XX_TSC_MAX_XY_VAL);
161 tsc_writel(tsc, LPC32XX_TSC_AUX_UTR, 0);
162 tsc_writel(tsc, LPC32XX_TSC_AUX_MIN, 0);
163 tsc_writel(tsc, LPC32XX_TSC_AUX_MAX, 0);
171 tsc_writel(tsc, LPC32XX_TSC_RTR, 0x2);
172 tsc_writel(tsc, LPC32XX_TSC_DTR, 0x2);
173 tsc_writel(tsc, LPC32XX_TSC_TTR, 0x10);
174 tsc_writel(tsc, LPC32XX_TSC_DXP, 0x4);
175 tsc_writel(tsc, LPC32XX_TSC_UTR, 88);
177 lpc32xx_fifo_clear(tsc);
180 tsc_writel(tsc, LPC32XX_TSC_CON, tmp | LPC32XX_TSC_ADCCON_AUTO_EN);
187 struct lpc32xx_tsc *tsc = input_get_drvdata(dev);
189 return lpc32xx_setup_tsc(tsc);
194 struct lpc32xx_tsc *tsc = input_get_drvdata(dev);
196 lpc32xx_stop_tsc(tsc);
201 struct lpc32xx_tsc *tsc;
218 tsc = kzalloc(sizeof(*tsc), GFP_KERNEL);
220 if (!tsc || !input) {
226 tsc->dev = input;
227 tsc->irq = irq;
237 tsc->tsc_base = ioremap(res->start, size);
238 if (!tsc->tsc_base) {
244 tsc->clk = clk_get(&pdev->dev, NULL);
245 if (IS_ERR(tsc->clk)) {
247 error = PTR_ERR(tsc->clk);
268 input_set_drvdata(input, tsc);
270 error = request_irq(tsc->irq, lpc32xx_ts_interrupt,
271 0, pdev->name, tsc);
283 platform_set_drvdata(pdev, tsc);
289 free_irq(tsc->irq, tsc);
291 clk_put(tsc->clk);
293 iounmap(tsc->tsc_base);
298 kfree(tsc);
305 struct lpc32xx_tsc *tsc = platform_get_drvdata(pdev);
308 free_irq(tsc->irq, tsc);
310 input_unregister_device(tsc->dev);
312 clk_put(tsc->clk);
314 iounmap(tsc->tsc_base);
318 kfree(tsc);
326 struct lpc32xx_tsc *tsc = dev_get_drvdata(dev);
327 struct input_dev *input = tsc->dev;
339 enable_irq_wake(tsc->irq);
341 lpc32xx_stop_tsc(tsc);
351 struct lpc32xx_tsc *tsc = dev_get_drvdata(dev);
352 struct input_dev *input = tsc->dev;
358 disable_irq_wake(tsc->irq);
360 lpc32xx_setup_tsc(tsc);
379 { .compatible = "nxp,lpc3220-tsc", },