• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/input/serio/

Lines Matching refs:psif

95 struct psif {
108 struct psif *psif = _ptr;
113 status = psif_readl(psif, SR);
116 unsigned char val = (unsigned char) psif_readl(psif, RHR);
121 dev_err(&psif->pdev->dev, "overrun read error\n");
123 serio_interrupt(psif->io, val, io_flags);
133 struct psif *psif = io->port_data;
138 spin_lock_irqsave(&psif->lock, flags);
140 while (!(psif_readl(psif, SR) & PSIF_BIT(TXEMPTY)) && timeout--)
144 psif_writel(psif, THR, val);
146 dev_dbg(&psif->pdev->dev, "timeout writing to THR\n");
150 spin_unlock_irqrestore(&psif->lock, flags);
157 struct psif *psif = io->port_data;
160 retval = clk_enable(psif->pclk);
164 psif_writel(psif, CR, PSIF_BIT(CR_TXEN) | PSIF_BIT(CR_RXEN));
165 psif_writel(psif, IER, PSIF_BIT(RXRDY));
167 psif->open = 1;
174 struct psif *psif = io->port_data;
176 psif->open = 0;
178 psif_writel(psif, IDR, ~0UL);
179 psif_writel(psif, CR, PSIF_BIT(CR_TXDIS) | PSIF_BIT(CR_RXDIS));
181 clk_disable(psif->pclk);
184 static void psif_set_prescaler(struct psif *psif)
187 unsigned long rate = clk_get_rate(psif->pclk);
194 dev_dbg(&psif->pdev->dev, "pclk too fast, "
198 clk_enable(psif->pclk);
199 psif_writel(psif, PSR, prscv);
200 clk_disable(psif->pclk);
206 struct psif *psif;
212 psif = kzalloc(sizeof(struct psif), GFP_KERNEL);
213 if (!psif) {
218 psif->pdev = pdev;
226 psif->io = io;
235 psif->regs = ioremap(regs->start, resource_size(regs));
236 if (!psif->regs) {
248 psif->pclk = pclk;
256 psif_writel(psif, CR, PSIF_BIT(CR_SWRST));
265 ret = request_irq(irq, psif_interrupt, IRQF_SHARED, "at32psif", psif);
270 psif->irq = irq;
278 io->port_data = psif;
281 psif_set_prescaler(psif);
283 spin_lock_init(&psif->lock);
284 serio_register_port(psif->io);
285 platform_set_drvdata(pdev, psif);
288 (int)psif->regs, psif->irq);
293 clk_put(psif->pclk);
295 iounmap(psif->regs);
299 kfree(psif);
306 struct psif *psif = platform_get_drvdata(pdev);
308 psif_writel(psif, IDR, ~0UL);
309 psif_writel(psif, CR, PSIF_BIT(CR_TXDIS) | PSIF_BIT(CR_RXDIS));
311 serio_unregister_port(psif->io);
312 iounmap(psif->regs);
313 free_irq(psif->irq, psif);
314 clk_put(psif->pclk);
315 kfree(psif);
325 struct psif *psif = platform_get_drvdata(pdev);
327 if (psif->open) {
328 psif_writel(psif, CR, PSIF_BIT(CR_RXDIS) | PSIF_BIT(CR_TXDIS));
329 clk_disable(psif->pclk);
337 struct psif *psif = platform_get_drvdata(pdev);
339 if (psif->open) {
340 clk_enable(psif->pclk);
341 psif_set_prescaler(psif);
342 psif_writel(psif, CR, PSIF_BIT(CR_RXEN) | PSIF_BIT(CR_TXEN));