Lines Matching refs:fbi

45 	struct wm8505fb_info *fbi = to_wm8505fb_info(info);  in wm8505fb_init_hw()  local
51 writel(0, fbi->regbase + i); in wm8505fb_init_hw()
54 writel(fbi->fb.fix.smem_start, fbi->regbase + WMT_GOVR_FBADDR); in wm8505fb_init_hw()
55 writel(fbi->fb.fix.smem_start, fbi->regbase + WMT_GOVR_FBADDR1); in wm8505fb_init_hw()
62 writel(0x31c, fbi->regbase + WMT_GOVR_COLORSPACE); in wm8505fb_init_hw()
63 writel(1, fbi->regbase + WMT_GOVR_COLORSPACE1); in wm8505fb_init_hw()
66 writel(info->var.xres, fbi->regbase + WMT_GOVR_XRES); in wm8505fb_init_hw()
67 writel(info->var.xres_virtual, fbi->regbase + WMT_GOVR_XRES_VIRTUAL); in wm8505fb_init_hw()
70 writel(0xf, fbi->regbase + WMT_GOVR_FHI); in wm8505fb_init_hw()
71 writel(4, fbi->regbase + WMT_GOVR_DVO_SET); in wm8505fb_init_hw()
72 writel(1, fbi->regbase + WMT_GOVR_MIF_ENABLE); in wm8505fb_init_hw()
73 writel(1, fbi->regbase + WMT_GOVR_REG_UPDATE); in wm8505fb_init_hw()
80 struct wm8505fb_info *fbi = to_wm8505fb_info(info); in wm8505fb_set_timing() local
92 writel(0, fbi->regbase + WMT_GOVR_TG); in wm8505fb_set_timing()
94 writel(h_start, fbi->regbase + WMT_GOVR_TIMING_H_START); in wm8505fb_set_timing()
95 writel(h_end, fbi->regbase + WMT_GOVR_TIMING_H_END); in wm8505fb_set_timing()
96 writel(h_all, fbi->regbase + WMT_GOVR_TIMING_H_ALL); in wm8505fb_set_timing()
97 writel(h_sync, fbi->regbase + WMT_GOVR_TIMING_H_SYNC); in wm8505fb_set_timing()
99 writel(v_start, fbi->regbase + WMT_GOVR_TIMING_V_START); in wm8505fb_set_timing()
100 writel(v_end, fbi->regbase + WMT_GOVR_TIMING_V_END); in wm8505fb_set_timing()
101 writel(v_all, fbi->regbase + WMT_GOVR_TIMING_V_ALL); in wm8505fb_set_timing()
102 writel(v_sync, fbi->regbase + WMT_GOVR_TIMING_V_SYNC); in wm8505fb_set_timing()
104 writel(1, fbi->regbase + WMT_GOVR_TG); in wm8505fb_set_timing()
112 struct wm8505fb_info *fbi = to_wm8505fb_info(info); in wm8505fb_set_par() local
114 if (!fbi) in wm8505fb_set_par()
145 writel(fbi->contrast<<16 | fbi->contrast<<8 | fbi->contrast, in wm8505fb_set_par()
146 fbi->regbase + WMT_GOVR_CONTRAST); in wm8505fb_set_par()
155 struct wm8505fb_info *fbi = to_wm8505fb_info(info); in contrast_show() local
157 return sprintf(buf, "%u\n", fbi->contrast); in contrast_show()
165 struct wm8505fb_info *fbi = to_wm8505fb_info(info); in contrast_store() local
170 fbi->contrast = tmp; in contrast_store()
195 struct wm8505fb_info *fbi = to_wm8505fb_info(info); in wm8505fb_setcolreg() local
205 switch (fbi->fb.fix.visual) { in wm8505fb_setcolreg()
210 val = chan_to_field(red, &fbi->fb.var.red); in wm8505fb_setcolreg()
211 val |= chan_to_field(green, &fbi->fb.var.green); in wm8505fb_setcolreg()
212 val |= chan_to_field(blue, &fbi->fb.var.blue); in wm8505fb_setcolreg()
226 struct wm8505fb_info *fbi = to_wm8505fb_info(info); in wm8505fb_pan_display() local
228 writel(var->xoffset, fbi->regbase + WMT_GOVR_XPAN); in wm8505fb_pan_display()
229 writel(var->yoffset, fbi->regbase + WMT_GOVR_YPAN); in wm8505fb_pan_display()
235 struct wm8505fb_info *fbi = to_wm8505fb_info(info); in wm8505fb_blank() local
242 writel(0, fbi->regbase + WMT_GOVR_TIMING_V_SYNC); in wm8505fb_blank()
263 struct wm8505fb_info *fbi; in wm8505fb_probe() local
274 fbi = devm_kzalloc(&pdev->dev, sizeof(struct wm8505fb_info) + in wm8505fb_probe()
276 if (!fbi) in wm8505fb_probe()
279 strcpy(fbi->fb.fix.id, DRIVER_NAME); in wm8505fb_probe()
281 fbi->fb.fix.type = FB_TYPE_PACKED_PIXELS; in wm8505fb_probe()
282 fbi->fb.fix.xpanstep = 1; in wm8505fb_probe()
283 fbi->fb.fix.ypanstep = 1; in wm8505fb_probe()
284 fbi->fb.fix.ywrapstep = 0; in wm8505fb_probe()
285 fbi->fb.fix.accel = FB_ACCEL_NONE; in wm8505fb_probe()
287 fbi->fb.fbops = &wm8505fb_ops; in wm8505fb_probe()
288 fbi->fb.flags = FBINFO_HWACCEL_COPYAREA in wm8505fb_probe()
294 fbi->fb.node = -1; in wm8505fb_probe()
296 addr = fbi; in wm8505fb_probe()
298 fbi->fb.pseudo_palette = addr; in wm8505fb_probe()
300 fbi->regbase = devm_platform_ioremap_resource(pdev, 0); in wm8505fb_probe()
301 if (IS_ERR(fbi->regbase)) in wm8505fb_probe()
302 return PTR_ERR(fbi->regbase); in wm8505fb_probe()
316 fb_videomode_to_var(&fbi->fb.var, &mode); in wm8505fb_probe()
318 fbi->fb.var.nonstd = 0; in wm8505fb_probe()
319 fbi->fb.var.activate = FB_ACTIVATE_NOW; in wm8505fb_probe()
321 fbi->fb.var.height = -1; in wm8505fb_probe()
322 fbi->fb.var.width = -1; in wm8505fb_probe()
333 fbi->fb.var.xres_virtual = mode.xres; in wm8505fb_probe()
334 fbi->fb.var.yres_virtual = mode.yres * 2; in wm8505fb_probe()
335 fbi->fb.var.bits_per_pixel = bpp; in wm8505fb_probe()
337 fbi->fb.fix.smem_start = fb_mem_phys; in wm8505fb_probe()
338 fbi->fb.fix.smem_len = fb_mem_len; in wm8505fb_probe()
339 fbi->fb.screen_buffer = fb_mem_virt; in wm8505fb_probe()
340 fbi->fb.screen_size = fb_mem_len; in wm8505fb_probe()
342 fbi->contrast = 0x10; in wm8505fb_probe()
343 ret = wm8505fb_set_par(&fbi->fb); in wm8505fb_probe()
349 if (fb_alloc_cmap(&fbi->fb.cmap, 256, 0) < 0) { in wm8505fb_probe()
354 wm8505fb_init_hw(&fbi->fb); in wm8505fb_probe()
356 platform_set_drvdata(pdev, fbi); in wm8505fb_probe()
358 ret = register_framebuffer(&fbi->fb); in wm8505fb_probe()
362 if (fbi->fb.cmap.len) in wm8505fb_probe()
363 fb_dealloc_cmap(&fbi->fb.cmap); in wm8505fb_probe()
367 fb_info(&fbi->fb, "%s frame buffer at 0x%lx-0x%lx\n", in wm8505fb_probe()
368 fbi->fb.fix.id, fbi->fb.fix.smem_start, in wm8505fb_probe()
369 fbi->fb.fix.smem_start + fbi->fb.fix.smem_len - 1); in wm8505fb_probe()
376 struct wm8505fb_info *fbi = platform_get_drvdata(pdev); in wm8505fb_remove() local
378 unregister_framebuffer(&fbi->fb); in wm8505fb_remove()
380 writel(0, fbi->regbase); in wm8505fb_remove()
382 if (fbi->fb.cmap.len) in wm8505fb_remove()
383 fb_dealloc_cmap(&fbi->fb.cmap); in wm8505fb_remove()