Lines Matching refs:info

67 static inline void lcd_write_control(struct fb_info *info, u8 control)  in lcd_write_control()  argument
69 writel((u32)control << 24, info->screen_base); in lcd_write_control()
72 static inline u8 lcd_read_control(struct fb_info *info) in lcd_read_control() argument
74 return readl(info->screen_base) >> 24; in lcd_read_control()
77 static inline void lcd_write_data(struct fb_info *info, u8 data) in lcd_write_data() argument
79 writel((u32)data << 24, info->screen_base + LCD_DATA_REG_OFFSET); in lcd_write_data()
82 static inline u8 lcd_read_data(struct fb_info *info) in lcd_read_data() argument
84 return readl(info->screen_base + LCD_DATA_REG_OFFSET) >> 24; in lcd_read_data()
93 static inline void cpld_wait(struct fb_info *info) in cpld_wait() argument
96 } while (readl(info->screen_base + CPLD_STATUS) & 1); in cpld_wait()
99 static inline void lcd_write_control(struct fb_info *info, u8 control) in lcd_write_control() argument
101 cpld_wait(info); in lcd_write_control()
102 writel(control, info->screen_base + LCD_CTL); in lcd_write_control()
105 static inline u8 lcd_read_control(struct fb_info *info) in lcd_read_control() argument
107 cpld_wait(info); in lcd_read_control()
108 readl(info->screen_base + LCD_CTL); in lcd_read_control()
109 cpld_wait(info); in lcd_read_control()
110 return readl(info->screen_base + CPLD_DATA) & 0xff; in lcd_read_control()
113 static inline void lcd_write_data(struct fb_info *info, u8 data) in lcd_write_data() argument
115 cpld_wait(info); in lcd_write_data()
116 writel(data, info->screen_base + LCD_DATA); in lcd_write_data()
119 static inline u8 lcd_read_data(struct fb_info *info) in lcd_read_data() argument
121 cpld_wait(info); in lcd_read_data()
122 readl(info->screen_base + LCD_DATA); in lcd_read_data()
123 cpld_wait(info); in lcd_read_data()
124 return readl(info->screen_base + CPLD_DATA) & 0xff; in lcd_read_data()
128 static int lcd_busy_wait(struct fb_info *info) in lcd_busy_wait() argument
134 val = lcd_read_control(info); in lcd_busy_wait()
151 static void lcd_clear(struct fb_info *info) in lcd_clear() argument
158 lcd_write_control(info, LCD_PRERESET); in lcd_clear()
163 lcd_write_control(info, LCD_CLEAR); in lcd_clear()
167 lcd_write_control(info, LCD_RESET); in lcd_clear()
179 static ssize_t cobalt_lcdfb_read(struct fb_info *info, char __user *buf, in cobalt_lcdfb_read() argument
197 retval = lcd_busy_wait(info); in cobalt_lcdfb_read()
201 lcd_write_control(info, LCD_TEXT_POS(pos)); in cobalt_lcdfb_read()
203 retval = lcd_busy_wait(info); in cobalt_lcdfb_read()
207 src[len] = lcd_read_data(info); in cobalt_lcdfb_read()
225 static ssize_t cobalt_lcdfb_write(struct fb_info *info, const char __user *buf, in cobalt_lcdfb_write() argument
246 retval = lcd_busy_wait(info); in cobalt_lcdfb_write()
250 lcd_write_control(info, LCD_TEXT_POS(pos)); in cobalt_lcdfb_write()
252 retval = lcd_busy_wait(info); in cobalt_lcdfb_write()
256 lcd_write_data(info, dst[len]); in cobalt_lcdfb_write()
271 static int cobalt_lcdfb_blank(int blank_mode, struct fb_info *info) in cobalt_lcdfb_blank() argument
275 retval = lcd_busy_wait(info); in cobalt_lcdfb_blank()
281 lcd_write_control(info, LCD_ON); in cobalt_lcdfb_blank()
284 lcd_write_control(info, LCD_OFF); in cobalt_lcdfb_blank()
291 static int cobalt_lcdfb_cursor(struct fb_info *info, struct fb_cursor *cursor) in cobalt_lcdfb_cursor() argument
303 retval = lcd_busy_wait(info); in cobalt_lcdfb_cursor()
307 lcd_write_control(info, in cobalt_lcdfb_cursor()
308 LCD_TEXT_POS(info->fix.line_length * y + x)); in cobalt_lcdfb_cursor()
314 retval = lcd_busy_wait(info); in cobalt_lcdfb_cursor()
319 lcd_write_control(info, LCD_CURSOR_ON); in cobalt_lcdfb_cursor()
321 lcd_write_control(info, LCD_CURSOR_OFF); in cobalt_lcdfb_cursor()
336 struct fb_info *info; in cobalt_lcdfb_probe() local
340 info = framebuffer_alloc(0, &dev->dev); in cobalt_lcdfb_probe()
341 if (!info) in cobalt_lcdfb_probe()
346 framebuffer_release(info); in cobalt_lcdfb_probe()
350 info->screen_size = resource_size(res); in cobalt_lcdfb_probe()
351 info->screen_base = devm_ioremap(&dev->dev, res->start, in cobalt_lcdfb_probe()
352 info->screen_size); in cobalt_lcdfb_probe()
353 info->fbops = &cobalt_lcd_fbops; in cobalt_lcdfb_probe()
354 info->fix = cobalt_lcdfb_fix; in cobalt_lcdfb_probe()
355 info->fix.smem_start = res->start; in cobalt_lcdfb_probe()
356 info->fix.smem_len = info->screen_size; in cobalt_lcdfb_probe()
357 info->pseudo_palette = NULL; in cobalt_lcdfb_probe()
358 info->par = NULL; in cobalt_lcdfb_probe()
359 info->flags = FBINFO_DEFAULT; in cobalt_lcdfb_probe()
361 retval = register_framebuffer(info); in cobalt_lcdfb_probe()
363 framebuffer_release(info); in cobalt_lcdfb_probe()
367 platform_set_drvdata(dev, info); in cobalt_lcdfb_probe()
369 lcd_clear(info); in cobalt_lcdfb_probe()
371 fb_info(info, "Cobalt server LCD frame buffer device\n"); in cobalt_lcdfb_probe()
378 struct fb_info *info; in cobalt_lcdfb_remove() local
380 info = platform_get_drvdata(dev); in cobalt_lcdfb_remove()
381 if (info) { in cobalt_lcdfb_remove()
382 unregister_framebuffer(info); in cobalt_lcdfb_remove()
383 framebuffer_release(info); in cobalt_lcdfb_remove()