17a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen/*
27a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen *  Copyright (C) 2009, Lars-Peter Clausen <lars@metafoo.de>
37a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen *
47a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen *  This program is free software; you can redistribute	 it and/or modify it
57a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen *  under  the terms of	 the GNU General  Public License as published by the
67a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen *  Free Software Foundation;  either version 2 of the	License, or (at your
77a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen *  option) any later version.
87a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen *
97a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen *  You should have received a copy of the  GNU General Public License along
107a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen *  with this program; if not, write  to the Free Software Foundation, Inc.,
117a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen *  675 Mass Ave, Cambridge, MA 02139, USA.
127a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen *
137a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen */
147a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen
157a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen#ifndef __ASM_MACH_JZ4740_JZ4740_FB_H__
167a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen#define __ASM_MACH_JZ4740_JZ4740_FB_H__
177a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen
187a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen#include <linux/fb.h>
197a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen
207a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausenenum jz4740_fb_lcd_type {
217a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	JZ_LCD_TYPE_GENERIC_16_BIT = 0,
227a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	JZ_LCD_TYPE_GENERIC_18_BIT = 0 | (1 << 4),
237a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	JZ_LCD_TYPE_SPECIAL_TFT_1 = 1,
247a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	JZ_LCD_TYPE_SPECIAL_TFT_2 = 2,
257a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	JZ_LCD_TYPE_SPECIAL_TFT_3 = 3,
267a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	JZ_LCD_TYPE_NON_INTERLACED_CCIR656 = 5,
277a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	JZ_LCD_TYPE_INTERLACED_CCIR656 = 7,
287a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	JZ_LCD_TYPE_SINGLE_COLOR_STN = 8,
297a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	JZ_LCD_TYPE_SINGLE_MONOCHROME_STN = 9,
307a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	JZ_LCD_TYPE_DUAL_COLOR_STN = 10,
317a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	JZ_LCD_TYPE_DUAL_MONOCHROME_STN = 11,
327a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	JZ_LCD_TYPE_8BIT_SERIAL = 12,
337a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen};
347a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen
357a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen#define JZ4740_FB_SPECIAL_TFT_CONFIG(start, stop) (((start) << 16) | (stop))
367a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen
377a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen/*
387a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen* width: width of the lcd display in mm
397a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen* height: height of the lcd display in mm
407a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen* num_modes: size of modes
417a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen* modes: list of valid video modes
427a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen* bpp: bits per pixel for the lcd
437a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen* lcd_type: lcd type
447a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen*/
457a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen
467a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausenstruct jz4740_fb_platform_data {
477a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	unsigned int width;
487a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	unsigned int height;
497a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen
507a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	size_t num_modes;
517a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	struct fb_videomode *modes;
527a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen
537a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	unsigned int bpp;
547a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	enum jz4740_fb_lcd_type lcd_type;
557a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen
567a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	struct {
577a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen		uint32_t spl;
587a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen		uint32_t cls;
597a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen		uint32_t ps;
607a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen		uint32_t rev;
617a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	} special_tft_config;
627a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen
637a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	unsigned pixclk_falling_edge:1;
647a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen	unsigned date_enable_active_low:1;
657a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen};
667a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen
677a92d54521443450b14d89c413ec2072365da5bcLars-Peter Clausen#endif
68