1*10465441SEvalZero /* 2*10465441SEvalZero * File : x1000_slcdc.h 3*10465441SEvalZero * COPYRIGHT (C) 2008 - 2016, RT-Thread Development Team 4*10465441SEvalZero * 5*10465441SEvalZero * Change Logs: 6*10465441SEvalZero * Date Author Notes 7*10465441SEvalZero * 2017��3��20�� Urey the first version 8*10465441SEvalZero */ 9*10465441SEvalZero #ifndef _X1000_SLCDC_H_ 10*10465441SEvalZero #define _X1000_SLCDC_H_ 11*10465441SEvalZero 12*10465441SEvalZero #ifdef __cplusplus 13*10465441SEvalZero extern "C" { 14*10465441SEvalZero #endif 15*10465441SEvalZero 16*10465441SEvalZero /************************************************************************* 17*10465441SEvalZero * SLCD (Smart LCD Controller) 18*10465441SEvalZero *************************************************************************/ 19*10465441SEvalZero #define LCDC0_BASE LCD_BASE 20*10465441SEvalZero 21*10465441SEvalZero #define SLCDC_CFG (LCDC0_BASE + 0xA0) /* SLCDC Configure Register */ 22*10465441SEvalZero #define SLCDC_CTRL (LCDC0_BASE + 0xA4) /* SLCDC Control Register */ 23*10465441SEvalZero #define SLCDC_STATE (LCDC0_BASE + 0xA8) /* SLCDC Status Register */ 24*10465441SEvalZero #define SLCDC_DATA (LCDC0_BASE + 0xAC) /* SLCDC Data Register */ 25*10465441SEvalZero 26*10465441SEvalZero #define SLCDC_CFG_NEW (LCDC0_BASE + 0xB8) 27*10465441SEvalZero #define SLCDC_WTIME (LCDC0_BASE + 0xB0) 28*10465441SEvalZero #define SLCDC_TAS (LCDC0_BASE + 0xB4) 29*10465441SEvalZero #define SLCDC_SLOW_TIME (LCDC0_BASE + 0xBC) 30*10465441SEvalZero 31*10465441SEvalZero /* SLCDC Configure Register */ 32*10465441SEvalZero #define SLCDC_CFG_DWIDTH_BIT 10 33*10465441SEvalZero #define SLCDC_CFG_DWIDTH_MASK (0x7 << SLCDC_CFG_DWIDTH_BIT) 34*10465441SEvalZero #define SLCDC_CFG_DWIDTH_18BIT (0 << SLCDC_CFG_DWIDTH_BIT) 35*10465441SEvalZero #define SLCDC_CFG_DWIDTH_16BIT (1 << SLCDC_CFG_DWIDTH_BIT) 36*10465441SEvalZero #define SLCDC_CFG_DWIDTH_8BIT_x3 (2 << SLCDC_CFG_DWIDTH_BIT) 37*10465441SEvalZero #define SLCDC_CFG_DWIDTH_8BIT_x2 (3 << SLCDC_CFG_DWIDTH_BIT) 38*10465441SEvalZero #define SLCDC_CFG_DWIDTH_8BIT_x1 (4 << SLCDC_CFG_DWIDTH_BIT) 39*10465441SEvalZero #define SLCDC_CFG_DWIDTH_24BIT (5 << SLCDC_CFG_DWIDTH_BIT) 40*10465441SEvalZero #define SLCDC_CFG_DWIDTH_9BIT_x2 (7 << SLCDC_CFG_DWIDTH_BIT) 41*10465441SEvalZero #define SLCDC_CFG_CWIDTH_BIT (8) 42*10465441SEvalZero #define SLCDC_CFG_CWIDTH_MASK (0x3 << SLCDC_CFG_CWIDTH_BIT) 43*10465441SEvalZero #define SLCDC_CFG_CWIDTH_16BIT (0 << SLCDC_CFG_CWIDTH_BIT) 44*10465441SEvalZero #define SLCDC_CFG_CWIDTH_8BIT (1 << SLCDC_CFG_CWIDTH_BIT) 45*10465441SEvalZero #define SLCDC_CFG_CWIDTH_18BIT (2 << SLCDC_CFG_CWIDTH_BIT) 46*10465441SEvalZero #define SLCDC_CFG_CWIDTH_24BIT (3 << SLCDC_CFG_CWIDTH_BIT) 47*10465441SEvalZero #define SLCDC_CFG_CS_ACTIVE_LOW (0 << 4) 48*10465441SEvalZero #define SLCDC_CFG_CS_ACTIVE_HIGH (1 << 4) 49*10465441SEvalZero #define SLCDC_CFG_RS_CMD_LOW (0 << 3) 50*10465441SEvalZero #define SLCDC_CFG_RS_CMD_HIGH (1 << 3) 51*10465441SEvalZero #define SLCDC_CFG_CLK_ACTIVE_FALLING (0 << 1) 52*10465441SEvalZero #define SLCDC_CFG_CLK_ACTIVE_RISING (1 << 1) 53*10465441SEvalZero #define SLCDC_CFG_TYPE_PARALLEL (0 << 0) 54*10465441SEvalZero #define SLCDC_CFG_TYPE_SERIAL (1 << 0) 55*10465441SEvalZero 56*10465441SEvalZero /* SLCD New Configure Register */ 57*10465441SEvalZero #define SLCDC_NEW_CFG_DWIDTH_BIT 13 58*10465441SEvalZero #define SLCDC_NEW_CFG_DWIDTH_MASK (0x7 << SLCDC_NEW_CFG_DWIDTH_BIT) 59*10465441SEvalZero #define SLCDC_NEW_CFG_DWIDTH_8BIT (0 << SLCDC_NEW_CFG_DWIDTH_BIT) 60*10465441SEvalZero #define SLCDC_NEW_CFG_DWIDTH_9BIT (1 << SLCDC_NEW_CFG_DWIDTH_BIT) 61*10465441SEvalZero #define SLCDC_NEW_CFG_DWIDTH_16BIT (2 << SLCDC_NEW_CFG_DWIDTH_BIT) 62*10465441SEvalZero #define SLCDC_NEW_CFG_DWIDTH_18BIT (3 << SLCDC_NEW_CFG_DWIDTH_BIT) 63*10465441SEvalZero #define SLCDC_NEW_CFG_DWIDTH_24BIT (4 << SLCDC_NEW_CFG_DWIDTH_BIT) 64*10465441SEvalZero #define SLCDC_NEW_CFG_6800_MD (1 << 11) 65*10465441SEvalZero #define SLCDC_NEW_CFG_CMD_9BIT (1 << 10) /* only use in old slcd */ 66*10465441SEvalZero #define SLCDC_NEW_CFG_CMD_16BIT (0 << 10) /* only use in old slcd */ 67*10465441SEvalZero #define SLCDC_NEW_CFG_DTIME_BIT 8 68*10465441SEvalZero #define SLCDC_NEW_CFG_DTIME_MASK (0x3 << SLCDC_NEW_CFG_DTIME_BIT) 69*10465441SEvalZero #define SLCDC_NEW_CFG_DTIME_ONCE (0 << SLCDC_NEW_CFG_DTIME_BIT) 70*10465441SEvalZero #define SLCDC_NEW_CFG_DTIME_TWICE (1 << SLCDC_NEW_CFG_DTIME_BIT) 71*10465441SEvalZero #define SLCDC_NEW_CFG_DTIME_THREE (2 << SLCDC_NEW_CFG_DTIME_BIT) 72*10465441SEvalZero #define SLCDC_NEW_CFG_CS_HIGH_IDLE (0 << 5) 73*10465441SEvalZero #define SLCDC_NEW_CFG_CS_LOW_IDLE (1 << 5) 74*10465441SEvalZero #define SLCDC_NEW_CFG_RS_CMD_LOW (0 << 4) 75*10465441SEvalZero #define SLCDC_NEW_CFG_RS_CMD_HIGH (1 << 4) 76*10465441SEvalZero #define SLCDC_NEW_CFG_CLK_ACTIVE_FALLING (0 << 3) 77*10465441SEvalZero #define SLCDC_NEW_CFG_CLK_ACTIVE_RISING (1 << 3) 78*10465441SEvalZero #define SLCDC_NEW_CFG_DTYPE_PARALLEL (0 << 2) 79*10465441SEvalZero #define SLCDC_NEW_CFG_DTYPE_SERIAL (1 << 2) 80*10465441SEvalZero #define SLCDC_NEW_CFG_CTYPE_PARALLEL (0 << 1) 81*10465441SEvalZero #define SLCDC_NEW_CFG_CTYPE_SERIAL (1 << 1) 82*10465441SEvalZero #define SLCDC_NEW_CFG_FMT_CONV_EN (1 << 0) 83*10465441SEvalZero 84*10465441SEvalZero /* SLCD Control Register */ 85*10465441SEvalZero #define SLCDC_CTRL_TE_INV (1 << 9) 86*10465441SEvalZero #define SLCDC_CTRL_NOT_USE_TE (1 << 8) 87*10465441SEvalZero #define SLCDC_CTRL_DCSI_SEL (1 << 7) 88*10465441SEvalZero #define SLCDC_CTRL_MIPI_MODE (1 << 6) 89*10465441SEvalZero #define SLCDC_CTRL_NEW_MODE (1 << 5) 90*10465441SEvalZero #define SLCDC_CTRL_FAST_MODE (1 << 4) 91*10465441SEvalZero #define SLCDC_CTRL_GATE_MASK (1 << 3) 92*10465441SEvalZero #define SLCDC_CTRL_DMA_MODE (1 << 2) 93*10465441SEvalZero #define SLCDC_CTRL_DMA_START (1 << 1) 94*10465441SEvalZero #define SLCDC_CTRL_DMA_EN (1 << 0) 95*10465441SEvalZero 96*10465441SEvalZero /* SLCD Status Register */ 97*10465441SEvalZero #define SLCDC_STATE_BUSY (1 << 0) 98*10465441SEvalZero 99*10465441SEvalZero /* SLCD Data Register */ 100*10465441SEvalZero #define SLCDC_DATA_RS_DATA (0 << 30) 101*10465441SEvalZero #define SLCDC_DATA_RS_COMMAND (1 << 30) 102*10465441SEvalZero 103*10465441SEvalZero /************************************************************************* 104*10465441SEvalZero * LCDC (LCD Controller) 105*10465441SEvalZero *************************************************************************/ 106*10465441SEvalZero 107*10465441SEvalZero #define LCDC_CFG (LCDC0_BASE + 0x00) 108*10465441SEvalZero #define LCDC_CTRL (LCDC0_BASE + 0x30) 109*10465441SEvalZero #define LCDC_STATE (LCDC0_BASE + 0x34) 110*10465441SEvalZero #define LCDC_OSDC (LCDC0_BASE + 0x100) 111*10465441SEvalZero #define LCDC_OSDCTRL (LCDC0_BASE + 0x104) 112*10465441SEvalZero #define LCDC_OSDS (LCDC0_BASE + 0x108) 113*10465441SEvalZero #define LCDC_BGC0 (LCDC0_BASE + 0x10C) 114*10465441SEvalZero #define LCDC_BGC1 (LCDC0_BASE + 0x2C4) 115*10465441SEvalZero #define LCDC_KEY0 (LCDC0_BASE + 0x110) 116*10465441SEvalZero #define LCDC_KEY1 (LCDC0_BASE + 0x114) 117*10465441SEvalZero #define LCDC_ALPHA (LCDC0_BASE + 0x118) 118*10465441SEvalZero #define LCDC_RGBC (LCDC0_BASE + 0x90) 119*10465441SEvalZero #define LCDC_VAT (LCDC0_BASE + 0x0c) 120*10465441SEvalZero #define LCDC_DAH (LCDC0_BASE + 0x10) 121*10465441SEvalZero #define LCDC_DAV (LCDC0_BASE + 0x14) 122*10465441SEvalZero #define LCDC_XYP0 (LCDC0_BASE + 0x120) 123*10465441SEvalZero #define LCDC_XYP1 (LCDC0_BASE + 0x124) 124*10465441SEvalZero #define LCDC_SIZE0 (LCDC0_BASE + 0x128) 125*10465441SEvalZero #define LCDC_SIZE1 (LCDC0_BASE + 0x12C) 126*10465441SEvalZero #define LCDC_VSYNC (LCDC0_BASE + 0x04) 127*10465441SEvalZero #define LCDC_HSYNC (LCDC0_BASE + 0x08) 128*10465441SEvalZero #define LCDC_PS (LCDC0_BASE + 0x18) 129*10465441SEvalZero #define LCDC_CLS (LCDC0_BASE + 0x1c) 130*10465441SEvalZero #define LCDC_SPL (LCDC0_BASE + 0x20) 131*10465441SEvalZero #define LCDC_REV (LCDC0_BASE + 0x24) 132*10465441SEvalZero #define LCDC_IID (LCDC0_BASE + 0x38) 133*10465441SEvalZero #define LCDC_DA0 (LCDC0_BASE + 0x40) 134*10465441SEvalZero #define LCDC_SA0 (LCDC0_BASE + 0x44) 135*10465441SEvalZero #define LCDC_FID0 (LCDC0_BASE + 0x48) 136*10465441SEvalZero #define LCDC_CMD0 (LCDC0_BASE + 0x4c) 137*10465441SEvalZero #define LCDC_DA1 (LCDC0_BASE + 0x50) 138*10465441SEvalZero #define LCDC_SA1 (LCDC0_BASE + 0x54) 139*10465441SEvalZero #define LCDC_FID1 (LCDC0_BASE + 0x58) 140*10465441SEvalZero #define LCDC_CMD1 (LCDC0_BASE + 0x5c) 141*10465441SEvalZero #define LCDC_OFFS0 (LCDC0_BASE + 0x60) 142*10465441SEvalZero #define LCDC_PW0 (LCDC0_BASE + 0x64) 143*10465441SEvalZero #define LCDC_CNUM0 (LCDC0_BASE + 0x68) 144*10465441SEvalZero #define LCDC_DESSIZE0 (LCDC0_BASE + 0x6C) 145*10465441SEvalZero #define LCDC_OFFS1 (LCDC0_BASE + 0x70) 146*10465441SEvalZero #define LCDC_PW1 (LCDC0_BASE + 0x74) 147*10465441SEvalZero #define LCDC_CNUM1 (LCDC0_BASE + 0x78) 148*10465441SEvalZero #define LCDC_DESSIZE1 (LCDC0_BASE + 0x7C) 149*10465441SEvalZero #define LCDC_PCFG (LCDC0_BASE + 0x2C0) 150*10465441SEvalZero #define LCDC_CPOS1 (0x78) 151*10465441SEvalZero #define LCDC_DUAL_CTRL (0x2c8) 152*10465441SEvalZero #define LCDC_ENH_CFG (0x400) 153*10465441SEvalZero #define LCDC_ENH_CSCCFG (0x404) 154*10465441SEvalZero #define LCDC_ENH_LUMACFG (0x408) 155*10465441SEvalZero #define LCDC_ENH_CHROCFG0 (0x40c) 156*10465441SEvalZero #define LCDC_ENH_CHROCFG1 (0x410) 157*10465441SEvalZero #define LCDC_ENH_DITHERCFG (0x414) 158*10465441SEvalZero #define LCDC_ENH_STATUS (0x418) 159*10465441SEvalZero #define LCDC_ENH_GAMMA (0x800) 160*10465441SEvalZero #define LCDC_ENH_VEE (0x1000) 161*10465441SEvalZero 162*10465441SEvalZero /* LCD Configure Register */ 163*10465441SEvalZero #define LCDC_CFG_LCDPIN_BIT 31 164*10465441SEvalZero #define LCDC_CFG_LCDPIN_MASK (0x1 << LCDC_CFG_LCDPIN_BIT) 165*10465441SEvalZero #define LCDC_CFG_LCDPIN_LCD (0x0 << LCDC_CFG_LCDPIN_BIT) 166*10465441SEvalZero #define LCDC_CFG_LCDPIN_SLCD (0x1 << LCDC_CFG_LCDPIN_BIT) 167*10465441SEvalZero #define LCDC_CFG_TVEPEH (1 << 30) 168*10465441SEvalZero #define LCDC_CFG_NEWDES (1 << 28) 169*10465441SEvalZero #define LCDC_CFG_PALBP (1 << 27) 170*10465441SEvalZero #define LCDC_CFG_TVEN (1 << 26) 171*10465441SEvalZero #define LCDC_CFG_RECOVER (1 << 25) 172*10465441SEvalZero #define LCDC_CFG_PSM (1 << 23) 173*10465441SEvalZero #define LCDC_CFG_CLSM (1 << 22) 174*10465441SEvalZero #define LCDC_CFG_SPLM (1 << 21) 175*10465441SEvalZero #define LCDC_CFG_REVM (1 << 20) 176*10465441SEvalZero #define LCDC_CFG_HSYNM (1 << 19) 177*10465441SEvalZero #define LCDC_CFG_PCLKM (1 << 18) 178*10465441SEvalZero #define LCDC_CFG_INVDAT (1 << 17) 179*10465441SEvalZero #define LCDC_CFG_SYNDIR_IN (1 << 16) 180*10465441SEvalZero #define LCDC_CFG_PSP (1 << 15) 181*10465441SEvalZero #define LCDC_CFG_CLSP (1 << 14) 182*10465441SEvalZero #define LCDC_CFG_SPLP (1 << 13) 183*10465441SEvalZero #define LCDC_CFG_REVP (1 << 12) 184*10465441SEvalZero #define LCDC_CFG_HSP (1 << 11) 185*10465441SEvalZero #define LCDC_CFG_PCP (1 << 10) 186*10465441SEvalZero #define LCDC_CFG_DEP (1 << 9) 187*10465441SEvalZero #define LCDC_CFG_VSP (1 << 8) 188*10465441SEvalZero #define LCDC_CFG_MODE_TFT_18BIT (1 << 7) 189*10465441SEvalZero #define LCDC_CFG_MODE_TFT_16BIT (0 << 7) 190*10465441SEvalZero #define LCDC_CFG_MODE_TFT_24BIT (1 << 6) 191*10465441SEvalZero #define LCDC_CFG_MODE_BIT 0 192*10465441SEvalZero #define LCDC_CFG_MODE_MASK (0x0f << LCDC_CFG_MODE_BIT) 193*10465441SEvalZero #define LCDC_CFG_MODE_GENERIC_TFT (0 << LCDC_CFG_MODE_BIT) 194*10465441SEvalZero #define LCDC_CFG_MODE_SPECIAL_TFT_1 (1 << LCDC_CFG_MODE_BIT) 195*10465441SEvalZero #define LCDC_CFG_MODE_SPECIAL_TFT_2 (2 << LCDC_CFG_MODE_BIT) 196*10465441SEvalZero #define LCDC_CFG_MODE_SPECIAL_TFT_3 (3 << LCDC_CFG_MODE_BIT) 197*10465441SEvalZero #define LCDC_CFG_MODE_NONINTER_CCIR656 (4 << LCDC_CFG_MODE_BIT) 198*10465441SEvalZero #define LCDC_CFG_MODE_INTER_CCIR656 (6 << LCDC_CFG_MODE_BIT) 199*10465441SEvalZero #define LCDC_CFG_MODE_SERIAL_TFT (12 << LCDC_CFG_MODE_BIT) 200*10465441SEvalZero #define LCDC_CFG_MODE_LCM (13 << LCDC_CFG_MODE_BIT) 201*10465441SEvalZero /* LCD Control Register */ 202*10465441SEvalZero #define LCDC_CTRL_PINMD (1 << 31) 203*10465441SEvalZero #define LCDC_CTRL_BST_BIT 28 204*10465441SEvalZero #define LCDC_CTRL_BST_MASK (0x7 << LCDC_CTRL_BST_BIT) 205*10465441SEvalZero #define LCDC_CTRL_BST_4 (0 << LCDC_CTRL_BST_BIT) 206*10465441SEvalZero #define LCDC_CTRL_BST_8 (1 << LCDC_CTRL_BST_BIT) 207*10465441SEvalZero #define LCDC_CTRL_BST_16 (2 << LCDC_CTRL_BST_BIT) 208*10465441SEvalZero #define LCDC_CTRL_BST_32 (3 << LCDC_CTRL_BST_BIT) 209*10465441SEvalZero #define LCDC_CTRL_BST_64 (4 << LCDC_CTRL_BST_BIT) 210*10465441SEvalZero #define LCDC_CTRL_RGB565 (0 << 27) 211*10465441SEvalZero #define LCDC_CTRL_RGB555 (1 << 27) 212*10465441SEvalZero #define LCDC_CTRL_OFUP (1 << 26) 213*10465441SEvalZero #define LCDC_CTRL_PDD_BIT 16 214*10465441SEvalZero #define LCDC_CTRL_PDD_MASK (0xff << LCDC_CTRL_PDD_BIT) 215*10465441SEvalZero #define LCDC_CTRL_DACTE (1 << 14) 216*10465441SEvalZero #define LCDC_CTRL_EOFM (1 << 13) 217*10465441SEvalZero #define LCDC_CTRL_SOFM (1 << 12) 218*10465441SEvalZero #define LCDC_CTRL_OFUM (1 << 11) 219*10465441SEvalZero #define LCDC_CTRL_IFUM0 (1 << 10) 220*10465441SEvalZero #define LCDC_CTRL_IFUM1 (1 << 9) 221*10465441SEvalZero #define LCDC_CTRL_LDDM (1 << 8) 222*10465441SEvalZero #define LCDC_CTRL_QDM (1 << 7) 223*10465441SEvalZero #define LCDC_CTRL_BEDN (1 << 6) 224*10465441SEvalZero #define LCDC_CTRL_PEDN (1 << 5) 225*10465441SEvalZero #define LCDC_CTRL_DIS (1 << 4) 226*10465441SEvalZero #define LCDC_CTRL_ENA (1 << 3) 227*10465441SEvalZero #define LCDC_CTRL_BPP_BIT 0 228*10465441SEvalZero #define LCDC_CTRL_BPP_MASK (0x07 << LCDC_CTRL_BPP_BIT) 229*10465441SEvalZero #define LCDC_CTRL_BPP_1 (0 << LCDC_CTRL_BPP_BIT) 230*10465441SEvalZero #define LCDC_CTRL_BPP_2 (1 << LCDC_CTRL_BPP_BIT) 231*10465441SEvalZero #define LCDC_CTRL_BPP_4 (2 << LCDC_CTRL_BPP_BIT) 232*10465441SEvalZero #define LCDC_CTRL_BPP_8 (3 << LCDC_CTRL_BPP_BIT) 233*10465441SEvalZero #define LCDC_CTRL_BPP_16 (4 << LCDC_CTRL_BPP_BIT) 234*10465441SEvalZero #define LCDC_CTRL_BPP_18_24 (5 << LCDC_CTRL_BPP_BIT) 235*10465441SEvalZero #define LCDC_CTRL_BPP_CMPS_24 (6 << LCDC_CTRL_BPP_BIT) 236*10465441SEvalZero #define LCDC_CTRL_BPP_30 (7 << LCDC_CTRL_BPP_BIT) 237*10465441SEvalZero /* LCD Status Register */ 238*10465441SEvalZero #define LCDC_STATE_QD (1 << 7) 239*10465441SEvalZero #define LCDC_STATE_EOF (1 << 5) 240*10465441SEvalZero #define LCDC_STATE_SOF (1 << 4) 241*10465441SEvalZero #define LCDC_STATE_OFU (1 << 3) 242*10465441SEvalZero #define LCDC_STATE_IFU0 (1 << 2) 243*10465441SEvalZero #define LCDC_STATE_IFU1 (1 << 1) 244*10465441SEvalZero #define LCDC_STATE_LDD (1 << 0) 245*10465441SEvalZero /* OSD Configure Register */ 246*10465441SEvalZero #define LCDC_OSDC_PREMULTI1 (1 << 23) 247*10465441SEvalZero #define LCDC_OSDC_COEF_SLE1_BIT 21 248*10465441SEvalZero #define LCDC_OSDC_COEF_SLE1_MASK (0x03 << LCDC_OSDC_COEF_SLE1_BIT) 249*10465441SEvalZero #define LCDC_OSDC_COEF_SLE1_0 (0 << LCDC_OSDC_COEF_SLE1_BIT) 250*10465441SEvalZero #define LCDC_OSDC_COEF_SLE1_1 (1 << LCDC_OSDC_COEF_SLE1_BIT) 251*10465441SEvalZero #define LCDC_OSDC_COEF_SLE1_2 (2 << LCDC_OSDC_COEF_SLE1_BIT) 252*10465441SEvalZero #define LCDC_OSDC_COEF_SLE1_3 (3 << LCDC_OSDC_COEF_SLE1_BIT) 253*10465441SEvalZero #define LCDC_OSDC_PREMULTI0 (1 << 20) 254*10465441SEvalZero #define LCDC_OSDC_COEF_SLE0_BIT 18 255*10465441SEvalZero #define LCDC_OSDC_COEF_SLE0_MASK (0x03 << LCDC_OSDC_COEF_SLE0_BIT) 256*10465441SEvalZero #define LCDC_OSDC_COEF_SLE0_0 (0 << LCDC_OSDC_COEF_SLE0_BIT) 257*10465441SEvalZero #define LCDC_OSDC_COEF_SLE0_1 (1 << LCDC_OSDC_COEF_SLE0_BIT) 258*10465441SEvalZero #define LCDC_OSDC_COEF_SLE0_2 (2 << LCDC_OSDC_COEF_SLE0_BIT) 259*10465441SEvalZero #define LCDC_OSDC_COEF_SLE0_3 (3 << LCDC_OSDC_COEF_SLE0_BIT) 260*10465441SEvalZero #define LCDC_OSDC_ALPHAMD1 (1 << 17) 261*10465441SEvalZero #define LCDC_OSDC_SOFM1 (1 << 15) 262*10465441SEvalZero #define LCDC_OSDC_EOFM1 (1 << 14) 263*10465441SEvalZero #define LCDC_OSDC_SOFM0 (1 << 11) 264*10465441SEvalZero #define LCDC_OSDC_EOFM0 (1 << 10) 265*10465441SEvalZero #define LCDC_OSDC_DENDM (1 << 9) 266*10465441SEvalZero #define LCDC_OSDC_F1EN (1 << 4) 267*10465441SEvalZero #define LCDC_OSDC_F0EN (1 << 3) 268*10465441SEvalZero #define LCDC_OSDC_ALPHAEN (1 << 2) 269*10465441SEvalZero #define LCDC_OSDC_ALPHAMD0 (1 << 1) 270*10465441SEvalZero #define LCDC_OSDC_OSDEN (1 << 0) 271*10465441SEvalZero /* OSD Controll Register */ 272*10465441SEvalZero #define LCDC_OSDCTRL_IPU_CLKEN (1 << 15) 273*10465441SEvalZero #define LCDC_OSDCTRL_RGB0_RGB565 (0 << 5) 274*10465441SEvalZero #define LCDC_OSDCTRL_RGB0_RGB555 (1 << 5) 275*10465441SEvalZero #define LCDC_OSDCTRL_RGB1_RGB565 (0 << 4) 276*10465441SEvalZero #define LCDC_OSDCTRL_RGB1_RGB555 (1 << 4) 277*10465441SEvalZero #define LCDC_OSDCTRL_BPP_BIT 0 278*10465441SEvalZero #define LCDC_OSDCTRL_BPP_MASK (0x7<<LCDC_OSDCTRL_BPP_BIT) 279*10465441SEvalZero #define LCDC_OSDCTRL_BPP_15_16 (4 << LCDC_OSDCTRL_BPP_BIT) 280*10465441SEvalZero #define LCDC_OSDCTRL_BPP_18_24 (5 << LCDC_OSDCTRL_BPP_BIT) 281*10465441SEvalZero #define LCDC_OSDCTRL_BPP_CMPS_24 (6 << LCDC_OSDCTRL_BPP_BIT) 282*10465441SEvalZero #define LCDC_OSDCTRL_BPP_30 (7 << LCDC_OSDCTRL_BPP_BIT) 283*10465441SEvalZero /* OSD State Register */ 284*10465441SEvalZero #define LCDC_OSDS_SOF1 (1 << 15) 285*10465441SEvalZero #define LCDC_OSDS_EOF1 (1 << 14) 286*10465441SEvalZero #define LCDC_OSDS_SOF0 (1 << 11) 287*10465441SEvalZero #define LCDC_OSDS_EOF0 (1 << 10) 288*10465441SEvalZero #define LCDC_OSDS_DEND (1 << 8) 289*10465441SEvalZero /* Background 0 or Background 1 Color Register */ 290*10465441SEvalZero #define LCDC_BGC_RED_OFFSET 16 291*10465441SEvalZero #define LCDC_BGC_RED_MASK (0xFF << LCDC_BGC_RED_OFFSET) 292*10465441SEvalZero #define LCDC_BGC_GREEN_OFFSET 8 293*10465441SEvalZero #define LCDC_BGC_GREEN_MASK (0xFF << LCDC_BGC_GREEN_OFFSET) 294*10465441SEvalZero #define LCDC_BGC_BLUE_OFFSET 0 295*10465441SEvalZero #define LCDC_BGC_BLUE_MASK (0xFF << LCDC_BGC_BLUE_OFFSET) 296*10465441SEvalZero /* Foreground 0 or Foreground 1 Color Key Register */ 297*10465441SEvalZero #define LCDC_KEY_KEYEN (1 << 31) 298*10465441SEvalZero #define LCDC_KEY_KEYMD (1 << 30) 299*10465441SEvalZero #define LCDC_KEY_RED_OFFSET 16 300*10465441SEvalZero #define LCDC_KEY_RED_MASK (0xFF << LCDC_KEY_RED_OFFSET) 301*10465441SEvalZero #define LCDC_KEY_GREEN_OFFSET 8 302*10465441SEvalZero #define LCDC_KEY_GREEN_MASK (0xFF << LCDC_KEY_GREEN_OFFSET) 303*10465441SEvalZero #define LCDC_KEY_BLUE_OFFSET 0 304*10465441SEvalZero #define LCDC_KEY_BLUE_MASK (0xFF << LCDC_KEY_BLUE_OFFSET) 305*10465441SEvalZero #define LCDC_KEY_MASK (LCDC_KEY_RED_MASK | LCDC_KEY_GREEN_MASK\ 306*10465441SEvalZero /* ALPHA Register */ 307*10465441SEvalZero #define LCDC_ALPHA1_OFFSET 8 308*10465441SEvalZero #define LCDC_ALPHA1_MASK (0xFF << LCDC_ALPHA1_OFFSET) 309*10465441SEvalZero #define LCDC_ALPHA0_OFFSET 0 310*10465441SEvalZero #define LCDC_ALPHA0_MASK (0xFF << LCDC_ALPHA0_OFFSET) 311*10465441SEvalZero /* IPU Restart Register */ 312*10465441SEvalZero #define LCDC_IPUR_IPUREN (1 << 31) 313*10465441SEvalZero #define LCDC_IPUR_IPURMASK (0xFFFFFF) 314*10465441SEvalZero /* RGB Control Register */ 315*10465441SEvalZero #define LCDC_RGBC_RGBDM (1 << 15) 316*10465441SEvalZero #define LCDC_RGBC_DMM (1 << 14) 317*10465441SEvalZero #define LCDC_RGBC_RGBFMT (1 << 7) 318*10465441SEvalZero #define LCDC_RGBC_ODDRGB_BIT 4 319*10465441SEvalZero #define LCDC_RGBC_ODDRGB_MASK (0x7 << LCDC_RGBC_ODDRGB_BIT) 320*10465441SEvalZero #define LCDC_RGBC_ODD_RGB (0 << LCDC_RGBC_ODDRGB_BIT) 321*10465441SEvalZero #define LCDC_RGBC_ODD_RBG (1 << LCDC_RGBC_ODDRGB_BIT) 322*10465441SEvalZero #define LCDC_RGBC_ODD_GRB (2 << LCDC_RGBC_ODDRGB_BIT) 323*10465441SEvalZero #define LCDC_RGBC_ODD_GBR (3 << LCDC_RGBC_ODDRGB_BIT) 324*10465441SEvalZero #define LCDC_RGBC_ODD_BRG (4 << LCDC_RGBC_ODDRGB_BIT) 325*10465441SEvalZero #define LCDC_RGBC_ODD_BGR (5 << LCDC_RGBC_ODDRGB_BIT) 326*10465441SEvalZero #define LCDC_RGBC_EVENRGB_BIT 0 327*10465441SEvalZero #define LCDC_RGBC_EVENRGB_MASK (0x7<<LCDC_RGBC_EVENRGB_BIT) 328*10465441SEvalZero #define LCDC_RGBC_EVEN_RGB 0 329*10465441SEvalZero #define LCDC_RGBC_EVEN_RBG 1 330*10465441SEvalZero #define LCDC_RGBC_EVEN_GRB 2 331*10465441SEvalZero #define LCDC_RGBC_EVEN_GBR 3 332*10465441SEvalZero #define LCDC_RGBC_EVEN_BRG 4 333*10465441SEvalZero #define LCDC_RGBC_EVEN_BGR 5 334*10465441SEvalZero /* Vertical Synchronize Register */ 335*10465441SEvalZero #define LCDC_VSYNC_VPS_BIT 16 336*10465441SEvalZero #define LCDC_VSYNC_VPS_MASK (0xfff << LCDC_VSYNC_VPS_BIT) 337*10465441SEvalZero #define LCDC_VSYNC_VPE_BIT 0 338*10465441SEvalZero #define LCDC_VSYNC_VPE_MASK (0xfff << LCDC_VSYNC_VPE_BIT) 339*10465441SEvalZero /* Horizontal Synchronize Register */ 340*10465441SEvalZero #define LCDC_HSYNC_HPS_BIT 16 341*10465441SEvalZero #define LCDC_HSYNC_HPS_MASK (0xfff << LCDC_HSYNC_HPS_BIT) 342*10465441SEvalZero #define LCDC_HSYNC_HPE_BIT 0 343*10465441SEvalZero #define LCDC_HSYNC_HPE_MASK (0xfff << LCDC_HSYNC_HPE_BIT) 344*10465441SEvalZero /* Virtual Area Setting Register */ 345*10465441SEvalZero #define LCDC_VAT_HT_BIT 16 346*10465441SEvalZero #define LCDC_VAT_HT_MASK (0xfff << LCDC_VAT_HT_BIT) 347*10465441SEvalZero #define LCDC_VAT_VT_BIT 0 348*10465441SEvalZero #define LCDC_VAT_VT_MASK (0xfff << LCDC_VAT_VT_BIT) 349*10465441SEvalZero /* Display Area Horizontal Start/End Point Register */ 350*10465441SEvalZero #define LCDC_DAH_HDS_BIT 16 351*10465441SEvalZero #define LCDC_DAH_HDS_MASK (0xfff << LCDC_DAH_HDS_BIT) 352*10465441SEvalZero #define LCDC_DAH_HDE_BIT 0 353*10465441SEvalZero #define LCDC_DAH_HDE_MASK (0xfff << LCDC_DAH_HDE_BIT) 354*10465441SEvalZero /* Display Area Vertical Start/End Point Register */ 355*10465441SEvalZero #define LCDC_DAV_VDS_BIT 16 356*10465441SEvalZero #define LCDC_DAV_VDS_MASK (0xfff << LCDC_DAV_VDS_BIT) 357*10465441SEvalZero #define LCDC_DAV_VDE_BIT 0 358*10465441SEvalZero #define LCDC_DAV_VDE_MASK (0xfff << LCDC_DAV_VDE_BIT) 359*10465441SEvalZero /* Foreground 0 or Foreground 1 XY Position Register */ 360*10465441SEvalZero #define LCDC_XYP_YPOS_BIT 16 361*10465441SEvalZero #define LCDC_XYP_YPOS_MASK (0xfff << LCDC_XYP_YPOS_BIT) 362*10465441SEvalZero #define LCDC_XYP_XPOS_BIT 0 363*10465441SEvalZero #define LCDC_XYP_XPOS_MASK (0xfff << LCDC_XYP_XPOS_BIT) 364*10465441SEvalZero /* Foreground 0 or Foreground 1 Size Register */ 365*10465441SEvalZero #define LCDC_SIZE_HEIGHT_BIT 16 366*10465441SEvalZero #define LCDC_SIZE_HEIGHT_MASK (0xfff << LCDC_SIZE_HEIGHT_BIT) 367*10465441SEvalZero #define LCDC_SIZE_WIDTH_BIT 0 368*10465441SEvalZero #define LCDC_SIZE_WIDTH_MASK (0xfff << LCDC_SIZE_WIDTH_BIT) 369*10465441SEvalZero /* PS Signal Setting */ 370*10465441SEvalZero #define LCDC_PS_PSS_BIT 16 371*10465441SEvalZero #define LCDC_PS_PSS_MASK (0xfff << LCDC_PS_PSS_BIT) 372*10465441SEvalZero #define LCDC_PS_PSE_BIT 0 373*10465441SEvalZero #define LCDC_PS_PSE_MASK (0xfff << LCDC_PS_PSE_BIT) 374*10465441SEvalZero /* CLS Signal Setting */ 375*10465441SEvalZero #define LCDC_CLS_CLSS_BIT 16 376*10465441SEvalZero #define LCDC_CLS_CLSS_MASK (0xfff << LCDC_CLS_CLSS_BIT) 377*10465441SEvalZero #define LCDC_CLS_CLSE_BIT 0 378*10465441SEvalZero #define LCDC_CLS_CLSE_MASK (0xfff << LCDC_CLS_CLSE_BIT) 379*10465441SEvalZero /* SPL Signal Setting */ 380*10465441SEvalZero #define LCDC_SPL_SPLS_BIT 16 381*10465441SEvalZero #define LCDC_SPL_SPLS_MASK (0xfff << LCDC_SPL_SPLS_BIT) 382*10465441SEvalZero #define LCDC_SPL_SPLE_BIT 0 383*10465441SEvalZero #define LCDC_SPL_SPLE_MASK (0xfff << LCDC_SPL_SPLE_BIT) 384*10465441SEvalZero /* REV Signal Setting */ 385*10465441SEvalZero #define LCDC_REV_REVS_BIT 16 386*10465441SEvalZero #define LCDC_REV_REVS_MASK (0xfff << LCDC_REV_REVS_BIT) 387*10465441SEvalZero /* DMA Command 0 or 1 Register */ 388*10465441SEvalZero #define LCDC_CMD_SOFINT (1 << 31) 389*10465441SEvalZero #define LCDC_CMD_EOFINT (1 << 30) 390*10465441SEvalZero #define LCDC_CMD_CMD (1 << 29) 391*10465441SEvalZero #define LCDC_CMD_PAL (1 << 28) 392*10465441SEvalZero #define LCDC_CMD_COMPEN (1 << 27) 393*10465441SEvalZero #define LCDC_CMD_FRM_EN (1 << 26) 394*10465441SEvalZero #define LCDC_CMD_FIELD_SEL (1 << 25) 395*10465441SEvalZero #define LCDC_CMD_16X16BLOCK (1 << 24) 396*10465441SEvalZero #define LCDC_CMD_LEN_BIT 0 397*10465441SEvalZero #define LCDC_CMD_LEN_MASK (0xffffff << LCDC_CMD_LEN_BIT) 398*10465441SEvalZero /* DMA Offsize Register 0,1 */ 399*10465441SEvalZero #define LCDC_OFFS_BIT 0 400*10465441SEvalZero #define LCDC_OFFS_OFFSIZE_MASK (0xffffff << LCDC_OFFS_BIT) 401*10465441SEvalZero /* DMA Page Width Register 0,1 */ 402*10465441SEvalZero #define LCDC_PW_BIT 0 403*10465441SEvalZero #define LCDC_PW_PAGEWIDTH_MASK (0xffffff << LCDC_PW_BIT) 404*10465441SEvalZero /* DMA Command Counter Register 0,1 */ 405*10465441SEvalZero #define LCDC_CNUM_BIT 0 406*10465441SEvalZero #define LCDC_CNUM_CNUM_MASK (0xff << LCDC_CNUM_BIT) 407*10465441SEvalZero #define LCDC_CPOS_ALPHAMD1 (1 << 31) 408*10465441SEvalZero #define LCDC_CPOS_RGB_RGB565 (0 << 30) 409*10465441SEvalZero #define LCDC_CPOS_RGB_RGB555 (1 << 30) 410*10465441SEvalZero #define LCDC_CPOS_BPP_BIT 27 411*10465441SEvalZero #define LCDC_CPOS_BPP_MASK (0x07 << LCDC_CPOS_BPP_BIT) 412*10465441SEvalZero #define LCDC_CPOS_BPP_16 (4 << LCDC_CPOS_BPP_BIT) 413*10465441SEvalZero #define LCDC_CPOS_BPP_18_24 (5 << LCDC_CPOS_BPP_BIT) 414*10465441SEvalZero #define LCDC_CPOS_BPP_CMPS_24 (6 << LCDC_CPOS_BPP_BIT) 415*10465441SEvalZero #define LCDC_CPOS_BPP_30 (7 << LCDC_CPOS_BPP_BIT) 416*10465441SEvalZero #define LCDC_CPOS_PREMULTI (1 << 26) 417*10465441SEvalZero #define LCDC_CPOS_COEF_SLE_BIT 24 418*10465441SEvalZero #define LCDC_CPOS_COEF_SLE_MASK (0x3 << LCDC_CPOS_COEF_SLE_BIT) 419*10465441SEvalZero #define LCDC_CPOS_COEF_SLE_0 (0 << LCDC_CPOS_COEF_SLE_BIT) 420*10465441SEvalZero #define LCDC_CPOS_COEF_SLE_1 (1 << LCDC_CPOS_COEF_SLE_BIT) 421*10465441SEvalZero #define LCDC_CPOS_COEF_SLE_2 (2 << LCDC_CPOS_COEF_SLE_BIT) 422*10465441SEvalZero #define LCDC_CPOS_COEF_SLE_3 (3 << LCDC_CPOS_COEF_SLE_BIT) 423*10465441SEvalZero #define LCDC_CPOS_YPOS_BIT 12 424*10465441SEvalZero #define LCDC_CPOS_YPOS_MASK (0xfff << LCDC_CPOS_YPOS_BIT) 425*10465441SEvalZero #define LCDC_CPOS_XPOS_BIT 0 426*10465441SEvalZero #define LCDC_CPOS_XPOS_MASK (0xfff << LCDC_CPOS_XPOS_BIT) 427*10465441SEvalZero /* Foreground 0,1 Size Register */ 428*10465441SEvalZero #define LCDC_DESSIZE_ALPHA_BIT 24 429*10465441SEvalZero #define LCDC_DESSIZE_ALPHA_MASK (0xff << LCDC_DESSIZE_ALPHA_BIT) 430*10465441SEvalZero #define LCDC_DESSIZE_HEIGHT_BIT 12 431*10465441SEvalZero #define LCDC_DESSIZE_HEIGHT_MASK (0xfff << LCDC_DESSIZE_HEIGHT_BIT) 432*10465441SEvalZero #define LCDC_DESSIZE_WIDTH_BIT 0 433*10465441SEvalZero #define LCDC_DESSIZE_WIDTH_MASK (0xfff << LCDC_DESSIZE_WIDTH_BIT) 434*10465441SEvalZero /* Priority level threshold configure Register */ 435*10465441SEvalZero #define LCDC_PCFG_LCDC_PRI_MD (1 << 31) 436*10465441SEvalZero #define LCDC_PCFG_HP_BST_BIT 28 437*10465441SEvalZero #define LCDC_PCFG_HP_BST_MASK (0x7 << LCDC_PCFG_HP_BST_BIT) 438*10465441SEvalZero #define LCDC_PCFG_HP_BST_4 (0 << LCDC_PCFG_HP_BST_BIT) 439*10465441SEvalZero #define LCDC_PCFG_HP_BST_8 (1 << LCDC_PCFG_HP_BST_BIT) 440*10465441SEvalZero #define LCDC_PCFG_HP_BST_16 (2 << LCDC_PCFG_HP_BST_BIT) 441*10465441SEvalZero #define LCDC_PCFG_HP_BST_32 (3 << LCDC_PCFG_HP_BST_BIT) 442*10465441SEvalZero #define LCDC_PCFG_HP_BST_C16 (5 << LCDC_PCFG_HP_BST_BIT) 443*10465441SEvalZero #define LCDC_PCFG_HP_BST_64 (4 << LCDC_PCFG_HP_BST_BIT) 444*10465441SEvalZero #define LCDC_PCFG_HP_BST_DIS (7 << LCDC_PCFG_HP_BST_BIT) 445*10465441SEvalZero #define LCDC_PCFG_PCFG2_BIT 18 446*10465441SEvalZero #define LCDC_PCFG_PCFG2_MASK (0x1ff << LCDC_PCFG_PCFG2_BIT) 447*10465441SEvalZero #define LCDC_PCFG_PCFG1_BIT 9 448*10465441SEvalZero #define LCDC_PCFG_PCFG1_MASK (0x1ff << LCDC_PCFG_PCFG1_BIT) 449*10465441SEvalZero #define LCDC_PCFG_PCFG0_BIT 0 450*10465441SEvalZero #define LCDC_PCFG_PCFG0_MASK (0x1ff << LCDC_PCFG_PCFG0_BIT) 451*10465441SEvalZero /* Dual LCDC Channel Control register */ 452*10465441SEvalZero #define LCDC_DUAL_CTRL_IPU_WR_SEL (1 << 8) 453*10465441SEvalZero #define LCDC_DUAL_CTRL_TFT_SEL (1 << 6) 454*10465441SEvalZero #define LCDC_DUAL_CTRL_PRI_IPU_EN (1 << 5) 455*10465441SEvalZero #define LCDC_DUAL_CTRL_PRI_IPU_BIT 3 456*10465441SEvalZero #define LCDC_DUAL_CTRL_PRI_IPU_MASK (0x3 << LCDC_DUAL_CTRL_PRI_IPU_BIT) 457*10465441SEvalZero 458*10465441SEvalZero 459*10465441SEvalZero #ifdef __cplusplus 460*10465441SEvalZero } 461*10465441SEvalZero #endif 462*10465441SEvalZero 463*10465441SEvalZero #endif /* _X1000_SLCDC_H_ */ 464