Lines Matching refs:trkball
54 struct pxa930_trkball *trkball = dev_id; in pxa930_trkball_interrupt() local
55 struct input_dev *input = trkball->input; in pxa930_trkball_interrupt()
61 tbcntr = __raw_readl(trkball->mmio_base + TBCNTR); in pxa930_trkball_interrupt()
63 if (tbcntr == __raw_readl(trkball->mmio_base + TBCNTR)) { in pxa930_trkball_interrupt()
72 __raw_writel(TBSBC_TBSBC, trkball->mmio_base + TBSBC); in pxa930_trkball_interrupt()
73 __raw_writel(0, trkball->mmio_base + TBSBC); in pxa930_trkball_interrupt()
79 static int write_tbcr(struct pxa930_trkball *trkball, int v) in write_tbcr() argument
83 __raw_writel(v, trkball->mmio_base + TBCR); in write_tbcr()
86 if (__raw_readl(trkball->mmio_base + TBCR) == v) in write_tbcr()
99 static void pxa930_trkball_config(struct pxa930_trkball *trkball) in pxa930_trkball_config() argument
104 tbcr = __raw_readl(trkball->mmio_base + TBCR); in pxa930_trkball_config()
105 write_tbcr(trkball, tbcr | TBCR_X_FLT(0xf) | TBCR_Y_FLT(0xf)); in pxa930_trkball_config()
106 write_tbcr(trkball, TBCR_X_FLT(trkball->pdata->x_filter) | in pxa930_trkball_config()
107 TBCR_Y_FLT(trkball->pdata->y_filter)); in pxa930_trkball_config()
110 tbcr = __raw_readl(trkball->mmio_base + TBCR); in pxa930_trkball_config()
111 write_tbcr(trkball, tbcr | TBCR_TBRST); in pxa930_trkball_config()
112 write_tbcr(trkball, tbcr & ~TBCR_TBRST); in pxa930_trkball_config()
114 __raw_writel(TBSBC_TBSBC, trkball->mmio_base + TBSBC); in pxa930_trkball_config()
115 __raw_writel(0, trkball->mmio_base + TBSBC); in pxa930_trkball_config()
118 __raw_readl(trkball->mmio_base + TBCR)); in pxa930_trkball_config()
123 struct pxa930_trkball *trkball = input_get_drvdata(dev); in pxa930_trkball_open() local
125 pxa930_trkball_config(trkball); in pxa930_trkball_open()
130 static void pxa930_trkball_disable(struct pxa930_trkball *trkball) in pxa930_trkball_disable() argument
132 uint32_t tbcr = __raw_readl(trkball->mmio_base + TBCR); in pxa930_trkball_disable()
135 write_tbcr(trkball, tbcr | TBCR_TBRST); in pxa930_trkball_disable()
140 struct pxa930_trkball *trkball = input_get_drvdata(dev); in pxa930_trkball_close() local
142 pxa930_trkball_disable(trkball); in pxa930_trkball_close()
147 struct pxa930_trkball *trkball; in pxa930_trkball_probe() local
164 trkball = kzalloc(sizeof(struct pxa930_trkball), GFP_KERNEL); in pxa930_trkball_probe()
165 if (!trkball) in pxa930_trkball_probe()
168 trkball->pdata = dev_get_platdata(&pdev->dev); in pxa930_trkball_probe()
169 if (!trkball->pdata) { in pxa930_trkball_probe()
175 trkball->mmio_base = ioremap_nocache(res->start, resource_size(res)); in pxa930_trkball_probe()
176 if (!trkball->mmio_base) { in pxa930_trkball_probe()
183 pxa930_trkball_disable(trkball); in pxa930_trkball_probe()
186 pdev->name, trkball); in pxa930_trkball_probe()
192 platform_set_drvdata(pdev, trkball); in pxa930_trkball_probe()
206 input_set_drvdata(input, trkball); in pxa930_trkball_probe()
208 trkball->input = input; in pxa930_trkball_probe()
224 free_irq(irq, trkball); in pxa930_trkball_probe()
226 iounmap(trkball->mmio_base); in pxa930_trkball_probe()
228 kfree(trkball); in pxa930_trkball_probe()
234 struct pxa930_trkball *trkball = platform_get_drvdata(pdev); in pxa930_trkball_remove() local
237 input_unregister_device(trkball->input); in pxa930_trkball_remove()
238 free_irq(irq, trkball); in pxa930_trkball_remove()
239 iounmap(trkball->mmio_base); in pxa930_trkball_remove()
240 kfree(trkball); in pxa930_trkball_remove()