1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * rcar_du_regs.h -- R-Car Display Unit Registers Definitions 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 2013-2015 Renesas Electronics Corporation 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com) 8*4882a593Smuzhiyun */ 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #ifndef __RCAR_DU_REGS_H__ 11*4882a593Smuzhiyun #define __RCAR_DU_REGS_H__ 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun #define DU0_REG_OFFSET 0x00000 14*4882a593Smuzhiyun #define DU1_REG_OFFSET 0x30000 15*4882a593Smuzhiyun #define DU2_REG_OFFSET 0x40000 16*4882a593Smuzhiyun #define DU3_REG_OFFSET 0x70000 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun /* ----------------------------------------------------------------------------- 19*4882a593Smuzhiyun * Display Control Registers 20*4882a593Smuzhiyun */ 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun #define DSYSR 0x00000 /* display 1 */ 23*4882a593Smuzhiyun #define DSYSR_ILTS (1 << 29) 24*4882a593Smuzhiyun #define DSYSR_DSEC (1 << 20) 25*4882a593Smuzhiyun #define DSYSR_IUPD (1 << 16) 26*4882a593Smuzhiyun #define DSYSR_DRES (1 << 9) 27*4882a593Smuzhiyun #define DSYSR_DEN (1 << 8) 28*4882a593Smuzhiyun #define DSYSR_TVM_MASTER (0 << 6) 29*4882a593Smuzhiyun #define DSYSR_TVM_SWITCH (1 << 6) 30*4882a593Smuzhiyun #define DSYSR_TVM_TVSYNC (2 << 6) 31*4882a593Smuzhiyun #define DSYSR_TVM_MASK (3 << 6) 32*4882a593Smuzhiyun #define DSYSR_SCM_INT_NONE (0 << 4) 33*4882a593Smuzhiyun #define DSYSR_SCM_INT_SYNC (2 << 4) 34*4882a593Smuzhiyun #define DSYSR_SCM_INT_VIDEO (3 << 4) 35*4882a593Smuzhiyun #define DSYSR_SCM_MASK (3 << 4) 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun #define DSMR 0x00004 38*4882a593Smuzhiyun #define DSMR_VSPM (1 << 28) 39*4882a593Smuzhiyun #define DSMR_ODPM (1 << 27) 40*4882a593Smuzhiyun #define DSMR_DIPM_DISP (0 << 25) 41*4882a593Smuzhiyun #define DSMR_DIPM_CSYNC (1 << 25) 42*4882a593Smuzhiyun #define DSMR_DIPM_DE (3 << 25) 43*4882a593Smuzhiyun #define DSMR_DIPM_MASK (3 << 25) 44*4882a593Smuzhiyun #define DSMR_CSPM (1 << 24) 45*4882a593Smuzhiyun #define DSMR_DIL (1 << 19) 46*4882a593Smuzhiyun #define DSMR_VSL (1 << 18) 47*4882a593Smuzhiyun #define DSMR_HSL (1 << 17) 48*4882a593Smuzhiyun #define DSMR_DDIS (1 << 16) 49*4882a593Smuzhiyun #define DSMR_CDEL (1 << 15) 50*4882a593Smuzhiyun #define DSMR_CDEM_CDE (0 << 13) 51*4882a593Smuzhiyun #define DSMR_CDEM_LOW (2 << 13) 52*4882a593Smuzhiyun #define DSMR_CDEM_HIGH (3 << 13) 53*4882a593Smuzhiyun #define DSMR_CDEM_MASK (3 << 13) 54*4882a593Smuzhiyun #define DSMR_CDED (1 << 12) 55*4882a593Smuzhiyun #define DSMR_ODEV (1 << 8) 56*4882a593Smuzhiyun #define DSMR_CSY_VH_OR (0 << 6) 57*4882a593Smuzhiyun #define DSMR_CSY_333 (2 << 6) 58*4882a593Smuzhiyun #define DSMR_CSY_222 (3 << 6) 59*4882a593Smuzhiyun #define DSMR_CSY_MASK (3 << 6) 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun #define DSSR 0x00008 62*4882a593Smuzhiyun #define DSSR_VC1FB_DSA0 (0 << 30) 63*4882a593Smuzhiyun #define DSSR_VC1FB_DSA1 (1 << 30) 64*4882a593Smuzhiyun #define DSSR_VC1FB_DSA2 (2 << 30) 65*4882a593Smuzhiyun #define DSSR_VC1FB_INIT (3 << 30) 66*4882a593Smuzhiyun #define DSSR_VC1FB_MASK (3 << 30) 67*4882a593Smuzhiyun #define DSSR_VC0FB_DSA0 (0 << 28) 68*4882a593Smuzhiyun #define DSSR_VC0FB_DSA1 (1 << 28) 69*4882a593Smuzhiyun #define DSSR_VC0FB_DSA2 (2 << 28) 70*4882a593Smuzhiyun #define DSSR_VC0FB_INIT (3 << 28) 71*4882a593Smuzhiyun #define DSSR_VC0FB_MASK (3 << 28) 72*4882a593Smuzhiyun #define DSSR_DFB(n) (1 << ((n)+15)) 73*4882a593Smuzhiyun #define DSSR_TVR (1 << 15) 74*4882a593Smuzhiyun #define DSSR_FRM (1 << 14) 75*4882a593Smuzhiyun #define DSSR_VBK (1 << 11) 76*4882a593Smuzhiyun #define DSSR_RINT (1 << 9) 77*4882a593Smuzhiyun #define DSSR_HBK (1 << 8) 78*4882a593Smuzhiyun #define DSSR_ADC(n) (1 << ((n)-1)) 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun #define DSRCR 0x0000c 81*4882a593Smuzhiyun #define DSRCR_TVCL (1 << 15) 82*4882a593Smuzhiyun #define DSRCR_FRCL (1 << 14) 83*4882a593Smuzhiyun #define DSRCR_VBCL (1 << 11) 84*4882a593Smuzhiyun #define DSRCR_RICL (1 << 9) 85*4882a593Smuzhiyun #define DSRCR_HBCL (1 << 8) 86*4882a593Smuzhiyun #define DSRCR_ADCL(n) (1 << ((n)-1)) 87*4882a593Smuzhiyun #define DSRCR_MASK 0x0000cbff 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun #define DIER 0x00010 90*4882a593Smuzhiyun #define DIER_TVE (1 << 15) 91*4882a593Smuzhiyun #define DIER_FRE (1 << 14) 92*4882a593Smuzhiyun #define DIER_VBE (1 << 11) 93*4882a593Smuzhiyun #define DIER_RIE (1 << 9) 94*4882a593Smuzhiyun #define DIER_HBE (1 << 8) 95*4882a593Smuzhiyun #define DIER_ADCE(n) (1 << ((n)-1)) 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun #define CPCR 0x00014 98*4882a593Smuzhiyun #define CPCR_CP4CE (1 << 19) 99*4882a593Smuzhiyun #define CPCR_CP3CE (1 << 18) 100*4882a593Smuzhiyun #define CPCR_CP2CE (1 << 17) 101*4882a593Smuzhiyun #define CPCR_CP1CE (1 << 16) 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun #define DPPR 0x00018 104*4882a593Smuzhiyun #define DPPR_DPE(n) (1 << ((n)*4-1)) 105*4882a593Smuzhiyun #define DPPR_DPS(n, p) (((p)-1) << DPPR_DPS_SHIFT(n)) 106*4882a593Smuzhiyun #define DPPR_DPS_SHIFT(n) (((n)-1)*4) 107*4882a593Smuzhiyun #define DPPR_BPP16 (DPPR_DPE(8) | DPPR_DPS(8, 1)) /* plane1 */ 108*4882a593Smuzhiyun #define DPPR_BPP32_P1 (DPPR_DPE(7) | DPPR_DPS(7, 1)) 109*4882a593Smuzhiyun #define DPPR_BPP32_P2 (DPPR_DPE(8) | DPPR_DPS(8, 2)) 110*4882a593Smuzhiyun #define DPPR_BPP32 (DPPR_BPP32_P1 | DPPR_BPP32_P2) /* plane1 & 2 */ 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun #define DEFR 0x00020 113*4882a593Smuzhiyun #define DEFR_CODE (0x7773 << 16) 114*4882a593Smuzhiyun #define DEFR_EXSL (1 << 12) 115*4882a593Smuzhiyun #define DEFR_EXVL (1 << 11) 116*4882a593Smuzhiyun #define DEFR_EXUP (1 << 5) 117*4882a593Smuzhiyun #define DEFR_VCUP (1 << 4) 118*4882a593Smuzhiyun #define DEFR_DEFE (1 << 0) 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun #define DAPCR 0x00024 121*4882a593Smuzhiyun #define DAPCR_CODE (0x7773 << 16) 122*4882a593Smuzhiyun #define DAPCR_AP2E (1 << 4) 123*4882a593Smuzhiyun #define DAPCR_AP1E (1 << 0) 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun #define DCPCR 0x00028 126*4882a593Smuzhiyun #define DCPCR_CODE (0x7773 << 16) 127*4882a593Smuzhiyun #define DCPCR_CA2B (1 << 13) 128*4882a593Smuzhiyun #define DCPCR_CD2F (1 << 12) 129*4882a593Smuzhiyun #define DCPCR_DC2E (1 << 8) 130*4882a593Smuzhiyun #define DCPCR_CAB (1 << 5) 131*4882a593Smuzhiyun #define DCPCR_CDF (1 << 4) 132*4882a593Smuzhiyun #define DCPCR_DCE (1 << 0) 133*4882a593Smuzhiyun 134*4882a593Smuzhiyun #define DEFR2 0x00034 135*4882a593Smuzhiyun #define DEFR2_CODE (0x7775 << 16) 136*4882a593Smuzhiyun #define DEFR2_DEFE2G (1 << 0) 137*4882a593Smuzhiyun 138*4882a593Smuzhiyun #define DEFR3 0x00038 139*4882a593Smuzhiyun #define DEFR3_CODE (0x7776 << 16) 140*4882a593Smuzhiyun #define DEFR3_EVDA (1 << 14) 141*4882a593Smuzhiyun #define DEFR3_EVDM_1 (1 << 12) 142*4882a593Smuzhiyun #define DEFR3_EVDM_2 (2 << 12) 143*4882a593Smuzhiyun #define DEFR3_EVDM_3 (3 << 12) 144*4882a593Smuzhiyun #define DEFR3_VMSM2_EMA (1 << 6) 145*4882a593Smuzhiyun #define DEFR3_VMSM1_ENA (1 << 4) 146*4882a593Smuzhiyun #define DEFR3_DEFE3 (1 << 0) 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun #define DEFR4 0x0003c 149*4882a593Smuzhiyun #define DEFR4_CODE (0x7777 << 16) 150*4882a593Smuzhiyun #define DEFR4_LRUO (1 << 5) 151*4882a593Smuzhiyun #define DEFR4_SPCE (1 << 4) 152*4882a593Smuzhiyun 153*4882a593Smuzhiyun #define DVCSR 0x000d0 154*4882a593Smuzhiyun #define DVCSR_VCnFB2_DSA0(n) (0 << ((n)*2+16)) 155*4882a593Smuzhiyun #define DVCSR_VCnFB2_DSA1(n) (1 << ((n)*2+16)) 156*4882a593Smuzhiyun #define DVCSR_VCnFB2_DSA2(n) (2 << ((n)*2+16)) 157*4882a593Smuzhiyun #define DVCSR_VCnFB2_INIT(n) (3 << ((n)*2+16)) 158*4882a593Smuzhiyun #define DVCSR_VCnFB2_MASK(n) (3 << ((n)*2+16)) 159*4882a593Smuzhiyun #define DVCSR_VCnFB_DSA0(n) (0 << ((n)*2)) 160*4882a593Smuzhiyun #define DVCSR_VCnFB_DSA1(n) (1 << ((n)*2)) 161*4882a593Smuzhiyun #define DVCSR_VCnFB_DSA2(n) (2 << ((n)*2)) 162*4882a593Smuzhiyun #define DVCSR_VCnFB_INIT(n) (3 << ((n)*2)) 163*4882a593Smuzhiyun #define DVCSR_VCnFB_MASK(n) (3 << ((n)*2)) 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun #define DEFR5 0x000e0 166*4882a593Smuzhiyun #define DEFR5_CODE (0x66 << 24) 167*4882a593Smuzhiyun #define DEFR5_YCRGB2_DIS (0 << 14) 168*4882a593Smuzhiyun #define DEFR5_YCRGB2_PRI1 (1 << 14) 169*4882a593Smuzhiyun #define DEFR5_YCRGB2_PRI2 (2 << 14) 170*4882a593Smuzhiyun #define DEFR5_YCRGB2_PRI3 (3 << 14) 171*4882a593Smuzhiyun #define DEFR5_YCRGB2_MASK (3 << 14) 172*4882a593Smuzhiyun #define DEFR5_YCRGB1_DIS (0 << 12) 173*4882a593Smuzhiyun #define DEFR5_YCRGB1_PRI1 (1 << 12) 174*4882a593Smuzhiyun #define DEFR5_YCRGB1_PRI2 (2 << 12) 175*4882a593Smuzhiyun #define DEFR5_YCRGB1_PRI3 (3 << 12) 176*4882a593Smuzhiyun #define DEFR5_YCRGB1_MASK (3 << 12) 177*4882a593Smuzhiyun #define DEFR5_DEFE5 (1 << 0) 178*4882a593Smuzhiyun 179*4882a593Smuzhiyun #define DDLTR 0x000e4 180*4882a593Smuzhiyun #define DDLTR_CODE (0x7766 << 16) 181*4882a593Smuzhiyun #define DDLTR_DLAR2 (1 << 6) 182*4882a593Smuzhiyun #define DDLTR_DLAY2 (1 << 5) 183*4882a593Smuzhiyun #define DDLTR_DLAY1 (1 << 1) 184*4882a593Smuzhiyun 185*4882a593Smuzhiyun #define DEFR6 0x000e8 186*4882a593Smuzhiyun #define DEFR6_CODE (0x7778 << 16) 187*4882a593Smuzhiyun #define DEFR6_ODPM12_DSMR (0 << 10) 188*4882a593Smuzhiyun #define DEFR6_ODPM12_DISP (2 << 10) 189*4882a593Smuzhiyun #define DEFR6_ODPM12_CDE (3 << 10) 190*4882a593Smuzhiyun #define DEFR6_ODPM12_MASK (3 << 10) 191*4882a593Smuzhiyun #define DEFR6_ODPM02_DSMR (0 << 8) 192*4882a593Smuzhiyun #define DEFR6_ODPM02_DISP (2 << 8) 193*4882a593Smuzhiyun #define DEFR6_ODPM02_CDE (3 << 8) 194*4882a593Smuzhiyun #define DEFR6_ODPM02_MASK (3 << 8) 195*4882a593Smuzhiyun #define DEFR6_TCNE1 (1 << 6) 196*4882a593Smuzhiyun #define DEFR6_TCNE0 (1 << 4) 197*4882a593Smuzhiyun #define DEFR6_MLOS1 (1 << 2) 198*4882a593Smuzhiyun #define DEFR6_DEFAULT (DEFR6_CODE | DEFR6_TCNE1) 199*4882a593Smuzhiyun 200*4882a593Smuzhiyun #define DEFR7 0x000ec 201*4882a593Smuzhiyun #define DEFR7_CODE (0x7779 << 16) 202*4882a593Smuzhiyun #define DEFR7_CMME1 BIT(6) 203*4882a593Smuzhiyun #define DEFR7_CMME0 BIT(4) 204*4882a593Smuzhiyun 205*4882a593Smuzhiyun /* ----------------------------------------------------------------------------- 206*4882a593Smuzhiyun * R8A7790-only Control Registers 207*4882a593Smuzhiyun */ 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun #define DD1SSR 0x20008 210*4882a593Smuzhiyun #define DD1SSR_TVR (1 << 15) 211*4882a593Smuzhiyun #define DD1SSR_FRM (1 << 14) 212*4882a593Smuzhiyun #define DD1SSR_BUF (1 << 12) 213*4882a593Smuzhiyun #define DD1SSR_VBK (1 << 11) 214*4882a593Smuzhiyun #define DD1SSR_RINT (1 << 9) 215*4882a593Smuzhiyun #define DD1SSR_HBK (1 << 8) 216*4882a593Smuzhiyun #define DD1SSR_ADC(n) (1 << ((n)-1)) 217*4882a593Smuzhiyun 218*4882a593Smuzhiyun #define DD1SRCR 0x2000c 219*4882a593Smuzhiyun #define DD1SRCR_TVR (1 << 15) 220*4882a593Smuzhiyun #define DD1SRCR_FRM (1 << 14) 221*4882a593Smuzhiyun #define DD1SRCR_BUF (1 << 12) 222*4882a593Smuzhiyun #define DD1SRCR_VBK (1 << 11) 223*4882a593Smuzhiyun #define DD1SRCR_RINT (1 << 9) 224*4882a593Smuzhiyun #define DD1SRCR_HBK (1 << 8) 225*4882a593Smuzhiyun #define DD1SRCR_ADC(n) (1 << ((n)-1)) 226*4882a593Smuzhiyun 227*4882a593Smuzhiyun #define DD1IER 0x20010 228*4882a593Smuzhiyun #define DD1IER_TVR (1 << 15) 229*4882a593Smuzhiyun #define DD1IER_FRM (1 << 14) 230*4882a593Smuzhiyun #define DD1IER_BUF (1 << 12) 231*4882a593Smuzhiyun #define DD1IER_VBK (1 << 11) 232*4882a593Smuzhiyun #define DD1IER_RINT (1 << 9) 233*4882a593Smuzhiyun #define DD1IER_HBK (1 << 8) 234*4882a593Smuzhiyun #define DD1IER_ADC(n) (1 << ((n)-1)) 235*4882a593Smuzhiyun 236*4882a593Smuzhiyun #define DEFR8 0x20020 237*4882a593Smuzhiyun #define DEFR8_CODE (0x7790 << 16) 238*4882a593Smuzhiyun #define DEFR8_VSCS (1 << 6) 239*4882a593Smuzhiyun #define DEFR8_DRGBS_DU(n) ((n) << 4) 240*4882a593Smuzhiyun #define DEFR8_DRGBS_MASK (3 << 4) 241*4882a593Smuzhiyun #define DEFR8_DEFE8 (1 << 0) 242*4882a593Smuzhiyun 243*4882a593Smuzhiyun #define DOFLR 0x20024 244*4882a593Smuzhiyun #define DOFLR_CODE (0x7790 << 16) 245*4882a593Smuzhiyun #define DOFLR_HSYCFL1 (1 << 13) 246*4882a593Smuzhiyun #define DOFLR_VSYCFL1 (1 << 12) 247*4882a593Smuzhiyun #define DOFLR_ODDFL1 (1 << 11) 248*4882a593Smuzhiyun #define DOFLR_DISPFL1 (1 << 10) 249*4882a593Smuzhiyun #define DOFLR_CDEFL1 (1 << 9) 250*4882a593Smuzhiyun #define DOFLR_RGBFL1 (1 << 8) 251*4882a593Smuzhiyun #define DOFLR_HSYCFL0 (1 << 5) 252*4882a593Smuzhiyun #define DOFLR_VSYCFL0 (1 << 4) 253*4882a593Smuzhiyun #define DOFLR_ODDFL0 (1 << 3) 254*4882a593Smuzhiyun #define DOFLR_DISPFL0 (1 << 2) 255*4882a593Smuzhiyun #define DOFLR_CDEFL0 (1 << 1) 256*4882a593Smuzhiyun #define DOFLR_RGBFL0 (1 << 0) 257*4882a593Smuzhiyun 258*4882a593Smuzhiyun #define DIDSR 0x20028 259*4882a593Smuzhiyun #define DIDSR_CODE (0x7790 << 16) 260*4882a593Smuzhiyun #define DIDSR_LCDS_DCLKIN(n) (0 << (8 + (n) * 2)) 261*4882a593Smuzhiyun #define DIDSR_LCDS_LVDS0(n) (2 << (8 + (n) * 2)) 262*4882a593Smuzhiyun #define DIDSR_LCDS_LVDS1(n) (3 << (8 + (n) * 2)) 263*4882a593Smuzhiyun #define DIDSR_LCDS_MASK(n) (3 << (8 + (n) * 2)) 264*4882a593Smuzhiyun #define DIDSR_PDCS_CLK(n, clk) (clk << ((n) * 2)) 265*4882a593Smuzhiyun #define DIDSR_PDCS_MASK(n) (3 << ((n) * 2)) 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun #define DEFR10 0x20038 268*4882a593Smuzhiyun #define DEFR10_CODE (0x7795 << 16) 269*4882a593Smuzhiyun #define DEFR10_VSPF1_RGB (0 << 14) 270*4882a593Smuzhiyun #define DEFR10_VSPF1_YC (1 << 14) 271*4882a593Smuzhiyun #define DEFR10_DOCF1_RGB (0 << 12) 272*4882a593Smuzhiyun #define DEFR10_DOCF1_YC (1 << 12) 273*4882a593Smuzhiyun #define DEFR10_YCDF0_YCBCR444 (0 << 11) 274*4882a593Smuzhiyun #define DEFR10_YCDF0_YCBCR422 (1 << 11) 275*4882a593Smuzhiyun #define DEFR10_VSPF0_RGB (0 << 10) 276*4882a593Smuzhiyun #define DEFR10_VSPF0_YC (1 << 10) 277*4882a593Smuzhiyun #define DEFR10_DOCF0_RGB (0 << 8) 278*4882a593Smuzhiyun #define DEFR10_DOCF0_YC (1 << 8) 279*4882a593Smuzhiyun #define DEFR10_TSEL_H3_TCON1 (0 << 1) /* DEFR102 register only (DU2/DU3) */ 280*4882a593Smuzhiyun #define DEFR10_DEFE10 (1 << 0) 281*4882a593Smuzhiyun 282*4882a593Smuzhiyun #define DPLLCR 0x20044 283*4882a593Smuzhiyun #define DPLLCR_CODE (0x95 << 24) 284*4882a593Smuzhiyun #define DPLLCR_PLCS1 (1 << 23) 285*4882a593Smuzhiyun /* 286*4882a593Smuzhiyun * PLCS0 is bit 21, but H3 ES1.x requires bit 20 to be set as well. As bit 20 287*4882a593Smuzhiyun * isn't implemented by other SoC in the Gen3 family it can safely be set 288*4882a593Smuzhiyun * unconditionally. 289*4882a593Smuzhiyun */ 290*4882a593Smuzhiyun #define DPLLCR_PLCS0 (3 << 20) 291*4882a593Smuzhiyun #define DPLLCR_CLKE (1 << 18) 292*4882a593Smuzhiyun #define DPLLCR_FDPLL(n) ((n) << 12) 293*4882a593Smuzhiyun #define DPLLCR_N(n) ((n) << 5) 294*4882a593Smuzhiyun #define DPLLCR_M(n) ((n) << 3) 295*4882a593Smuzhiyun #define DPLLCR_STBY (1 << 2) 296*4882a593Smuzhiyun #define DPLLCR_INCS_DOTCLKIN0 (0 << 0) 297*4882a593Smuzhiyun #define DPLLCR_INCS_DOTCLKIN1 (1 << 1) 298*4882a593Smuzhiyun 299*4882a593Smuzhiyun #define DPLLC2R 0x20048 300*4882a593Smuzhiyun #define DPLLC2R_CODE (0x95 << 24) 301*4882a593Smuzhiyun #define DPLLC2R_SELC (1 << 12) 302*4882a593Smuzhiyun #define DPLLC2R_M(n) ((n) << 8) 303*4882a593Smuzhiyun #define DPLLC2R_FDPLL(n) ((n) << 0) 304*4882a593Smuzhiyun 305*4882a593Smuzhiyun /* ----------------------------------------------------------------------------- 306*4882a593Smuzhiyun * Display Timing Generation Registers 307*4882a593Smuzhiyun */ 308*4882a593Smuzhiyun 309*4882a593Smuzhiyun #define HDSR 0x00040 310*4882a593Smuzhiyun #define HDER 0x00044 311*4882a593Smuzhiyun #define VDSR 0x00048 312*4882a593Smuzhiyun #define VDER 0x0004c 313*4882a593Smuzhiyun #define HCR 0x00050 314*4882a593Smuzhiyun #define HSWR 0x00054 315*4882a593Smuzhiyun #define VCR 0x00058 316*4882a593Smuzhiyun #define VSPR 0x0005c 317*4882a593Smuzhiyun #define EQWR 0x00060 318*4882a593Smuzhiyun #define SPWR 0x00064 319*4882a593Smuzhiyun #define CLAMPSR 0x00070 320*4882a593Smuzhiyun #define CLAMPWR 0x00074 321*4882a593Smuzhiyun #define DESR 0x00078 322*4882a593Smuzhiyun #define DEWR 0x0007c 323*4882a593Smuzhiyun 324*4882a593Smuzhiyun /* ----------------------------------------------------------------------------- 325*4882a593Smuzhiyun * Display Attribute Registers 326*4882a593Smuzhiyun */ 327*4882a593Smuzhiyun 328*4882a593Smuzhiyun #define CP1TR 0x00080 329*4882a593Smuzhiyun #define CP2TR 0x00084 330*4882a593Smuzhiyun #define CP3TR 0x00088 331*4882a593Smuzhiyun #define CP4TR 0x0008c 332*4882a593Smuzhiyun 333*4882a593Smuzhiyun #define DOOR 0x00090 334*4882a593Smuzhiyun #define DOOR_RGB(r, g, b) (((r) << 18) | ((g) << 10) | ((b) << 2)) 335*4882a593Smuzhiyun #define CDER 0x00094 336*4882a593Smuzhiyun #define CDER_RGB(r, g, b) (((r) << 18) | ((g) << 10) | ((b) << 2)) 337*4882a593Smuzhiyun #define BPOR 0x00098 338*4882a593Smuzhiyun #define BPOR_RGB(r, g, b) (((r) << 18) | ((g) << 10) | ((b) << 2)) 339*4882a593Smuzhiyun 340*4882a593Smuzhiyun #define RINTOFSR 0x0009c 341*4882a593Smuzhiyun 342*4882a593Smuzhiyun #define DSHPR 0x000c8 343*4882a593Smuzhiyun #define DSHPR_CODE (0x7776 << 16) 344*4882a593Smuzhiyun #define DSHPR_PRIH (0xa << 4) 345*4882a593Smuzhiyun #define DSHPR_PRIL_BPP16 (0x8 << 0) 346*4882a593Smuzhiyun #define DSHPR_PRIL_BPP32 (0x9 << 0) 347*4882a593Smuzhiyun 348*4882a593Smuzhiyun /* ----------------------------------------------------------------------------- 349*4882a593Smuzhiyun * Display Plane Registers 350*4882a593Smuzhiyun */ 351*4882a593Smuzhiyun 352*4882a593Smuzhiyun #define PLANE_OFF 0x00100 353*4882a593Smuzhiyun 354*4882a593Smuzhiyun #define PnMR 0x00100 /* plane 1 */ 355*4882a593Smuzhiyun #define PnMR_VISL_VIN0 (0 << 26) /* use Video Input 0 */ 356*4882a593Smuzhiyun #define PnMR_VISL_VIN1 (1 << 26) /* use Video Input 1 */ 357*4882a593Smuzhiyun #define PnMR_VISL_VIN2 (2 << 26) /* use Video Input 2 */ 358*4882a593Smuzhiyun #define PnMR_VISL_VIN3 (3 << 26) /* use Video Input 3 */ 359*4882a593Smuzhiyun #define PnMR_YCDF_YUYV (1 << 20) /* YUYV format */ 360*4882a593Smuzhiyun #define PnMR_TC_R (0 << 17) /* Tranparent color is PnTC1R */ 361*4882a593Smuzhiyun #define PnMR_TC_CP (1 << 17) /* Tranparent color is color palette */ 362*4882a593Smuzhiyun #define PnMR_WAE (1 << 16) /* Wrap around Enable */ 363*4882a593Smuzhiyun #define PnMR_SPIM_TP (0 << 12) /* Transparent Color */ 364*4882a593Smuzhiyun #define PnMR_SPIM_ALP (1 << 12) /* Alpha Blending */ 365*4882a593Smuzhiyun #define PnMR_SPIM_EOR (2 << 12) /* EOR */ 366*4882a593Smuzhiyun #define PnMR_SPIM_TP_OFF (1 << 14) /* No Transparent Color */ 367*4882a593Smuzhiyun #define PnMR_CPSL_CP1 (0 << 8) /* Color Palette selected 1 */ 368*4882a593Smuzhiyun #define PnMR_CPSL_CP2 (1 << 8) /* Color Palette selected 2 */ 369*4882a593Smuzhiyun #define PnMR_CPSL_CP3 (2 << 8) /* Color Palette selected 3 */ 370*4882a593Smuzhiyun #define PnMR_CPSL_CP4 (3 << 8) /* Color Palette selected 4 */ 371*4882a593Smuzhiyun #define PnMR_DC (1 << 7) /* Display Area Change */ 372*4882a593Smuzhiyun #define PnMR_BM_MD (0 << 4) /* Manual Display Change Mode */ 373*4882a593Smuzhiyun #define PnMR_BM_AR (1 << 4) /* Auto Rendering Mode */ 374*4882a593Smuzhiyun #define PnMR_BM_AD (2 << 4) /* Auto Display Change Mode */ 375*4882a593Smuzhiyun #define PnMR_BM_VC (3 << 4) /* Video Capture Mode */ 376*4882a593Smuzhiyun #define PnMR_DDDF_8BPP (0 << 0) /* 8bit */ 377*4882a593Smuzhiyun #define PnMR_DDDF_16BPP (1 << 0) /* 16bit or 32bit */ 378*4882a593Smuzhiyun #define PnMR_DDDF_ARGB (2 << 0) /* ARGB */ 379*4882a593Smuzhiyun #define PnMR_DDDF_YC (3 << 0) /* YC */ 380*4882a593Smuzhiyun #define PnMR_DDDF_MASK (3 << 0) 381*4882a593Smuzhiyun 382*4882a593Smuzhiyun #define PnMWR 0x00104 383*4882a593Smuzhiyun 384*4882a593Smuzhiyun #define PnALPHAR 0x00108 385*4882a593Smuzhiyun #define PnALPHAR_ABIT_1 (0 << 12) 386*4882a593Smuzhiyun #define PnALPHAR_ABIT_0 (1 << 12) 387*4882a593Smuzhiyun #define PnALPHAR_ABIT_X (2 << 12) 388*4882a593Smuzhiyun 389*4882a593Smuzhiyun #define PnDSXR 0x00110 390*4882a593Smuzhiyun #define PnDSYR 0x00114 391*4882a593Smuzhiyun #define PnDPXR 0x00118 392*4882a593Smuzhiyun #define PnDPYR 0x0011c 393*4882a593Smuzhiyun 394*4882a593Smuzhiyun #define PnDSA0R 0x00120 395*4882a593Smuzhiyun #define PnDSA1R 0x00124 396*4882a593Smuzhiyun #define PnDSA2R 0x00128 397*4882a593Smuzhiyun #define PnDSA_MASK 0xfffffff0 398*4882a593Smuzhiyun 399*4882a593Smuzhiyun #define PnSPXR 0x00130 400*4882a593Smuzhiyun #define PnSPYR 0x00134 401*4882a593Smuzhiyun #define PnWASPR 0x00138 402*4882a593Smuzhiyun #define PnWAMWR 0x0013c 403*4882a593Smuzhiyun 404*4882a593Smuzhiyun #define PnBTR 0x00140 405*4882a593Smuzhiyun 406*4882a593Smuzhiyun #define PnTC1R 0x00144 407*4882a593Smuzhiyun #define PnTC2R 0x00148 408*4882a593Smuzhiyun #define PnTC3R 0x0014c 409*4882a593Smuzhiyun #define PnTC3R_CODE (0x66 << 24) 410*4882a593Smuzhiyun 411*4882a593Smuzhiyun #define PnMLR 0x00150 412*4882a593Smuzhiyun 413*4882a593Smuzhiyun #define PnSWAPR 0x00180 414*4882a593Smuzhiyun #define PnSWAPR_DIGN (1 << 4) 415*4882a593Smuzhiyun #define PnSWAPR_SPQW (1 << 3) 416*4882a593Smuzhiyun #define PnSWAPR_SPLW (1 << 2) 417*4882a593Smuzhiyun #define PnSWAPR_SPWD (1 << 1) 418*4882a593Smuzhiyun #define PnSWAPR_SPBY (1 << 0) 419*4882a593Smuzhiyun 420*4882a593Smuzhiyun #define PnDDCR 0x00184 421*4882a593Smuzhiyun #define PnDDCR_CODE (0x7775 << 16) 422*4882a593Smuzhiyun #define PnDDCR_LRGB1 (1 << 11) 423*4882a593Smuzhiyun #define PnDDCR_LRGB0 (1 << 10) 424*4882a593Smuzhiyun 425*4882a593Smuzhiyun #define PnDDCR2 0x00188 426*4882a593Smuzhiyun #define PnDDCR2_CODE (0x7776 << 16) 427*4882a593Smuzhiyun #define PnDDCR2_NV21 (1 << 5) 428*4882a593Smuzhiyun #define PnDDCR2_Y420 (1 << 4) 429*4882a593Smuzhiyun #define PnDDCR2_DIVU (1 << 1) 430*4882a593Smuzhiyun #define PnDDCR2_DIVY (1 << 0) 431*4882a593Smuzhiyun 432*4882a593Smuzhiyun #define PnDDCR4 0x00190 433*4882a593Smuzhiyun #define PnDDCR4_CODE (0x7766 << 16) 434*4882a593Smuzhiyun #define PnDDCR4_VSPS (1 << 13) 435*4882a593Smuzhiyun #define PnDDCR4_SDFS_RGB (0 << 4) 436*4882a593Smuzhiyun #define PnDDCR4_SDFS_YC (5 << 4) 437*4882a593Smuzhiyun #define PnDDCR4_SDFS_MASK (7 << 4) 438*4882a593Smuzhiyun #define PnDDCR4_EDF_NONE (0 << 0) 439*4882a593Smuzhiyun #define PnDDCR4_EDF_ARGB8888 (1 << 0) 440*4882a593Smuzhiyun #define PnDDCR4_EDF_RGB888 (2 << 0) 441*4882a593Smuzhiyun #define PnDDCR4_EDF_RGB666 (3 << 0) 442*4882a593Smuzhiyun #define PnDDCR4_EDF_MASK (7 << 0) 443*4882a593Smuzhiyun 444*4882a593Smuzhiyun #define APnMR 0x0a100 445*4882a593Smuzhiyun #define APnMR_WAE (1 << 16) /* Wrap around Enable */ 446*4882a593Smuzhiyun #define APnMR_DC (1 << 7) /* Display Area Change */ 447*4882a593Smuzhiyun #define APnMR_BM_MD (0 << 4) /* Manual Display Change Mode */ 448*4882a593Smuzhiyun #define APnMR_BM_AD (2 << 4) /* Auto Display Change Mode */ 449*4882a593Smuzhiyun 450*4882a593Smuzhiyun #define APnMWR 0x0a104 451*4882a593Smuzhiyun 452*4882a593Smuzhiyun #define APnDSXR 0x0a110 453*4882a593Smuzhiyun #define APnDSYR 0x0a114 454*4882a593Smuzhiyun #define APnDPXR 0x0a118 455*4882a593Smuzhiyun #define APnDPYR 0x0a11c 456*4882a593Smuzhiyun 457*4882a593Smuzhiyun #define APnDSA0R 0x0a120 458*4882a593Smuzhiyun #define APnDSA1R 0x0a124 459*4882a593Smuzhiyun #define APnDSA2R 0x0a128 460*4882a593Smuzhiyun 461*4882a593Smuzhiyun #define APnSPXR 0x0a130 462*4882a593Smuzhiyun #define APnSPYR 0x0a134 463*4882a593Smuzhiyun #define APnWASPR 0x0a138 464*4882a593Smuzhiyun #define APnWAMWR 0x0a13c 465*4882a593Smuzhiyun 466*4882a593Smuzhiyun #define APnBTR 0x0a140 467*4882a593Smuzhiyun 468*4882a593Smuzhiyun #define APnMLR 0x0a150 469*4882a593Smuzhiyun #define APnSWAPR 0x0a180 470*4882a593Smuzhiyun 471*4882a593Smuzhiyun /* ----------------------------------------------------------------------------- 472*4882a593Smuzhiyun * Display Capture Registers 473*4882a593Smuzhiyun */ 474*4882a593Smuzhiyun 475*4882a593Smuzhiyun #define DCMR 0x0c100 476*4882a593Smuzhiyun #define DCMWR 0x0c104 477*4882a593Smuzhiyun #define DCSAR 0x0c120 478*4882a593Smuzhiyun #define DCMLR 0x0c150 479*4882a593Smuzhiyun 480*4882a593Smuzhiyun /* ----------------------------------------------------------------------------- 481*4882a593Smuzhiyun * Color Palette Registers 482*4882a593Smuzhiyun */ 483*4882a593Smuzhiyun 484*4882a593Smuzhiyun #define CP1_000R 0x01000 485*4882a593Smuzhiyun #define CP1_255R 0x013fc 486*4882a593Smuzhiyun #define CP2_000R 0x02000 487*4882a593Smuzhiyun #define CP2_255R 0x023fc 488*4882a593Smuzhiyun #define CP3_000R 0x03000 489*4882a593Smuzhiyun #define CP3_255R 0x033fc 490*4882a593Smuzhiyun #define CP4_000R 0x04000 491*4882a593Smuzhiyun #define CP4_255R 0x043fc 492*4882a593Smuzhiyun 493*4882a593Smuzhiyun /* ----------------------------------------------------------------------------- 494*4882a593Smuzhiyun * External Synchronization Control Registers 495*4882a593Smuzhiyun */ 496*4882a593Smuzhiyun 497*4882a593Smuzhiyun #define ESCR02 0x10000 498*4882a593Smuzhiyun #define ESCR13 0x01000 499*4882a593Smuzhiyun #define ESCR_DCLKOINV (1 << 25) 500*4882a593Smuzhiyun #define ESCR_DCLKSEL_DCLKIN (0 << 20) 501*4882a593Smuzhiyun #define ESCR_DCLKSEL_CLKS (1 << 20) 502*4882a593Smuzhiyun #define ESCR_DCLKSEL_MASK (1 << 20) 503*4882a593Smuzhiyun #define ESCR_DCLKDIS (1 << 16) 504*4882a593Smuzhiyun #define ESCR_SYNCSEL_OFF (0 << 8) 505*4882a593Smuzhiyun #define ESCR_SYNCSEL_EXVSYNC (2 << 8) 506*4882a593Smuzhiyun #define ESCR_SYNCSEL_EXHSYNC (3 << 8) 507*4882a593Smuzhiyun #define ESCR_FRQSEL_MASK (0x3f << 0) 508*4882a593Smuzhiyun 509*4882a593Smuzhiyun #define OTAR02 0x10004 510*4882a593Smuzhiyun #define OTAR13 0x01004 511*4882a593Smuzhiyun 512*4882a593Smuzhiyun /* ----------------------------------------------------------------------------- 513*4882a593Smuzhiyun * Dual Display Output Control Registers 514*4882a593Smuzhiyun */ 515*4882a593Smuzhiyun 516*4882a593Smuzhiyun #define DORCR 0x11000 517*4882a593Smuzhiyun #define DORCR_PG2T (1 << 30) 518*4882a593Smuzhiyun #define DORCR_DK2S (1 << 28) 519*4882a593Smuzhiyun #define DORCR_PG2D_DS1 (0 << 24) 520*4882a593Smuzhiyun #define DORCR_PG2D_DS2 (1 << 24) 521*4882a593Smuzhiyun #define DORCR_PG2D_FIX0 (2 << 24) 522*4882a593Smuzhiyun #define DORCR_PG2D_DOOR (3 << 24) 523*4882a593Smuzhiyun #define DORCR_PG2D_MASK (3 << 24) 524*4882a593Smuzhiyun #define DORCR_DR1D (1 << 21) 525*4882a593Smuzhiyun #define DORCR_PG1D_DS1 (0 << 16) 526*4882a593Smuzhiyun #define DORCR_PG1D_DS2 (1 << 16) 527*4882a593Smuzhiyun #define DORCR_PG1D_FIX0 (2 << 16) 528*4882a593Smuzhiyun #define DORCR_PG1D_DOOR (3 << 16) 529*4882a593Smuzhiyun #define DORCR_PG1D_MASK (3 << 16) 530*4882a593Smuzhiyun #define DORCR_RGPV (1 << 4) 531*4882a593Smuzhiyun #define DORCR_DPRS (1 << 0) 532*4882a593Smuzhiyun 533*4882a593Smuzhiyun #define DPTSR 0x11004 534*4882a593Smuzhiyun #define DPTSR_PnDK(n) (1 << ((n) + 16)) 535*4882a593Smuzhiyun #define DPTSR_PnTS(n) (1 << (n)) 536*4882a593Smuzhiyun 537*4882a593Smuzhiyun #define DAPTSR 0x11008 538*4882a593Smuzhiyun #define DAPTSR_APnDK(n) (1 << ((n) + 16)) 539*4882a593Smuzhiyun #define DAPTSR_APnTS(n) (1 << (n)) 540*4882a593Smuzhiyun 541*4882a593Smuzhiyun #define DS1PR 0x11020 542*4882a593Smuzhiyun #define DS2PR 0x11024 543*4882a593Smuzhiyun 544*4882a593Smuzhiyun /* ----------------------------------------------------------------------------- 545*4882a593Smuzhiyun * YC-RGB Conversion Coefficient Registers 546*4882a593Smuzhiyun */ 547*4882a593Smuzhiyun 548*4882a593Smuzhiyun #define YNCR 0x11080 549*4882a593Smuzhiyun #define YNOR 0x11084 550*4882a593Smuzhiyun #define CRNOR 0x11088 551*4882a593Smuzhiyun #define CBNOR 0x1108c 552*4882a593Smuzhiyun #define RCRCR 0x11090 553*4882a593Smuzhiyun #define GCRCR 0x11094 554*4882a593Smuzhiyun #define GCBCR 0x11098 555*4882a593Smuzhiyun #define BCBCR 0x1109c 556*4882a593Smuzhiyun 557*4882a593Smuzhiyun #endif /* __RCAR_DU_REGS_H__ */ 558