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);
202 struct lpc32xx_tsc *tsc;
211 tsc = devm_kzalloc(dev, sizeof(*tsc), GFP_KERNEL);
212 if (!tsc)
215 tsc->irq = irq;
217 tsc->tsc_base = devm_platform_ioremap_resource(pdev, 0);
218 if (IS_ERR(tsc->tsc_base))
219 return PTR_ERR(tsc->tsc_base);
221 tsc->clk = devm_clk_get(dev, NULL);
222 if (IS_ERR(tsc->clk)) {
224 return PTR_ERR(tsc->clk);
248 input_set_drvdata(input, tsc);
249 tsc->dev = input;
251 error = devm_request_irq(dev, tsc->irq, lpc32xx_ts_interrupt,
252 0, pdev->name, tsc);
264 platform_set_drvdata(pdev, tsc);
273 struct lpc32xx_tsc *tsc = dev_get_drvdata(dev);
274 struct input_dev *input = tsc->dev;
286 enable_irq_wake(tsc->irq);
288 lpc32xx_stop_tsc(tsc);
298 struct lpc32xx_tsc *tsc = dev_get_drvdata(dev);
299 struct input_dev *input = tsc->dev;
305 disable_irq_wake(tsc->irq);
307 lpc32xx_setup_tsc(tsc);
326 { .compatible = "nxp,lpc3220-tsc", },