/* * Allwinner SoCs display driver. * * Copyright (C) 2016 Allwinner. * * This file is licensed under the terms of the GNU General Public * License version 2. This program is licensed "as is" without any * warranty of any kind, whether express or implied. */ /** * All Winner Tech, All Right Reserved. 2014-2015 Copyright (c) * * File name : de_gsu_type.h * * Description : display engine 2.0 gsu struct declaration * * History : 2014/03/20 vito cheng v0.1 Initial version * */ #ifndef __DE_GSU_TYPE_H__ #define __DE_GSU_TYPE_H__ /* * __gsu_reg_t */ union GSU_CTRL_REG { unsigned int dwval; struct { unsigned int en:1; unsigned int res0:3; unsigned int coef_switch_rdy:1; unsigned int res1:25; unsigned int reset:1; unsigned int res2:1; } bits; }; union GSU_STATUS_REG { unsigned int dwval; struct { unsigned int res0:4; unsigned int busy:1; unsigned int res1:11; unsigned int line_cnt:12; unsigned int res2:4; } bits; }; union GSU_FIELD_CTRL_REG { unsigned int dwval; struct { unsigned int vphase_sel_en:1; unsigned int res0:31; } bits; }; union GSU_BIST_REG { unsigned int dwval; struct { unsigned int bist_en:1; unsigned int res0:15; unsigned int bist_sel:5; unsigned int res1:11; } bits; }; union GSU_OUTSIZE_REG { unsigned int dwval; struct { unsigned int width:13; unsigned int res0:3; unsigned int height:13; unsigned int res1:3; } bits; }; union GSU_INSIZE_REG { unsigned int dwval; struct { unsigned int width:13; unsigned int res0:3; unsigned int height:13; unsigned int res1:3; } bits; }; union GSU_HSTEP_REG { unsigned int dwval; struct { unsigned int res0:2; unsigned int frac:18; unsigned int integer:5; unsigned int res1:7; } bits; }; union GSU_VSTEP_REG { unsigned int dwval; struct { unsigned int res0:2; unsigned int frac:18; unsigned int integer:5; unsigned int res1:7; } bits; }; union GSU_HPHASE_REG { unsigned int dwval; struct { unsigned int res0:2; unsigned int frac:18; unsigned int integer:5; unsigned int res1:7; } bits; }; union GSU_VPHASE0_REG { unsigned int dwval; struct { unsigned int res0:2; unsigned int frac:18; unsigned int integer:5; unsigned int res1:7; } bits; }; union GSU_VPHASE1_REG { unsigned int dwval; struct { unsigned int res0:2; unsigned int frac:18; unsigned int integer:4; unsigned int res1:8; } bits; }; union GSU_HCOEFF_REG { unsigned int dwval; struct { unsigned int coef0:8; unsigned int coef1:8; unsigned int coef2:8; unsigned int coef3:8; } bits; }; struct __gsu_reg_t { union GSU_CTRL_REG ctrl; /* 0x0000 */ unsigned int res0; /* 0x0004 */ union GSU_STATUS_REG status; /* 0x0008 */ union GSU_FIELD_CTRL_REG field; /* 0x000c */ union GSU_BIST_REG bist; /* 0x0010 */ unsigned int res1[11]; /* 0x0014-3c */ union GSU_OUTSIZE_REG outsize; /* 0x0040 */ unsigned int res5[15]; /* 0x0044-0x07c */ union GSU_INSIZE_REG insize; /* 0x0080 */ unsigned int res2; /* 0x0084 */ union GSU_HSTEP_REG hstep; /* 0x0088 */ union GSU_VSTEP_REG vstep; /* 0x008C */ union GSU_HPHASE_REG hphase; /* 0x0090 */ unsigned int res3; /* 0x0094 */ union GSU_VPHASE0_REG vphase0; /* 0x0098 */ union GSU_VPHASE1_REG vphase1; /* 0x009c */ unsigned int res4[88]; /* 0x00a0-1fc */ union GSU_HCOEFF_REG hcoeff[16]; /* 0x0200-0x23c */ }; #endif