Lines Matching refs:trkball
51 struct pxa930_trkball *trkball = dev_id; in pxa930_trkball_interrupt() local
52 struct input_dev *input = trkball->input; in pxa930_trkball_interrupt()
58 tbcntr = __raw_readl(trkball->mmio_base + TBCNTR); in pxa930_trkball_interrupt()
60 if (tbcntr == __raw_readl(trkball->mmio_base + TBCNTR)) { in pxa930_trkball_interrupt()
69 __raw_writel(TBSBC_TBSBC, trkball->mmio_base + TBSBC); in pxa930_trkball_interrupt()
70 __raw_writel(0, trkball->mmio_base + TBSBC); in pxa930_trkball_interrupt()
76 static int write_tbcr(struct pxa930_trkball *trkball, int v) in write_tbcr() argument
80 __raw_writel(v, trkball->mmio_base + TBCR); in write_tbcr()
83 if (__raw_readl(trkball->mmio_base + TBCR) == v) in write_tbcr()
96 static void pxa930_trkball_config(struct pxa930_trkball *trkball) in pxa930_trkball_config() argument
101 tbcr = __raw_readl(trkball->mmio_base + TBCR); in pxa930_trkball_config()
102 write_tbcr(trkball, tbcr | TBCR_X_FLT(0xf) | TBCR_Y_FLT(0xf)); in pxa930_trkball_config()
103 write_tbcr(trkball, TBCR_X_FLT(trkball->pdata->x_filter) | in pxa930_trkball_config()
104 TBCR_Y_FLT(trkball->pdata->y_filter)); in pxa930_trkball_config()
107 tbcr = __raw_readl(trkball->mmio_base + TBCR); in pxa930_trkball_config()
108 write_tbcr(trkball, tbcr | TBCR_TBRST); in pxa930_trkball_config()
109 write_tbcr(trkball, tbcr & ~TBCR_TBRST); in pxa930_trkball_config()
111 __raw_writel(TBSBC_TBSBC, trkball->mmio_base + TBSBC); in pxa930_trkball_config()
112 __raw_writel(0, trkball->mmio_base + TBSBC); in pxa930_trkball_config()
115 __raw_readl(trkball->mmio_base + TBCR)); in pxa930_trkball_config()
120 struct pxa930_trkball *trkball = input_get_drvdata(dev); in pxa930_trkball_open() local
122 pxa930_trkball_config(trkball); in pxa930_trkball_open()
127 static void pxa930_trkball_disable(struct pxa930_trkball *trkball) in pxa930_trkball_disable() argument
129 uint32_t tbcr = __raw_readl(trkball->mmio_base + TBCR); in pxa930_trkball_disable()
132 write_tbcr(trkball, tbcr | TBCR_TBRST); in pxa930_trkball_disable()
137 struct pxa930_trkball *trkball = input_get_drvdata(dev); in pxa930_trkball_close() local
139 pxa930_trkball_disable(trkball); in pxa930_trkball_close()
144 struct pxa930_trkball *trkball; in pxa930_trkball_probe() local
159 trkball = kzalloc(sizeof(struct pxa930_trkball), GFP_KERNEL); in pxa930_trkball_probe()
160 if (!trkball) in pxa930_trkball_probe()
163 trkball->pdata = dev_get_platdata(&pdev->dev); in pxa930_trkball_probe()
164 if (!trkball->pdata) { in pxa930_trkball_probe()
170 trkball->mmio_base = ioremap(res->start, resource_size(res)); in pxa930_trkball_probe()
171 if (!trkball->mmio_base) { in pxa930_trkball_probe()
178 pxa930_trkball_disable(trkball); in pxa930_trkball_probe()
181 pdev->name, trkball); in pxa930_trkball_probe()
187 platform_set_drvdata(pdev, trkball); in pxa930_trkball_probe()
201 input_set_drvdata(input, trkball); in pxa930_trkball_probe()
203 trkball->input = input; in pxa930_trkball_probe()
219 free_irq(irq, trkball); in pxa930_trkball_probe()
221 iounmap(trkball->mmio_base); in pxa930_trkball_probe()
223 kfree(trkball); in pxa930_trkball_probe()
229 struct pxa930_trkball *trkball = platform_get_drvdata(pdev); in pxa930_trkball_remove() local
232 input_unregister_device(trkball->input); in pxa930_trkball_remove()
233 free_irq(irq, trkball); in pxa930_trkball_remove()
234 iounmap(trkball->mmio_base); in pxa930_trkball_remove()
235 kfree(trkball); in pxa930_trkball_remove()