Lines Matching refs:fbi
53 struct wm8505fb_info *fbi = to_wm8505fb_info(info); in wm8505fb_init_hw() local
59 writel(0, fbi->regbase + i); in wm8505fb_init_hw()
62 writel(fbi->fb.fix.smem_start, fbi->regbase + WMT_GOVR_FBADDR); in wm8505fb_init_hw()
63 writel(fbi->fb.fix.smem_start, fbi->regbase + WMT_GOVR_FBADDR1); in wm8505fb_init_hw()
70 writel(0x31c, fbi->regbase + WMT_GOVR_COLORSPACE); in wm8505fb_init_hw()
71 writel(1, fbi->regbase + WMT_GOVR_COLORSPACE1); in wm8505fb_init_hw()
74 writel(info->var.xres, fbi->regbase + WMT_GOVR_XRES); in wm8505fb_init_hw()
75 writel(info->var.xres_virtual, fbi->regbase + WMT_GOVR_XRES_VIRTUAL); in wm8505fb_init_hw()
78 writel(0xf, fbi->regbase + WMT_GOVR_FHI); in wm8505fb_init_hw()
79 writel(4, fbi->regbase + WMT_GOVR_DVO_SET); in wm8505fb_init_hw()
80 writel(1, fbi->regbase + WMT_GOVR_MIF_ENABLE); in wm8505fb_init_hw()
81 writel(1, fbi->regbase + WMT_GOVR_REG_UPDATE); in wm8505fb_init_hw()
88 struct wm8505fb_info *fbi = to_wm8505fb_info(info); in wm8505fb_set_timing() local
100 writel(0, fbi->regbase + WMT_GOVR_TG); in wm8505fb_set_timing()
102 writel(h_start, fbi->regbase + WMT_GOVR_TIMING_H_START); in wm8505fb_set_timing()
103 writel(h_end, fbi->regbase + WMT_GOVR_TIMING_H_END); in wm8505fb_set_timing()
104 writel(h_all, fbi->regbase + WMT_GOVR_TIMING_H_ALL); in wm8505fb_set_timing()
105 writel(h_sync, fbi->regbase + WMT_GOVR_TIMING_H_SYNC); in wm8505fb_set_timing()
107 writel(v_start, fbi->regbase + WMT_GOVR_TIMING_V_START); in wm8505fb_set_timing()
108 writel(v_end, fbi->regbase + WMT_GOVR_TIMING_V_END); in wm8505fb_set_timing()
109 writel(v_all, fbi->regbase + WMT_GOVR_TIMING_V_ALL); in wm8505fb_set_timing()
110 writel(v_sync, fbi->regbase + WMT_GOVR_TIMING_V_SYNC); in wm8505fb_set_timing()
112 writel(1, fbi->regbase + WMT_GOVR_TG); in wm8505fb_set_timing()
120 struct wm8505fb_info *fbi = to_wm8505fb_info(info); in wm8505fb_set_par() local
122 if (!fbi) in wm8505fb_set_par()
153 writel(fbi->contrast<<16 | fbi->contrast<<8 | fbi->contrast, in wm8505fb_set_par()
154 fbi->regbase + WMT_GOVR_CONTRAST); in wm8505fb_set_par()
163 struct wm8505fb_info *fbi = to_wm8505fb_info(info); in contrast_show() local
165 return sprintf(buf, "%u\n", fbi->contrast); in contrast_show()
173 struct wm8505fb_info *fbi = to_wm8505fb_info(info); in contrast_store() local
178 fbi->contrast = tmp; in contrast_store()
197 struct wm8505fb_info *fbi = to_wm8505fb_info(info); in wm8505fb_setcolreg() local
207 switch (fbi->fb.fix.visual) { in wm8505fb_setcolreg()
212 val = chan_to_field(red, &fbi->fb.var.red); in wm8505fb_setcolreg()
213 val |= chan_to_field(green, &fbi->fb.var.green); in wm8505fb_setcolreg()
214 val |= chan_to_field(blue, &fbi->fb.var.blue); in wm8505fb_setcolreg()
228 struct wm8505fb_info *fbi = to_wm8505fb_info(info); in wm8505fb_pan_display() local
230 writel(var->xoffset, fbi->regbase + WMT_GOVR_XPAN); in wm8505fb_pan_display()
231 writel(var->yoffset, fbi->regbase + WMT_GOVR_YPAN); in wm8505fb_pan_display()
237 struct wm8505fb_info *fbi = to_wm8505fb_info(info); in wm8505fb_blank() local
244 writel(0, fbi->regbase + WMT_GOVR_TIMING_V_SYNC); in wm8505fb_blank()
265 struct wm8505fb_info *fbi; in wm8505fb_probe() local
277 fbi = devm_kzalloc(&pdev->dev, sizeof(struct wm8505fb_info) + in wm8505fb_probe()
279 if (!fbi) { in wm8505fb_probe()
284 strcpy(fbi->fb.fix.id, DRIVER_NAME); in wm8505fb_probe()
286 fbi->fb.fix.type = FB_TYPE_PACKED_PIXELS; in wm8505fb_probe()
287 fbi->fb.fix.xpanstep = 1; in wm8505fb_probe()
288 fbi->fb.fix.ypanstep = 1; in wm8505fb_probe()
289 fbi->fb.fix.ywrapstep = 0; in wm8505fb_probe()
290 fbi->fb.fix.accel = FB_ACCEL_NONE; in wm8505fb_probe()
292 fbi->fb.fbops = &wm8505fb_ops; in wm8505fb_probe()
293 fbi->fb.flags = FBINFO_DEFAULT in wm8505fb_probe()
300 fbi->fb.node = -1; in wm8505fb_probe()
302 addr = fbi; in wm8505fb_probe()
304 fbi->fb.pseudo_palette = addr; in wm8505fb_probe()
307 fbi->regbase = devm_ioremap_resource(&pdev->dev, res); in wm8505fb_probe()
308 if (IS_ERR(fbi->regbase)) in wm8505fb_probe()
309 return PTR_ERR(fbi->regbase); in wm8505fb_probe()
323 fb_videomode_to_var(&fbi->fb.var, &mode); in wm8505fb_probe()
325 fbi->fb.var.nonstd = 0; in wm8505fb_probe()
326 fbi->fb.var.activate = FB_ACTIVATE_NOW; in wm8505fb_probe()
328 fbi->fb.var.height = -1; in wm8505fb_probe()
329 fbi->fb.var.width = -1; in wm8505fb_probe()
340 fbi->fb.var.xres_virtual = mode.xres; in wm8505fb_probe()
341 fbi->fb.var.yres_virtual = mode.yres * 2; in wm8505fb_probe()
342 fbi->fb.var.bits_per_pixel = bpp; in wm8505fb_probe()
344 fbi->fb.fix.smem_start = fb_mem_phys; in wm8505fb_probe()
345 fbi->fb.fix.smem_len = fb_mem_len; in wm8505fb_probe()
346 fbi->fb.screen_base = fb_mem_virt; in wm8505fb_probe()
347 fbi->fb.screen_size = fb_mem_len; in wm8505fb_probe()
349 fbi->contrast = 0x10; in wm8505fb_probe()
350 ret = wm8505fb_set_par(&fbi->fb); in wm8505fb_probe()
356 if (fb_alloc_cmap(&fbi->fb.cmap, 256, 0) < 0) { in wm8505fb_probe()
361 wm8505fb_init_hw(&fbi->fb); in wm8505fb_probe()
363 platform_set_drvdata(pdev, fbi); in wm8505fb_probe()
365 ret = register_framebuffer(&fbi->fb); in wm8505fb_probe()
369 if (fbi->fb.cmap.len) in wm8505fb_probe()
370 fb_dealloc_cmap(&fbi->fb.cmap); in wm8505fb_probe()
376 fb_warn(&fbi->fb, "failed to register attributes (%d)\n", ret); in wm8505fb_probe()
378 fb_info(&fbi->fb, "%s frame buffer at 0x%lx-0x%lx\n", in wm8505fb_probe()
379 fbi->fb.fix.id, fbi->fb.fix.smem_start, in wm8505fb_probe()
380 fbi->fb.fix.smem_start + fbi->fb.fix.smem_len - 1); in wm8505fb_probe()
387 struct wm8505fb_info *fbi = platform_get_drvdata(pdev); in wm8505fb_remove() local
391 unregister_framebuffer(&fbi->fb); in wm8505fb_remove()
393 writel(0, fbi->regbase); in wm8505fb_remove()
395 if (fbi->fb.cmap.len) in wm8505fb_remove()
396 fb_dealloc_cmap(&fbi->fb.cmap); in wm8505fb_remove()