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
193 arc_ps2 = devm_kzalloc(&pdev->dev, sizeof(struct arc_ps2_data), in arc_ps2_probe()
195 if (!arc_ps2) { in arc_ps2_probe()
201 arc_ps2->addr = devm_ioremap_resource(&pdev->dev, res); in arc_ps2_probe()
202 if (IS_ERR(arc_ps2->addr)) in arc_ps2_probe()
203 return PTR_ERR(arc_ps2->addr); in arc_ps2_probe()
206 irq, arc_ps2->addr, ARC_PS2_PORTS); in arc_ps2_probe()
208 id = ioread32(arc_ps2->addr); in arc_ps2_probe()
214 arc_ps2_inhibit_ports(arc_ps2); in arc_ps2_probe()
217 0, "arc_ps2", arc_ps2); in arc_ps2_probe()
224 error = arc_ps2_create_port(pdev, arc_ps2, i); in arc_ps2_probe()
227 serio_unregister_port(arc_ps2->port[i].io); in arc_ps2_probe()
232 platform_set_drvdata(pdev, arc_ps2); in arc_ps2_probe()
239 struct arc_ps2_data *arc_ps2 = platform_get_drvdata(pdev); in arc_ps2_remove() local
243 serio_unregister_port(arc_ps2->port[i].io); in arc_ps2_remove()
245 dev_dbg(&pdev->dev, "interrupt count = %i\n", arc_ps2->total_int); in arc_ps2_remove()
246 dev_dbg(&pdev->dev, "frame error count = %i\n", arc_ps2->frame_error); in arc_ps2_remove()
248 arc_ps2->buf_overflow); in arc_ps2_remove()