Lines Matching refs:fbi
126 static inline unsigned int ep93xxfb_readl(struct ep93xx_fbi *fbi, in ep93xxfb_readl() argument
129 return __raw_readl(fbi->mmio_base + off); in ep93xxfb_readl()
132 static inline void ep93xxfb_writel(struct ep93xx_fbi *fbi, in ep93xxfb_writel() argument
135 __raw_writel(val, fbi->mmio_base + off); in ep93xxfb_writel()
141 static inline void ep93xxfb_out_locked(struct ep93xx_fbi *fbi, in ep93xxfb_out_locked() argument
148 ep93xxfb_writel(fbi, 0xaa, EP93XXFB_SWLOCK); in ep93xxfb_out_locked()
149 ep93xxfb_writel(fbi, val, reg); in ep93xxfb_out_locked()
154 struct ep93xx_fbi *fbi = info->par; in ep93xxfb_set_video_attribs() local
158 attribs |= fbi->mach_info->flags; in ep93xxfb_set_video_attribs()
159 ep93xxfb_out_locked(fbi, attribs, EP93XXFB_ATTRIBS); in ep93xxfb_set_video_attribs()
164 struct ep93xx_fbi *fbi = info->par; in ep93xxfb_set_pixelmode() local
227 ep93xxfb_writel(fbi, val, EP93XXFB_PIXELMODE); in ep93xxfb_set_pixelmode()
233 struct ep93xx_fbi *fbi = info->par; in ep93xxfb_set_timing() local
242 ep93xxfb_out_locked(fbi, vlines_total, EP93XXFB_VLINES_TOTAL); in ep93xxfb_set_timing()
243 ep93xxfb_out_locked(fbi, hclks_total, EP93XXFB_HCLKS_TOTAL); in ep93xxfb_set_timing()
247 ep93xxfb_out_locked(fbi, start | (stop << 16), EP93XXFB_VSYNC); in ep93xxfb_set_timing()
251 ep93xxfb_out_locked(fbi, start | (stop << 16), EP93XXFB_VBLANK); in ep93xxfb_set_timing()
252 ep93xxfb_out_locked(fbi, start | (stop << 16), EP93XXFB_VACTIVE); in ep93xxfb_set_timing()
256 ep93xxfb_out_locked(fbi, start | (stop << 16), EP93XXFB_VCLK); in ep93xxfb_set_timing()
260 ep93xxfb_out_locked(fbi, start | (stop << 16), EP93XXFB_HSYNC); in ep93xxfb_set_timing()
264 ep93xxfb_out_locked(fbi, start | (stop << 16), EP93XXFB_HBLANK); in ep93xxfb_set_timing()
265 ep93xxfb_out_locked(fbi, start | (stop << 16), EP93XXFB_HACTIVE); in ep93xxfb_set_timing()
269 ep93xxfb_out_locked(fbi, start | (stop << 16), EP93XXFB_HCLK); in ep93xxfb_set_timing()
271 ep93xxfb_out_locked(fbi, 0x0, EP93XXFB_LINE_CARRY); in ep93xxfb_set_timing()
276 struct ep93xx_fbi *fbi = info->par; in ep93xxfb_set_par() local
278 clk_set_rate(fbi->clk, 1000 * PICOS2KHZ(info->var.pixclock)); in ep93xxfb_set_par()
285 ep93xxfb_writel(fbi, info->fix.smem_start, EP93XXFB_SCREEN_PAGE); in ep93xxfb_set_par()
286 ep93xxfb_writel(fbi, info->var.yres - 1, EP93XXFB_SCREEN_LINES); in ep93xxfb_set_par()
287 ep93xxfb_writel(fbi, ((info->var.xres * info->var.bits_per_pixel) in ep93xxfb_set_par()
289 ep93xxfb_writel(fbi, info->fix.line_length / 4, EP93XXFB_VLINE_STEP); in ep93xxfb_set_par()
328 struct ep93xx_fbi *fbi = info->par; in ep93xxfb_blank() local
329 unsigned int attribs = ep93xxfb_readl(fbi, EP93XXFB_ATTRIBS); in ep93xxfb_blank()
332 if (fbi->mach_info->blank) in ep93xxfb_blank()
333 fbi->mach_info->blank(blank_mode, info); in ep93xxfb_blank()
334 ep93xxfb_out_locked(fbi, attribs & ~EP93XXFB_ENABLE, in ep93xxfb_blank()
336 clk_disable(fbi->clk); in ep93xxfb_blank()
338 clk_enable(fbi->clk); in ep93xxfb_blank()
339 ep93xxfb_out_locked(fbi, attribs | EP93XXFB_ENABLE, in ep93xxfb_blank()
341 if (fbi->mach_info->blank) in ep93xxfb_blank()
342 fbi->mach_info->blank(blank_mode, info); in ep93xxfb_blank()
357 struct ep93xx_fbi *fbi = info->par; in ep93xxfb_setcolreg() local
369 ep93xxfb_writel(fbi, rgb, (EP93XXFB_COLOR_LUT + (regno << 2))); in ep93xxfb_setcolreg()
370 ctrl = ep93xxfb_readl(fbi, EP93XXFB_LUT_SW_CONTROL); in ep93xxfb_setcolreg()
376 ep93xxfb_writel(fbi, pal[i], in ep93xxfb_setcolreg()
380 ep93xxfb_writel(fbi, in ep93xxfb_setcolreg()
469 struct ep93xx_fbi *fbi; in ep93xxfb_probe() local
483 fbi = info->par; in ep93xxfb_probe()
484 fbi->mach_info = mach_info; in ep93xxfb_probe()
509 fbi->res = res; in ep93xxfb_probe()
510 fbi->mmio_base = devm_ioremap(&pdev->dev, res->start, in ep93xxfb_probe()
512 if (!fbi->mmio_base) { in ep93xxfb_probe()
526 info->pseudo_palette = &fbi->pseudo_palette; in ep93xxfb_probe()
547 fbi->clk = devm_clk_get(&pdev->dev, NULL); in ep93xxfb_probe()
548 if (IS_ERR(fbi->clk)) { in ep93xxfb_probe()
549 err = PTR_ERR(fbi->clk); in ep93xxfb_probe()
550 fbi->clk = NULL; in ep93xxfb_probe()
555 clk_enable(fbi->clk); in ep93xxfb_probe()
566 if (fbi->mach_info->teardown) in ep93xxfb_probe()
567 fbi->mach_info->teardown(pdev); in ep93xxfb_probe()
581 struct ep93xx_fbi *fbi = info->par; in ep93xxfb_remove() local
584 clk_disable(fbi->clk); in ep93xxfb_remove()
588 if (fbi->mach_info->teardown) in ep93xxfb_remove()
589 fbi->mach_info->teardown(pdev); in ep93xxfb_remove()