Lines Matching refs:sossi

81 } sossi;  variable
85 return readl(sossi.base + reg); in sossi_read_reg()
90 return readw(sossi.base + reg); in sossi_read_reg16()
95 return readb(sossi.base + reg); in sossi_read_reg8()
100 writel(value, sossi.base + reg); in sossi_write_reg()
105 writew(value, sossi.base + reg); in sossi_write_reg16()
110 writeb(value, sossi.base + reg); in sossi_write_reg8()
127 u32 clk_period = HZ_TO_PS(sossi.fck_hz) * div; in ps_to_sossi_ticks()
226 dev_dbg(sossi.fbdev->dev, "Using TW0 = %d, TW1 = %d, div = %d\n", in _set_timing()
230 clk_set_rate(sossi.fck, sossi.fck_hz / div); in _set_timing()
231 clk_enable(sossi.fck); in _set_timing()
236 clk_disable(sossi.fck); in _set_timing()
267 if (access != sossi.last_access) { in set_timing()
268 sossi.last_access = access; in set_timing()
269 _set_timing(sossi.clk_div, in set_timing()
270 sossi.clk_tw0[access], sossi.clk_tw1[access]); in set_timing()
317 unsigned long nr_cycles = len / (sossi.bus_pick_width / 8); in set_cycles()
353 sossi.clk_tw0[RD_ACCESS] = t->tim[0]; in sossi_set_timings()
354 sossi.clk_tw1[RD_ACCESS] = t->tim[1]; in sossi_set_timings()
356 sossi.clk_tw0[WR_ACCESS] = t->tim[2]; in sossi_set_timings()
357 sossi.clk_tw1[WR_ACCESS] = t->tim[3]; in sossi_set_timings()
359 sossi.clk_div = t->tim[4]; in sossi_set_timings()
364 *clk_period = HZ_TO_PS(sossi.fck_hz); in sossi_get_clk_info()
390 sossi.bus_pick_width = bus_pick_width; in sossi_set_bits_per_cycle()
391 sossi.bus_pick_count = bus_pick_count; in sossi_set_bits_per_cycle()
415 dev_dbg(sossi.fbdev->dev, in sossi_setup_tearsync()
419 clk_enable(sossi.fck); in sossi_setup_tearsync()
433 clk_disable(sossi.fck); in sossi_setup_tearsync()
442 dev_dbg(sossi.fbdev->dev, "tearsync %d line %d\n", enable, line); in sossi_enable_tearsync()
452 sossi.tearsync_line = line; in sossi_enable_tearsync()
453 sossi.tearsync_mode = mode; in sossi_enable_tearsync()
460 clk_enable(sossi.fck); in sossi_write_command()
462 _set_bits_per_cycle(sossi.bus_pick_count, sossi.bus_pick_width); in sossi_write_command()
470 clk_disable(sossi.fck); in sossi_write_command()
475 clk_enable(sossi.fck); in sossi_write_data()
477 _set_bits_per_cycle(sossi.bus_pick_count, sossi.bus_pick_width); in sossi_write_data()
485 clk_disable(sossi.fck); in sossi_write_data()
493 sossi.lcdc_callback = callback; in sossi_transfer_area()
494 sossi.lcdc_callback_data = data; in sossi_transfer_area()
496 clk_enable(sossi.fck); in sossi_transfer_area()
498 _set_bits_per_cycle(sossi.bus_pick_count, sossi.bus_pick_width); in sossi_transfer_area()
499 _set_tearsync_mode(sossi.tearsync_mode, sossi.tearsync_line); in sossi_transfer_area()
502 set_cycles(width * height * sossi.bus_pick_width / 8); in sossi_transfer_area()
505 if (sossi.tearsync_mode) { in sossi_transfer_area()
514 spin_lock_irqsave(&sossi.lock, flags); in sossi_transfer_area()
515 sossi.vsync_dma_pending++; in sossi_transfer_area()
516 spin_unlock_irqrestore(&sossi.lock, flags); in sossi_transfer_area()
526 clk_disable(sossi.fck); in sossi_dma_callback()
527 sossi.lcdc_callback(sossi.lcdc_callback_data); in sossi_dma_callback()
532 clk_enable(sossi.fck); in sossi_read_data()
534 _set_bits_per_cycle(sossi.bus_pick_count, sossi.bus_pick_width); in sossi_read_data()
555 clk_disable(sossi.fck); in sossi_read_data()
562 spin_lock_irqsave(&sossi.lock, flags); in sossi_match_irq()
563 if (sossi.vsync_dma_pending) { in sossi_match_irq()
564 sossi.vsync_dma_pending--; in sossi_match_irq()
567 spin_unlock_irqrestore(&sossi.lock, flags); in sossi_match_irq()
578 sossi.base = ioremap(OMAP_SOSSI_BASE, SZ_1K); in sossi_init()
579 if (!sossi.base) { in sossi_init()
584 sossi.fbdev = fbdev; in sossi_init()
585 spin_lock_init(&sossi.lock); in sossi_init()
597 sossi.fck_hz = clk_get_rate(dpll1out_ck); in sossi_init()
605 sossi.fck = fck; in sossi_init()
614 clk_enable(sossi.fck); in sossi_init()
656 "sossi_match", sossi.fbdev->dev)) < 0) { in sossi_init()
657 dev_err(sossi.fbdev->dev, "can't get SoSSI match IRQ\n"); in sossi_init()
661 clk_disable(sossi.fck); in sossi_init()
665 clk_disable(sossi.fck); in sossi_init()
666 clk_put(sossi.fck); in sossi_init()
673 clk_put(sossi.fck); in sossi_cleanup()
674 iounmap(sossi.base); in sossi_cleanup()