Lines Matching refs:kmi

28 #define KMI_BASE	(kmi->base)
41 struct amba_kmi_port *kmi = dev_id; in amba_kmi_int() local
46 serio_interrupt(kmi->io, readb(KMIDATA), 0); in amba_kmi_int()
56 struct amba_kmi_port *kmi = io->port_data; in amba_kmi_write() local
70 struct amba_kmi_port *kmi = io->port_data; in amba_kmi_open() local
74 ret = clk_prepare_enable(kmi->clk); in amba_kmi_open()
78 divisor = clk_get_rate(kmi->clk) / 8000000 - 1; in amba_kmi_open()
82 ret = request_irq(kmi->irq, amba_kmi_int, IRQF_SHARED, "kmi-pl050", in amba_kmi_open()
83 kmi); in amba_kmi_open()
85 printk(KERN_ERR "kmi: failed to claim IRQ%d\n", kmi->irq); in amba_kmi_open()
95 clk_disable_unprepare(kmi->clk); in amba_kmi_open()
102 struct amba_kmi_port *kmi = io->port_data; in amba_kmi_close() local
106 free_irq(kmi->irq, kmi); in amba_kmi_close()
107 clk_disable_unprepare(kmi->clk); in amba_kmi_close()
113 struct amba_kmi_port *kmi; in amba_kmi_probe() local
121 kmi = kzalloc(sizeof(struct amba_kmi_port), GFP_KERNEL); in amba_kmi_probe()
123 if (!kmi || !io) { in amba_kmi_probe()
135 io->port_data = kmi; in amba_kmi_probe()
138 kmi->io = io; in amba_kmi_probe()
139 kmi->base = ioremap(dev->res.start, resource_size(&dev->res)); in amba_kmi_probe()
140 if (!kmi->base) { in amba_kmi_probe()
145 kmi->clk = clk_get(&dev->dev, "KMIREFCLK"); in amba_kmi_probe()
146 if (IS_ERR(kmi->clk)) { in amba_kmi_probe()
147 ret = PTR_ERR(kmi->clk); in amba_kmi_probe()
151 kmi->irq = dev->irq[0]; in amba_kmi_probe()
152 amba_set_drvdata(dev, kmi); in amba_kmi_probe()
154 serio_register_port(kmi->io); in amba_kmi_probe()
158 iounmap(kmi->base); in amba_kmi_probe()
160 kfree(kmi); in amba_kmi_probe()
168 struct amba_kmi_port *kmi = amba_get_drvdata(dev); in amba_kmi_remove() local
170 serio_unregister_port(kmi->io); in amba_kmi_remove()
171 clk_put(kmi->clk); in amba_kmi_remove()
172 iounmap(kmi->base); in amba_kmi_remove()
173 kfree(kmi); in amba_kmi_remove()
180 struct amba_kmi_port *kmi = amba_get_drvdata(dev); in amba_kmi_resume() local
183 serio_reconnect(kmi->io); in amba_kmi_resume()