Lines Matching refs:arc_ps2

46 static void arc_ps2_check_rx(struct arc_ps2_data *arc_ps2,  in arc_ps2_check_rx()  argument
61 arc_ps2->total_int++; in arc_ps2_check_rx()
63 arc_ps2->frame_error++; in arc_ps2_check_rx()
66 arc_ps2->buf_overflow++; in arc_ps2_check_rx()
78 struct arc_ps2_data *arc_ps2 = dev; in arc_ps2_interrupt() local
82 arc_ps2_check_rx(arc_ps2, &arc_ps2->port[i]); in arc_ps2_interrupt()
125 static void __iomem *arc_ps2_calc_addr(struct arc_ps2_data *arc_ps2, in arc_ps2_calc_addr() argument
130 addr = arc_ps2->addr + 4 + 4 * index; in arc_ps2_calc_addr()
137 static void arc_ps2_inhibit_ports(struct arc_ps2_data *arc_ps2) in arc_ps2_inhibit_ports() argument
144 addr = arc_ps2_calc_addr(arc_ps2, i, true); in arc_ps2_inhibit_ports()
152 struct arc_ps2_data *arc_ps2, in arc_ps2_create_port() argument
155 struct arc_ps2_port *port = &arc_ps2->port[index]; in arc_ps2_create_port()
172 port->data_addr = arc_ps2_calc_addr(arc_ps2, index, false); in arc_ps2_create_port()
173 port->status_addr = arc_ps2_calc_addr(arc_ps2, index, true); in arc_ps2_create_port()
184 struct arc_ps2_data *arc_ps2; in arc_ps2_probe() local
192 arc_ps2 = devm_kzalloc(&pdev->dev, sizeof(struct arc_ps2_data), in arc_ps2_probe()
194 if (!arc_ps2) { in arc_ps2_probe()
199 arc_ps2->addr = devm_platform_get_and_ioremap_resource(pdev, 0, NULL); in arc_ps2_probe()
200 if (IS_ERR(arc_ps2->addr)) in arc_ps2_probe()
201 return PTR_ERR(arc_ps2->addr); in arc_ps2_probe()
204 irq, arc_ps2->addr, ARC_PS2_PORTS); in arc_ps2_probe()
206 id = ioread32(arc_ps2->addr); in arc_ps2_probe()
212 arc_ps2_inhibit_ports(arc_ps2); in arc_ps2_probe()
215 0, "arc_ps2", arc_ps2); in arc_ps2_probe()
222 error = arc_ps2_create_port(pdev, arc_ps2, i); in arc_ps2_probe()
225 serio_unregister_port(arc_ps2->port[i].io); in arc_ps2_probe()
230 platform_set_drvdata(pdev, arc_ps2); in arc_ps2_probe()
237 struct arc_ps2_data *arc_ps2 = platform_get_drvdata(pdev); in arc_ps2_remove() local
241 serio_unregister_port(arc_ps2->port[i].io); in arc_ps2_remove()
243 dev_dbg(&pdev->dev, "interrupt count = %i\n", arc_ps2->total_int); in arc_ps2_remove()
244 dev_dbg(&pdev->dev, "frame error count = %i\n", arc_ps2->frame_error); in arc_ps2_remove()
246 arc_ps2->buf_overflow); in arc_ps2_remove()