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