summaryrefslogtreecommitdiff
path: root/ANDROID_3.4.5/drivers/video/wmt/hw/wmt-govrh-reg.h
diff options
context:
space:
mode:
Diffstat (limited to 'ANDROID_3.4.5/drivers/video/wmt/hw/wmt-govrh-reg.h')
-rwxr-xr-xANDROID_3.4.5/drivers/video/wmt/hw/wmt-govrh-reg.h366
1 files changed, 366 insertions, 0 deletions
diff --git a/ANDROID_3.4.5/drivers/video/wmt/hw/wmt-govrh-reg.h b/ANDROID_3.4.5/drivers/video/wmt/hw/wmt-govrh-reg.h
new file mode 100755
index 00000000..ecdeb4f2
--- /dev/null
+++ b/ANDROID_3.4.5/drivers/video/wmt/hw/wmt-govrh-reg.h
@@ -0,0 +1,366 @@
+/*++
+ * linux/drivers/video/wmt/hw/wmt-govrh-reg.h
+ * WonderMedia video post processor (VPP) driver
+ *
+ * Copyright c 2014 WonderMedia Technologies, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * WonderMedia Technologies, Inc.
+ * 4F, 533, Chung-Cheng Road, Hsin-Tien, Taipei 231, R.O.C
+--*/
+
+#ifndef WMT_GOVRH_REG_H
+#define WMT_GOVRH_REG_H
+
+/* feature */
+#define WMT_FTBLK_GOVRH
+#ifndef CONFIG_UBOOT
+#define WMT_FTBLK_GOVRH_CURSOR
+#endif
+#define WMT_FTBLK_GOVRH2
+
+#define GOVRH_FRAMEBUF_ALIGN 128
+
+struct govrh_regs {
+ /* base1 */
+ unsigned int cur_addr; /* 0x00 */
+ unsigned int cur_width;
+ unsigned int cur_fb_width;
+ unsigned int cur_vcrop;
+ unsigned int cur_hcrop; /* 0x10 */
+ union {
+ unsigned int val;
+ struct {
+ unsigned int start:11;
+ unsigned int reserved:5;
+ unsigned int end:11;
+ } b;
+ } cur_hcoord; /* 0x14 */
+
+ union {
+ unsigned int val;
+ struct {
+ unsigned int start:11;
+ unsigned int reserved:5;
+ unsigned int end:11;
+ } b;
+ } cur_vcoord; /* 0x18 */
+
+ union {
+ unsigned int val;
+ struct {
+ unsigned int enable:1;
+ unsigned int reserved:7;
+ unsigned int out_field:1; /* 0:frame,1-field */
+ } b;
+ } cur_status; /* 0x1C */
+
+ union {
+ unsigned int val;
+ struct {
+ unsigned int colkey:24;
+ unsigned int enable:1;
+ unsigned int invert:1;
+ unsigned int reserved:2;
+ unsigned int alpha:1;
+ } b;
+ } cur_color_key; /* 0x20 */
+
+ unsigned int reserved[3];
+
+ union {
+ unsigned int val;
+ struct {
+ unsigned int rgb:1;
+ unsigned int yuv422:1;
+ } b;
+ } dvo_pix; /* 0x30 */
+
+ union {
+ unsigned int val;
+ struct {
+ unsigned int delay:14;
+ unsigned int inv:1;
+ } b;
+ } dvo_dly_sel; /* 0x34 */
+
+ union {
+ unsigned int val;
+ struct {
+ unsigned int cur_enable:1;
+ unsigned int mem_enable:1;
+ unsigned int reserved:7;
+ unsigned int err_sts:1;
+ unsigned int reserved2:6;
+ unsigned int cur_sts:1;
+ unsigned int mem_sts:1;
+ } b;
+ } interrupt; /* 0x38 */
+
+ unsigned int dvo_blank_data;
+ unsigned int dirpath; /* 0x40 */
+ union {
+ unsigned int val;
+ struct {
+ unsigned int v:8;
+ unsigned int u:8;
+ unsigned int y:8;
+ } b;
+ } saturation; /* 0x44 */
+
+ union {
+ unsigned int val;
+ struct {
+ unsigned int enable:1;
+ unsigned int format:1; /* 0:YCbCr, 1:RGB */
+ } b;
+ } saturation_enable; /* 0x48 */
+
+ unsigned int reserved2[13];
+ union {
+ unsigned int val;
+ struct {
+ unsigned int enable:1;
+ unsigned int reserved:7;
+ unsigned int h264:1;
+ } b;
+ } mif; /* 0x80 */
+
+ unsigned int colfmt; /* 0x84, 0:422,1:420 */
+ unsigned int srcfmt; /* 0x88, 0:frame,1:field */
+ unsigned int dstfmt; /* 0x8C, 0:frame,1:field */
+ unsigned int ysa; /* 0x90 */
+ unsigned int csa;
+ unsigned int pixwid;
+ unsigned int bufwid;
+ unsigned int vcrop; /* 0xA0 */
+ unsigned int hcrop;
+ unsigned int fhi;
+ unsigned int colfmt2; /* 0xAC, 1-444,other refer 0x84 */
+ unsigned int ysa2; /* 0xB0 */
+ unsigned int csa2;
+ union {
+ unsigned int val;
+ struct {
+ unsigned int req_num:8; /* Y & RGB */
+ unsigned int req_num_c:8; /* C */
+ unsigned int frame_enable:1;
+ } b;
+ } mif_frame_mode; /* 0xB8 */
+
+ unsigned int reserved3[10];
+ union {
+ unsigned int val;
+ struct {
+ unsigned int update:1;
+ unsigned int reserved:7;
+ unsigned int level:1; /* 0:level 1, 1:level2 */
+ } b;
+ } sts; /* 0xE4 */
+
+ union {
+ unsigned int val;
+ struct {
+ unsigned int fixed:1; /* 0-top, 1-bottom */
+ unsigned int enable:1;
+ } b;
+ } swfld; /* 0xE8 */
+
+ unsigned int reserved4[5];
+ /* base2 */
+ union {
+ unsigned int val;
+ struct {
+ unsigned int enable:1;
+ unsigned int reserved:7;
+ unsigned int mode:1; /* 0-frame,1-field */
+ } b;
+ } tg_enable; /* 0x100 */
+
+ unsigned int read_cyc;
+ unsigned int h_allpxl;
+ unsigned int v_allln;
+ unsigned int actln_bg; /* 0x110 */
+ unsigned int actln_end;
+ unsigned int actpx_bg;
+ unsigned int actpx_end;
+ unsigned int vbie_line; /* 0x120 */
+ unsigned int pvbi_line;
+ unsigned int hdmi_vbisw;
+ unsigned int hdmi_hsynw;
+ union {
+ unsigned int val;
+ struct {
+ unsigned int offset:12;
+ unsigned int reserved:4;
+ unsigned int field_invert:1;
+ } b;
+ } vsync_offset; /* 0x130 */
+
+ unsigned int field_status; /* 0x134, 1-BOTTOM,0-TOP */
+ unsigned int reserved5[1]; /* 0x138 */
+ union {
+ unsigned int val;
+ struct {
+ unsigned int mode:3; /* 011-frame packing progressive
+ format,111-frame packing interlace format */
+ unsigned int inv_filed_polar:1;
+ unsigned int blank_value:16;
+ unsigned int reserved:11;
+ unsigned int addr_sel:1; /* in frame packing
+ interlace mode */
+ } b;
+ } hdmi_3d; /* 0x13C */
+
+ unsigned int reserved5_2[2];
+ union {
+ unsigned int val;
+ struct {
+ unsigned int outwidth:1; /* 0-24bit,1-12bit */
+ unsigned int hsync_polar:1; /* 0-act high,1-act low */
+ unsigned int enable:1;
+ unsigned int vsync_polar:1; /* 0-act high,1-act low */
+ unsigned int reserved:4;
+ unsigned int rgb_swap:2; /* 0-RGB[7:0],1-RGB[0:7],
+ 2-BGR[7:0],3-BGR[0:7] */
+ unsigned int reserved2:6;
+ unsigned int blk_dis:1; /* 0-Blank Data,
+ 1-Embeded sync CCIR656 */
+ } b;
+ } dvo_set; /* 0x148 */
+
+ unsigned int reserved6;
+ union {
+ unsigned int val;
+ struct {
+ unsigned int enable:1;
+ unsigned int reserved1:7;
+ unsigned int mode:1;
+ unsigned int reserved2:7;
+ unsigned int inversion:1;
+ } b;
+ } cb_enable; /* 0x150 */
+
+ unsigned int reserved7;
+ unsigned int h_allpxl2;
+ unsigned int v_allln2;
+ unsigned int actln_bg2; /* 0x160 */
+ unsigned int actln_end2;
+ unsigned int actpx_bg2;
+ unsigned int actpx_end2;
+ unsigned int vbie_line2; /* 0x170 */
+ unsigned int pvbi_line2;
+ unsigned int hdmi_vbisw2;
+ unsigned int hdmi_hsynw2;
+ union {
+ unsigned int val;
+ struct {
+ unsigned int outwidth:1; /* 0-24bit,1-12bit */
+ unsigned int hsync_polar:1; /* 0-act high,1-act low */
+ unsigned int enable:1;
+ unsigned int vsync_polar:1; /* 0-act high,1-act low */
+ } b;
+ } lvds_ctrl; /* 0x180 */
+
+ union {
+ unsigned int val;
+ struct {
+ unsigned int pix:2; /* 0-YUV444,1-RGB,2-YUV422,3-RGB */
+ } b;
+ } lvds_ctrl2; /* 0x184 */
+
+ unsigned int reserved_dac[12];
+
+ union {
+ unsigned int val;
+ struct {
+ unsigned int praf:8;
+ unsigned int pbaf:8;
+ unsigned int yaf:8;
+ } b;
+ } contrast; /* 0x1B8 */
+
+ unsigned int brightness;
+ unsigned int dmacsc_coef0; /* 0x1C0 */
+ unsigned int dmacsc_coef1;
+ unsigned int dmacsc_coef2;
+ unsigned int dmacsc_coef3;
+ unsigned int dmacsc_coef4; /* 0x1D0 */
+ unsigned int reserved8;
+ unsigned int dmacsc_coef5;
+ unsigned int dmacsc_coef6;
+ union {
+ unsigned int val;
+ struct {
+ unsigned int mode:1; /* 1: YUV2RGB, 0: RGB2YUV */
+ unsigned int clamp:1; /* 0:Y,1:Y-16 */
+ } b;
+ } csc_mode; /* 0x1E0 */
+
+ union {
+ unsigned int val;
+ struct {
+ unsigned int dvo:1;
+ unsigned int vga:1;
+ unsigned int reserved1:1;
+ unsigned int dac_clkinv:1;
+ unsigned int blank_zero:1;
+ unsigned int disp:1;
+ unsigned int lvds:1;
+ unsigned int hdmi:1;
+ unsigned int rgb_mode:2; /*0-YUV,1-RGB24,2-1555,3-565*/
+ } b;
+ } yuv2rgb; /* 0x1E4 */
+
+ unsigned int h264_input_en; /* 0x1E8 */
+ unsigned int reserved9;
+ unsigned int lvds_clkinv; /* 0x1F0 */
+ unsigned int hscale_up; /* 0x1F4 */
+ union {
+ unsigned int val;
+ struct {
+ unsigned int mode:3; /* 0:888,1:555,2:666,3:565,4:ori */
+ unsigned int reserved:5;
+ unsigned int ldi:1; /* 0:shift right,1:shift left */
+ } b;
+ } igs_mode; /* 0x1F8 */
+
+ union {
+ unsigned int val;
+ struct {
+ unsigned int mode:3; /* 0:888,1:555,2:666,3:565,4:ori */
+ unsigned int reserved:5;
+ unsigned int ldi:1; /* 0:shift right,1:shift left */
+ } b;
+ } igs_mode2; /* 0x1FC */
+};
+
+/* GOVRH */
+#define REG_GOVRH_BASE1_BEGIN (GOVRH_BASE1_ADDR+0x00)
+#define REG_GOVRH_YSA (GOVRH_BASE1_ADDR+0x90)
+#define REG_GOVRH_CSA (GOVRH_BASE1_ADDR+0x94)
+#define REG_GOVRH_BASE1_END (GOVRH_BASE1_ADDR+0xe8)
+#define REG_GOVRH_BASE2_BEGIN (GOVRH_BASE2_ADDR+0x00)
+#define REG_GOVRH_BASE2_END (GOVRH_BASE2_ADDR+0xFC)
+
+/* GOVRH2 */
+#define REG_GOVRH2_BASE1_BEGIN (GOVRH2_BASE1_ADDR+0x00)
+#define REG_GOVRH2_YSA (GOVRH2_BASE1_ADDR+0x90)
+#define REG_GOVRH2_CSA (GOVRH2_BASE1_ADDR+0x94)
+#define REG_GOVRH2_BASE1_END (GOVRH2_BASE1_ADDR+0xe8)
+#define REG_GOVRH2_BASE2_BEGIN (GOVRH2_BASE2_ADDR+0x00)
+#define REG_GOVRH2_BASE2_END (GOVRH2_BASE2_ADDR+0xFC)
+
+#endif /* WMT_GOVRH_REG_H */