Lines Matching refs:t7l66xb

66 struct t7l66xb {  struct
82 struct t7l66xb *t7l66xb = dev_get_drvdata(mmc->dev.parent); in t7l66xb_mmc_enable() argument
87 ret = clk_prepare_enable(t7l66xb->clk32k); in t7l66xb_mmc_enable()
91 raw_spin_lock_irqsave(&t7l66xb->lock, flags); in t7l66xb_mmc_enable()
93 dev_ctl = tmio_ioread8(t7l66xb->scr + SCR_DEV_CTL); in t7l66xb_mmc_enable()
95 tmio_iowrite8(dev_ctl, t7l66xb->scr + SCR_DEV_CTL); in t7l66xb_mmc_enable()
97 raw_spin_unlock_irqrestore(&t7l66xb->lock, flags); in t7l66xb_mmc_enable()
99 tmio_core_mmc_enable(t7l66xb->scr + 0x200, 0, in t7l66xb_mmc_enable()
107 struct t7l66xb *t7l66xb = dev_get_drvdata(mmc->dev.parent); in t7l66xb_mmc_disable() local
111 raw_spin_lock_irqsave(&t7l66xb->lock, flags); in t7l66xb_mmc_disable()
113 dev_ctl = tmio_ioread8(t7l66xb->scr + SCR_DEV_CTL); in t7l66xb_mmc_disable()
115 tmio_iowrite8(dev_ctl, t7l66xb->scr + SCR_DEV_CTL); in t7l66xb_mmc_disable()
117 raw_spin_unlock_irqrestore(&t7l66xb->lock, flags); in t7l66xb_mmc_disable()
119 clk_disable_unprepare(t7l66xb->clk32k); in t7l66xb_mmc_disable()
126 struct t7l66xb *t7l66xb = dev_get_drvdata(mmc->dev.parent); in t7l66xb_mmc_pwr() local
128 tmio_core_mmc_pwr(t7l66xb->scr + 0x200, 0, state); in t7l66xb_mmc_pwr()
133 struct t7l66xb *t7l66xb = dev_get_drvdata(mmc->dev.parent); in t7l66xb_mmc_clk_div() local
135 tmio_core_mmc_clk_div(t7l66xb->scr + 0x200, 0, state); in t7l66xb_mmc_clk_div()
186 struct t7l66xb *t7l66xb = irq_desc_get_handler_data(desc); in t7l66xb_irq() local
190 irq_base = t7l66xb->irq_base; in t7l66xb_irq()
192 while ((isr = tmio_ioread8(t7l66xb->scr + SCR_ISR) & in t7l66xb_irq()
193 ~tmio_ioread8(t7l66xb->scr + SCR_IMR))) in t7l66xb_irq()
201 struct t7l66xb *t7l66xb = irq_data_get_irq_chip_data(data); in t7l66xb_irq_mask() local
205 raw_spin_lock_irqsave(&t7l66xb->lock, flags); in t7l66xb_irq_mask()
206 imr = tmio_ioread8(t7l66xb->scr + SCR_IMR); in t7l66xb_irq_mask()
207 imr |= 1 << (data->irq - t7l66xb->irq_base); in t7l66xb_irq_mask()
208 tmio_iowrite8(imr, t7l66xb->scr + SCR_IMR); in t7l66xb_irq_mask()
209 raw_spin_unlock_irqrestore(&t7l66xb->lock, flags); in t7l66xb_irq_mask()
214 struct t7l66xb *t7l66xb = irq_data_get_irq_chip_data(data); in t7l66xb_irq_unmask() local
218 raw_spin_lock_irqsave(&t7l66xb->lock, flags); in t7l66xb_irq_unmask()
219 imr = tmio_ioread8(t7l66xb->scr + SCR_IMR); in t7l66xb_irq_unmask()
220 imr &= ~(1 << (data->irq - t7l66xb->irq_base)); in t7l66xb_irq_unmask()
221 tmio_iowrite8(imr, t7l66xb->scr + SCR_IMR); in t7l66xb_irq_unmask()
222 raw_spin_unlock_irqrestore(&t7l66xb->lock, flags); in t7l66xb_irq_unmask()
237 struct t7l66xb *t7l66xb = platform_get_drvdata(dev); in t7l66xb_attach_irq() local
240 irq_base = t7l66xb->irq_base; in t7l66xb_attach_irq()
244 irq_set_chip_data(irq, t7l66xb); in t7l66xb_attach_irq()
247 irq_set_irq_type(t7l66xb->irq, IRQ_TYPE_EDGE_FALLING); in t7l66xb_attach_irq()
248 irq_set_chained_handler_and_data(t7l66xb->irq, t7l66xb_irq, t7l66xb); in t7l66xb_attach_irq()
253 struct t7l66xb *t7l66xb = platform_get_drvdata(dev); in t7l66xb_detach_irq() local
256 irq_base = t7l66xb->irq_base; in t7l66xb_detach_irq()
258 irq_set_chained_handler_and_data(t7l66xb->irq, NULL, NULL); in t7l66xb_detach_irq()
271 struct t7l66xb *t7l66xb = platform_get_drvdata(dev); in t7l66xb_suspend() local
276 clk_disable_unprepare(t7l66xb->clk48m); in t7l66xb_suspend()
283 struct t7l66xb *t7l66xb = platform_get_drvdata(dev); in t7l66xb_resume() local
287 ret = clk_prepare_enable(t7l66xb->clk48m); in t7l66xb_resume()
294 tmio_core_mmc_enable(t7l66xb->scr + 0x200, 0, in t7l66xb_resume()
309 struct t7l66xb *t7l66xb; in t7l66xb_probe() local
320 t7l66xb = kzalloc(sizeof *t7l66xb, GFP_KERNEL); in t7l66xb_probe()
321 if (!t7l66xb) in t7l66xb_probe()
324 raw_spin_lock_init(&t7l66xb->lock); in t7l66xb_probe()
326 platform_set_drvdata(dev, t7l66xb); in t7l66xb_probe()
330 t7l66xb->irq = ret; in t7l66xb_probe()
334 t7l66xb->irq_base = pdata->irq_base; in t7l66xb_probe()
336 t7l66xb->clk32k = clk_get(&dev->dev, "CLK_CK32K"); in t7l66xb_probe()
337 if (IS_ERR(t7l66xb->clk32k)) { in t7l66xb_probe()
338 ret = PTR_ERR(t7l66xb->clk32k); in t7l66xb_probe()
342 t7l66xb->clk48m = clk_get(&dev->dev, "CLK_CK48M"); in t7l66xb_probe()
343 if (IS_ERR(t7l66xb->clk48m)) { in t7l66xb_probe()
344 ret = PTR_ERR(t7l66xb->clk48m); in t7l66xb_probe()
348 rscr = &t7l66xb->rscr; in t7l66xb_probe()
358 t7l66xb->scr = ioremap(rscr->start, resource_size(rscr)); in t7l66xb_probe()
359 if (!t7l66xb->scr) { in t7l66xb_probe()
364 ret = clk_prepare_enable(t7l66xb->clk48m); in t7l66xb_probe()
372 tmio_iowrite8(0xbf, t7l66xb->scr + SCR_IMR); in t7l66xb_probe()
375 dev->name, tmio_ioread8(t7l66xb->scr + SCR_REVID), in t7l66xb_probe()
376 (unsigned long)iomem->start, t7l66xb->irq); in t7l66xb_probe()
385 iomem, t7l66xb->irq_base, NULL); in t7l66xb_probe()
391 clk_disable_unprepare(t7l66xb->clk48m); in t7l66xb_probe()
393 iounmap(t7l66xb->scr); in t7l66xb_probe()
395 release_resource(&t7l66xb->rscr); in t7l66xb_probe()
397 clk_put(t7l66xb->clk48m); in t7l66xb_probe()
399 clk_put(t7l66xb->clk32k); in t7l66xb_probe()
402 kfree(t7l66xb); in t7l66xb_probe()
408 struct t7l66xb *t7l66xb = platform_get_drvdata(dev); in t7l66xb_remove() local
410 clk_disable_unprepare(t7l66xb->clk48m); in t7l66xb_remove()
411 clk_put(t7l66xb->clk48m); in t7l66xb_remove()
412 clk_disable_unprepare(t7l66xb->clk32k); in t7l66xb_remove()
413 clk_put(t7l66xb->clk32k); in t7l66xb_remove()
415 iounmap(t7l66xb->scr); in t7l66xb_remove()
416 release_resource(&t7l66xb->rscr); in t7l66xb_remove()
418 kfree(t7l66xb); in t7l66xb_remove()