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()
329 struct ep93xx_fbi *fbi = info->par; in ep93xxfb_blank() local
330 unsigned int attribs = ep93xxfb_readl(fbi, EP93XXFB_ATTRIBS); in ep93xxfb_blank()
333 if (fbi->mach_info->blank) in ep93xxfb_blank()
334 fbi->mach_info->blank(blank_mode, info); in ep93xxfb_blank()
335 ep93xxfb_out_locked(fbi, attribs & ~EP93XXFB_ENABLE, in ep93xxfb_blank()
337 clk_disable(fbi->clk); in ep93xxfb_blank()
339 clk_enable(fbi->clk); in ep93xxfb_blank()
340 ep93xxfb_out_locked(fbi, attribs | EP93XXFB_ENABLE, in ep93xxfb_blank()
342 if (fbi->mach_info->blank) in ep93xxfb_blank()
343 fbi->mach_info->blank(blank_mode, info); in ep93xxfb_blank()
358 struct ep93xx_fbi *fbi = info->par; in ep93xxfb_setcolreg() local
370 ep93xxfb_writel(fbi, rgb, (EP93XXFB_COLOR_LUT + (regno << 2))); in ep93xxfb_setcolreg()
371 ctrl = ep93xxfb_readl(fbi, EP93XXFB_LUT_SW_CONTROL); in ep93xxfb_setcolreg()
377 ep93xxfb_writel(fbi, pal[i], in ep93xxfb_setcolreg()
381 ep93xxfb_writel(fbi, in ep93xxfb_setcolreg()
446 struct ep93xx_fbi *fbi = info->par; in ep93xxfb_alloc_videomem() local
451 fb_size = ep93xxfb_calc_fbsize(fbi->mach_info); in ep93xxfb_alloc_videomem()
492 struct ep93xx_fbi *fbi; in ep93xxfb_probe() local
506 fbi = info->par; in ep93xxfb_probe()
507 fbi->mach_info = mach_info; in ep93xxfb_probe()
532 fbi->res = res; in ep93xxfb_probe()
533 fbi->mmio_base = devm_ioremap(&pdev->dev, res->start, in ep93xxfb_probe()
535 if (!fbi->mmio_base) { in ep93xxfb_probe()
549 info->pseudo_palette = &fbi->pseudo_palette; in ep93xxfb_probe()
553 fbi->mach_info->modes, fbi->mach_info->num_modes, in ep93xxfb_probe()
554 fbi->mach_info->default_mode, fbi->mach_info->bpp); in ep93xxfb_probe()
571 fbi->clk = devm_clk_get(&pdev->dev, NULL); in ep93xxfb_probe()
572 if (IS_ERR(fbi->clk)) { in ep93xxfb_probe()
573 err = PTR_ERR(fbi->clk); in ep93xxfb_probe()
574 fbi->clk = NULL; in ep93xxfb_probe()
579 clk_enable(fbi->clk); in ep93xxfb_probe()
590 if (fbi->mach_info->teardown) in ep93xxfb_probe()
591 fbi->mach_info->teardown(pdev); in ep93xxfb_probe()
605 struct ep93xx_fbi *fbi = info->par; in ep93xxfb_remove() local
608 clk_disable(fbi->clk); in ep93xxfb_remove()
612 if (fbi->mach_info->teardown) in ep93xxfb_remove()
613 fbi->mach_info->teardown(pdev); in ep93xxfb_remove()