Lines Matching refs:fbi

122 static inline unsigned int ep93xxfb_readl(struct ep93xx_fbi *fbi,  in ep93xxfb_readl()  argument
125 return __raw_readl(fbi->mmio_base + off); in ep93xxfb_readl()
128 static inline void ep93xxfb_writel(struct ep93xx_fbi *fbi, in ep93xxfb_writel() argument
131 __raw_writel(val, fbi->mmio_base + off); in ep93xxfb_writel()
137 static inline void ep93xxfb_out_locked(struct ep93xx_fbi *fbi, in ep93xxfb_out_locked() argument
144 ep93xxfb_writel(fbi, 0xaa, EP93XXFB_SWLOCK); in ep93xxfb_out_locked()
145 ep93xxfb_writel(fbi, val, reg); in ep93xxfb_out_locked()
150 struct ep93xx_fbi *fbi = info->par; in ep93xxfb_set_video_attribs() local
154 attribs |= fbi->mach_info->flags; in ep93xxfb_set_video_attribs()
155 ep93xxfb_out_locked(fbi, attribs, EP93XXFB_ATTRIBS); in ep93xxfb_set_video_attribs()
160 struct ep93xx_fbi *fbi = info->par; in ep93xxfb_set_pixelmode() local
223 ep93xxfb_writel(fbi, val, EP93XXFB_PIXELMODE); in ep93xxfb_set_pixelmode()
229 struct ep93xx_fbi *fbi = info->par; in ep93xxfb_set_timing() local
238 ep93xxfb_out_locked(fbi, vlines_total, EP93XXFB_VLINES_TOTAL); in ep93xxfb_set_timing()
239 ep93xxfb_out_locked(fbi, hclks_total, EP93XXFB_HCLKS_TOTAL); in ep93xxfb_set_timing()
243 ep93xxfb_out_locked(fbi, start | (stop << 16), EP93XXFB_VSYNC); in ep93xxfb_set_timing()
247 ep93xxfb_out_locked(fbi, start | (stop << 16), EP93XXFB_VBLANK); in ep93xxfb_set_timing()
248 ep93xxfb_out_locked(fbi, start | (stop << 16), EP93XXFB_VACTIVE); in ep93xxfb_set_timing()
252 ep93xxfb_out_locked(fbi, start | (stop << 16), EP93XXFB_VCLK); in ep93xxfb_set_timing()
256 ep93xxfb_out_locked(fbi, start | (stop << 16), EP93XXFB_HSYNC); in ep93xxfb_set_timing()
260 ep93xxfb_out_locked(fbi, start | (stop << 16), EP93XXFB_HBLANK); in ep93xxfb_set_timing()
261 ep93xxfb_out_locked(fbi, start | (stop << 16), EP93XXFB_HACTIVE); in ep93xxfb_set_timing()
265 ep93xxfb_out_locked(fbi, start | (stop << 16), EP93XXFB_HCLK); in ep93xxfb_set_timing()
267 ep93xxfb_out_locked(fbi, 0x0, EP93XXFB_LINE_CARRY); in ep93xxfb_set_timing()
272 struct ep93xx_fbi *fbi = info->par; in ep93xxfb_set_par() local
274 clk_set_rate(fbi->clk, 1000 * PICOS2KHZ(info->var.pixclock)); in ep93xxfb_set_par()
281 ep93xxfb_writel(fbi, info->fix.smem_start, EP93XXFB_SCREEN_PAGE); in ep93xxfb_set_par()
282 ep93xxfb_writel(fbi, info->var.yres - 1, EP93XXFB_SCREEN_LINES); in ep93xxfb_set_par()
283 ep93xxfb_writel(fbi, ((info->var.xres * info->var.bits_per_pixel) in ep93xxfb_set_par()
285 ep93xxfb_writel(fbi, info->fix.line_length / 4, EP93XXFB_VLINE_STEP); in ep93xxfb_set_par()
324 struct ep93xx_fbi *fbi = info->par; in ep93xxfb_blank() local
325 unsigned int attribs = ep93xxfb_readl(fbi, EP93XXFB_ATTRIBS); in ep93xxfb_blank()
328 if (fbi->mach_info->blank) in ep93xxfb_blank()
329 fbi->mach_info->blank(blank_mode, info); in ep93xxfb_blank()
330 ep93xxfb_out_locked(fbi, attribs & ~EP93XXFB_ENABLE, in ep93xxfb_blank()
332 clk_disable(fbi->clk); in ep93xxfb_blank()
334 clk_enable(fbi->clk); in ep93xxfb_blank()
335 ep93xxfb_out_locked(fbi, attribs | EP93XXFB_ENABLE, in ep93xxfb_blank()
337 if (fbi->mach_info->blank) in ep93xxfb_blank()
338 fbi->mach_info->blank(blank_mode, info); in ep93xxfb_blank()
353 struct ep93xx_fbi *fbi = info->par; in ep93xxfb_setcolreg() local
365 ep93xxfb_writel(fbi, rgb, (EP93XXFB_COLOR_LUT + (regno << 2))); in ep93xxfb_setcolreg()
366 ctrl = ep93xxfb_readl(fbi, EP93XXFB_LUT_SW_CONTROL); in ep93xxfb_setcolreg()
372 ep93xxfb_writel(fbi, pal[i], in ep93xxfb_setcolreg()
376 ep93xxfb_writel(fbi, in ep93xxfb_setcolreg()
465 struct ep93xx_fbi *fbi; in ep93xxfb_probe() local
479 fbi = info->par; in ep93xxfb_probe()
480 fbi->mach_info = mach_info; in ep93xxfb_probe()
505 fbi->res = res; in ep93xxfb_probe()
506 fbi->mmio_base = devm_ioremap(&pdev->dev, res->start, in ep93xxfb_probe()
508 if (!fbi->mmio_base) { in ep93xxfb_probe()
522 info->pseudo_palette = &fbi->pseudo_palette; in ep93xxfb_probe()
543 fbi->clk = devm_clk_get(&pdev->dev, NULL); in ep93xxfb_probe()
544 if (IS_ERR(fbi->clk)) { in ep93xxfb_probe()
545 err = PTR_ERR(fbi->clk); in ep93xxfb_probe()
546 fbi->clk = NULL; in ep93xxfb_probe()
551 clk_prepare_enable(fbi->clk); in ep93xxfb_probe()
562 if (fbi->mach_info->teardown) in ep93xxfb_probe()
563 fbi->mach_info->teardown(pdev); in ep93xxfb_probe()
577 struct ep93xx_fbi *fbi = info->par; in ep93xxfb_remove() local
580 clk_disable_unprepare(fbi->clk); in ep93xxfb_remove()
584 if (fbi->mach_info->teardown) in ep93xxfb_remove()
585 fbi->mach_info->teardown(pdev); in ep93xxfb_remove()