/* include/linux/htc_hdmi.h
 *
 * Copyright (c) 2010 HTC
 *
 * This software is licensed under the terms of the GNU General Public
 * License version 2, as published by the Free Software Foundation, and
 * may be copied, distributed, and modified under those terms.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 */

#ifndef _HTC_HDMI_H_
#define _HTC_HDMI_H_

enum {
        hdmi_mode = 0, /* 0: mirror, 1: presentation */
        hdmi_enabled,
        fb_enabled,
};

#define HDMI_IOCTL_MAGIC	'h'
#define HDMI_SET_MODE		_IOW(HDMI_IOCTL_MAGIC, 1, unsigned)
#define HDMI_GET_MODE		_IOR(HDMI_IOCTL_MAGIC, 2, unsigned)
#define HDMI_DISABLE		_IOW(HDMI_IOCTL_MAGIC, 3, unsigned)
#define HDMI_ENABLE		_IOW(HDMI_IOCTL_MAGIC, 4, unsigned)
#define HDMI_GET_STATE		_IOR(HDMI_IOCTL_MAGIC, 5, unsigned)
#define HDMI_BLIT		_IOW(HDMI_IOCTL_MAGIC, 6, unsigned)
#define HDMI_CABLE_STAT		_IOR(HDMI_IOCTL_MAGIC, 7, unsigned)
#define HDMI_ESTABLISH_TIMING	_IOR(HDMI_IOCTL_MAGIC, 8, unsigned)
#define HDMI_GET_EDID		_IOR(HDMI_IOCTL_MAGIC, 9, unsigned)
#define HDMI_GET_DISPLAY_INFO	_IOR(HDMI_IOCTL_MAGIC, 10, unsigned)

#define ASPECT(w, h)            (w << 8 | h)
struct video_mode {
        unsigned short  width, height, refresh_rate, aspect;
        bool            interlaced, supported;
        char            *descrption;
};

enum {
        PROGRESSIVE,
        INTERLACE,
};

struct display_info {
	unsigned int	visible_width;		/* in mm */
	unsigned int	visible_height;	
	unsigned int	resolution_width;	/* in pixel */
	unsigned int	resolution_height;
};

#endif