1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef __DRM_MCDE_DISPLAY_REGS 3*4882a593Smuzhiyun #define __DRM_MCDE_DISPLAY_REGS 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun /* PP (pixel processor) interrupts */ 6*4882a593Smuzhiyun #define MCDE_IMSCPP 0x00000104 7*4882a593Smuzhiyun #define MCDE_RISPP 0x00000114 8*4882a593Smuzhiyun #define MCDE_MISPP 0x00000124 9*4882a593Smuzhiyun #define MCDE_SISPP 0x00000134 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #define MCDE_PP_VCMPA BIT(0) 12*4882a593Smuzhiyun #define MCDE_PP_VCMPB BIT(1) 13*4882a593Smuzhiyun #define MCDE_PP_VSCC0 BIT(2) 14*4882a593Smuzhiyun #define MCDE_PP_VSCC1 BIT(3) 15*4882a593Smuzhiyun #define MCDE_PP_VCMPC0 BIT(4) 16*4882a593Smuzhiyun #define MCDE_PP_VCMPC1 BIT(5) 17*4882a593Smuzhiyun #define MCDE_PP_ROTFD_A BIT(6) 18*4882a593Smuzhiyun #define MCDE_PP_ROTFD_B BIT(7) 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun /* Overlay interrupts */ 21*4882a593Smuzhiyun #define MCDE_IMSCOVL 0x00000108 22*4882a593Smuzhiyun #define MCDE_RISOVL 0x00000118 23*4882a593Smuzhiyun #define MCDE_MISOVL 0x00000128 24*4882a593Smuzhiyun #define MCDE_SISOVL 0x00000138 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun /* Channel interrupts */ 27*4882a593Smuzhiyun #define MCDE_IMSCCHNL 0x0000010C 28*4882a593Smuzhiyun #define MCDE_RISCHNL 0x0000011C 29*4882a593Smuzhiyun #define MCDE_MISCHNL 0x0000012C 30*4882a593Smuzhiyun #define MCDE_SISCHNL 0x0000013C 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun /* X = 0..9 */ 33*4882a593Smuzhiyun #define MCDE_EXTSRCXA0 0x00000200 34*4882a593Smuzhiyun #define MCDE_EXTSRCXA0_GROUPOFFSET 0x20 35*4882a593Smuzhiyun #define MCDE_EXTSRCXA0_BASEADDRESS0_SHIFT 3 36*4882a593Smuzhiyun #define MCDE_EXTSRCXA0_BASEADDRESS0_MASK 0xFFFFFFF8 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun #define MCDE_EXTSRCXA1 0x00000204 39*4882a593Smuzhiyun #define MCDE_EXTSRCXA1_GROUPOFFSET 0x20 40*4882a593Smuzhiyun #define MCDE_EXTSRCXA1_BASEADDRESS1_SHIFT 3 41*4882a593Smuzhiyun #define MCDE_EXTSRCXA1_BASEADDRESS1_MASK 0xFFFFFFF8 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun /* External sources 0..9 */ 44*4882a593Smuzhiyun #define MCDE_EXTSRC0CONF 0x0000020C 45*4882a593Smuzhiyun #define MCDE_EXTSRC1CONF 0x0000022C 46*4882a593Smuzhiyun #define MCDE_EXTSRC2CONF 0x0000024C 47*4882a593Smuzhiyun #define MCDE_EXTSRC3CONF 0x0000026C 48*4882a593Smuzhiyun #define MCDE_EXTSRC4CONF 0x0000028C 49*4882a593Smuzhiyun #define MCDE_EXTSRC5CONF 0x000002AC 50*4882a593Smuzhiyun #define MCDE_EXTSRC6CONF 0x000002CC 51*4882a593Smuzhiyun #define MCDE_EXTSRC7CONF 0x000002EC 52*4882a593Smuzhiyun #define MCDE_EXTSRC8CONF 0x0000030C 53*4882a593Smuzhiyun #define MCDE_EXTSRC9CONF 0x0000032C 54*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_GROUPOFFSET 0x20 55*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BUF_ID_SHIFT 0 56*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BUF_ID_MASK 0x00000003 57*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BUF_NB_SHIFT 2 58*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BUF_NB_MASK 0x0000000C 59*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_PRI_OVLID_SHIFT 4 60*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_PRI_OVLID_MASK 0x000000F0 61*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BPP_SHIFT 8 62*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BPP_MASK 0x00000F00 63*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BPP_1BPP_PAL 0 64*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BPP_2BPP_PAL 1 65*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BPP_4BPP_PAL 2 66*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BPP_8BPP_PAL 3 67*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BPP_RGB444 4 68*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BPP_ARGB4444 5 69*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BPP_IRGB1555 6 70*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BPP_RGB565 7 71*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BPP_RGB888 8 72*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BPP_XRGB8888 9 73*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BPP_ARGB8888 10 74*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BPP_YCBCR422 11 75*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BGR BIT(12) 76*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BEBO BIT(13) 77*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_BEPO BIT(14) 78*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_TUNNELING_BUFFER_HEIGHT_SHIFT 16 79*4882a593Smuzhiyun #define MCDE_EXTSRCXCONF_TUNNELING_BUFFER_HEIGHT_MASK 0x0FFF0000 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun /* External sources 0..9 */ 82*4882a593Smuzhiyun #define MCDE_EXTSRC0CR 0x00000210 83*4882a593Smuzhiyun #define MCDE_EXTSRC1CR 0x00000230 84*4882a593Smuzhiyun #define MCDE_EXTSRC2CR 0x00000250 85*4882a593Smuzhiyun #define MCDE_EXTSRC3CR 0x00000270 86*4882a593Smuzhiyun #define MCDE_EXTSRC4CR 0x00000290 87*4882a593Smuzhiyun #define MCDE_EXTSRC5CR 0x000002B0 88*4882a593Smuzhiyun #define MCDE_EXTSRC6CR 0x000002D0 89*4882a593Smuzhiyun #define MCDE_EXTSRC7CR 0x000002F0 90*4882a593Smuzhiyun #define MCDE_EXTSRC8CR 0x00000310 91*4882a593Smuzhiyun #define MCDE_EXTSRC9CR 0x00000330 92*4882a593Smuzhiyun #define MCDE_EXTSRCXCR_SEL_MOD_SHIFT 0 93*4882a593Smuzhiyun #define MCDE_EXTSRCXCR_SEL_MOD_MASK 0x00000003 94*4882a593Smuzhiyun #define MCDE_EXTSRCXCR_SEL_MOD_EXTERNAL_SEL 0 95*4882a593Smuzhiyun #define MCDE_EXTSRCXCR_SEL_MOD_AUTO_TOGGLE 1 96*4882a593Smuzhiyun #define MCDE_EXTSRCXCR_SEL_MOD_SOFTWARE_SEL 2 97*4882a593Smuzhiyun #define MCDE_EXTSRCXCR_MULTIOVL_CTRL_PRIMARY BIT(2) /* 0 = all */ 98*4882a593Smuzhiyun #define MCDE_EXTSRCXCR_FS_DIV_DISABLE BIT(3) 99*4882a593Smuzhiyun #define MCDE_EXTSRCXCR_FORCE_FS_DIV BIT(4) 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun /* Only external source 6 has a second address register */ 102*4882a593Smuzhiyun #define MCDE_EXTSRC6A2 0x000002C8 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun /* 6 overlays */ 105*4882a593Smuzhiyun #define MCDE_OVL0CR 0x00000400 106*4882a593Smuzhiyun #define MCDE_OVL1CR 0x00000420 107*4882a593Smuzhiyun #define MCDE_OVL2CR 0x00000440 108*4882a593Smuzhiyun #define MCDE_OVL3CR 0x00000460 109*4882a593Smuzhiyun #define MCDE_OVL4CR 0x00000480 110*4882a593Smuzhiyun #define MCDE_OVL5CR 0x000004A0 111*4882a593Smuzhiyun #define MCDE_OVLXCR_OVLEN BIT(0) 112*4882a593Smuzhiyun #define MCDE_OVLXCR_COLCCTRL_DISABLED 0 113*4882a593Smuzhiyun #define MCDE_OVLXCR_COLCCTRL_ENABLED_NO_SAT (1 << 1) 114*4882a593Smuzhiyun #define MCDE_OVLXCR_COLCCTRL_ENABLED_SAT (2 << 1) 115*4882a593Smuzhiyun #define MCDE_OVLXCR_CKEYGEN BIT(3) 116*4882a593Smuzhiyun #define MCDE_OVLXCR_ALPHAPMEN BIT(4) 117*4882a593Smuzhiyun #define MCDE_OVLXCR_OVLF BIT(5) 118*4882a593Smuzhiyun #define MCDE_OVLXCR_OVLR BIT(6) 119*4882a593Smuzhiyun #define MCDE_OVLXCR_OVLB BIT(7) 120*4882a593Smuzhiyun #define MCDE_OVLXCR_FETCH_ROPC_SHIFT 8 121*4882a593Smuzhiyun #define MCDE_OVLXCR_FETCH_ROPC_MASK 0x0000FF00 122*4882a593Smuzhiyun #define MCDE_OVLXCR_STBPRIO_SHIFT 16 123*4882a593Smuzhiyun #define MCDE_OVLXCR_STBPRIO_MASK 0x000F0000 124*4882a593Smuzhiyun #define MCDE_OVLXCR_BURSTSIZE_SHIFT 20 125*4882a593Smuzhiyun #define MCDE_OVLXCR_BURSTSIZE_MASK 0x00F00000 126*4882a593Smuzhiyun #define MCDE_OVLXCR_BURSTSIZE_1W 0 127*4882a593Smuzhiyun #define MCDE_OVLXCR_BURSTSIZE_2W 1 128*4882a593Smuzhiyun #define MCDE_OVLXCR_BURSTSIZE_4W 2 129*4882a593Smuzhiyun #define MCDE_OVLXCR_BURSTSIZE_8W 3 130*4882a593Smuzhiyun #define MCDE_OVLXCR_BURSTSIZE_16W 4 131*4882a593Smuzhiyun #define MCDE_OVLXCR_BURSTSIZE_HW_1W 8 132*4882a593Smuzhiyun #define MCDE_OVLXCR_BURSTSIZE_HW_2W 9 133*4882a593Smuzhiyun #define MCDE_OVLXCR_BURSTSIZE_HW_4W 10 134*4882a593Smuzhiyun #define MCDE_OVLXCR_BURSTSIZE_HW_8W 11 135*4882a593Smuzhiyun #define MCDE_OVLXCR_BURSTSIZE_HW_16W 12 136*4882a593Smuzhiyun #define MCDE_OVLXCR_MAXOUTSTANDING_SHIFT 24 137*4882a593Smuzhiyun #define MCDE_OVLXCR_MAXOUTSTANDING_MASK 0x0F000000 138*4882a593Smuzhiyun #define MCDE_OVLXCR_MAXOUTSTANDING_1_REQ 0 139*4882a593Smuzhiyun #define MCDE_OVLXCR_MAXOUTSTANDING_2_REQ 1 140*4882a593Smuzhiyun #define MCDE_OVLXCR_MAXOUTSTANDING_4_REQ 2 141*4882a593Smuzhiyun #define MCDE_OVLXCR_MAXOUTSTANDING_8_REQ 3 142*4882a593Smuzhiyun #define MCDE_OVLXCR_MAXOUTSTANDING_16_REQ 4 143*4882a593Smuzhiyun #define MCDE_OVLXCR_ROTBURSTSIZE_SHIFT 28 144*4882a593Smuzhiyun #define MCDE_OVLXCR_ROTBURSTSIZE_MASK 0xF0000000 145*4882a593Smuzhiyun #define MCDE_OVLXCR_ROTBURSTSIZE_1W 0 146*4882a593Smuzhiyun #define MCDE_OVLXCR_ROTBURSTSIZE_2W 1 147*4882a593Smuzhiyun #define MCDE_OVLXCR_ROTBURSTSIZE_4W 2 148*4882a593Smuzhiyun #define MCDE_OVLXCR_ROTBURSTSIZE_8W 3 149*4882a593Smuzhiyun #define MCDE_OVLXCR_ROTBURSTSIZE_16W 4 150*4882a593Smuzhiyun #define MCDE_OVLXCR_ROTBURSTSIZE_HW_1W 8 151*4882a593Smuzhiyun #define MCDE_OVLXCR_ROTBURSTSIZE_HW_2W 9 152*4882a593Smuzhiyun #define MCDE_OVLXCR_ROTBURSTSIZE_HW_4W 10 153*4882a593Smuzhiyun #define MCDE_OVLXCR_ROTBURSTSIZE_HW_8W 11 154*4882a593Smuzhiyun #define MCDE_OVLXCR_ROTBURSTSIZE_HW_16W 12 155*4882a593Smuzhiyun 156*4882a593Smuzhiyun #define MCDE_OVL0CONF 0x00000404 157*4882a593Smuzhiyun #define MCDE_OVL1CONF 0x00000424 158*4882a593Smuzhiyun #define MCDE_OVL2CONF 0x00000444 159*4882a593Smuzhiyun #define MCDE_OVL3CONF 0x00000464 160*4882a593Smuzhiyun #define MCDE_OVL4CONF 0x00000484 161*4882a593Smuzhiyun #define MCDE_OVL5CONF 0x000004A4 162*4882a593Smuzhiyun #define MCDE_OVLXCONF_PPL_SHIFT 0 163*4882a593Smuzhiyun #define MCDE_OVLXCONF_PPL_MASK 0x000007FF 164*4882a593Smuzhiyun #define MCDE_OVLXCONF_EXTSRC_ID_SHIFT 11 165*4882a593Smuzhiyun #define MCDE_OVLXCONF_EXTSRC_ID_MASK 0x00007800 166*4882a593Smuzhiyun #define MCDE_OVLXCONF_LPF_SHIFT 16 167*4882a593Smuzhiyun #define MCDE_OVLXCONF_LPF_MASK 0x07FF0000 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun #define MCDE_OVL0CONF2 0x00000408 170*4882a593Smuzhiyun #define MCDE_OVL1CONF2 0x00000428 171*4882a593Smuzhiyun #define MCDE_OVL2CONF2 0x00000448 172*4882a593Smuzhiyun #define MCDE_OVL3CONF2 0x00000468 173*4882a593Smuzhiyun #define MCDE_OVL4CONF2 0x00000488 174*4882a593Smuzhiyun #define MCDE_OVL5CONF2 0x000004A8 175*4882a593Smuzhiyun #define MCDE_OVLXCONF2_BP_PER_PIXEL_ALPHA 0 176*4882a593Smuzhiyun #define MCDE_OVLXCONF2_BP_CONSTANT_ALPHA BIT(0) 177*4882a593Smuzhiyun #define MCDE_OVLXCONF2_ALPHAVALUE_SHIFT 1 178*4882a593Smuzhiyun #define MCDE_OVLXCONF2_ALPHAVALUE_MASK 0x000001FE 179*4882a593Smuzhiyun #define MCDE_OVLXCONF2_OPQ BIT(9) 180*4882a593Smuzhiyun #define MCDE_OVLXCONF2_PIXOFF_SHIFT 10 181*4882a593Smuzhiyun #define MCDE_OVLXCONF2_PIXOFF_MASK 0x0000FC00 182*4882a593Smuzhiyun #define MCDE_OVLXCONF2_PIXELFETCHERWATERMARKLEVEL_SHIFT 16 183*4882a593Smuzhiyun #define MCDE_OVLXCONF2_PIXELFETCHERWATERMARKLEVEL_MASK 0x1FFF0000 184*4882a593Smuzhiyun 185*4882a593Smuzhiyun #define MCDE_OVL0LJINC 0x0000040C 186*4882a593Smuzhiyun #define MCDE_OVL1LJINC 0x0000042C 187*4882a593Smuzhiyun #define MCDE_OVL2LJINC 0x0000044C 188*4882a593Smuzhiyun #define MCDE_OVL3LJINC 0x0000046C 189*4882a593Smuzhiyun #define MCDE_OVL4LJINC 0x0000048C 190*4882a593Smuzhiyun #define MCDE_OVL5LJINC 0x000004AC 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun #define MCDE_OVL0CROP 0x00000410 193*4882a593Smuzhiyun #define MCDE_OVL1CROP 0x00000430 194*4882a593Smuzhiyun #define MCDE_OVL2CROP 0x00000450 195*4882a593Smuzhiyun #define MCDE_OVL3CROP 0x00000470 196*4882a593Smuzhiyun #define MCDE_OVL4CROP 0x00000490 197*4882a593Smuzhiyun #define MCDE_OVL5CROP 0x000004B0 198*4882a593Smuzhiyun #define MCDE_OVLXCROP_TMRGN_SHIFT 0 199*4882a593Smuzhiyun #define MCDE_OVLXCROP_TMRGN_MASK 0x003FFFFF 200*4882a593Smuzhiyun #define MCDE_OVLXCROP_LMRGN_SHIFT 22 201*4882a593Smuzhiyun #define MCDE_OVLXCROP_LMRGN_MASK 0xFFC00000 202*4882a593Smuzhiyun 203*4882a593Smuzhiyun #define MCDE_OVL0COMP 0x00000414 204*4882a593Smuzhiyun #define MCDE_OVL1COMP 0x00000434 205*4882a593Smuzhiyun #define MCDE_OVL2COMP 0x00000454 206*4882a593Smuzhiyun #define MCDE_OVL3COMP 0x00000474 207*4882a593Smuzhiyun #define MCDE_OVL4COMP 0x00000494 208*4882a593Smuzhiyun #define MCDE_OVL5COMP 0x000004B4 209*4882a593Smuzhiyun #define MCDE_OVLXCOMP_XPOS_SHIFT 0 210*4882a593Smuzhiyun #define MCDE_OVLXCOMP_XPOS_MASK 0x000007FF 211*4882a593Smuzhiyun #define MCDE_OVLXCOMP_CH_ID_SHIFT 11 212*4882a593Smuzhiyun #define MCDE_OVLXCOMP_CH_ID_MASK 0x00007800 213*4882a593Smuzhiyun #define MCDE_OVLXCOMP_YPOS_SHIFT 16 214*4882a593Smuzhiyun #define MCDE_OVLXCOMP_YPOS_MASK 0x07FF0000 215*4882a593Smuzhiyun #define MCDE_OVLXCOMP_Z_SHIFT 27 216*4882a593Smuzhiyun #define MCDE_OVLXCOMP_Z_MASK 0x78000000 217*4882a593Smuzhiyun 218*4882a593Smuzhiyun #define MCDE_CRC 0x00000C00 219*4882a593Smuzhiyun #define MCDE_CRC_C1EN BIT(2) 220*4882a593Smuzhiyun #define MCDE_CRC_C2EN BIT(3) 221*4882a593Smuzhiyun #define MCDE_CRC_SYCEN0 BIT(7) 222*4882a593Smuzhiyun #define MCDE_CRC_SYCEN1 BIT(8) 223*4882a593Smuzhiyun #define MCDE_CRC_SIZE1 BIT(9) 224*4882a593Smuzhiyun #define MCDE_CRC_SIZE2 BIT(10) 225*4882a593Smuzhiyun #define MCDE_CRC_YUVCONVC1EN BIT(15) 226*4882a593Smuzhiyun #define MCDE_CRC_CS1EN BIT(16) 227*4882a593Smuzhiyun #define MCDE_CRC_CS2EN BIT(17) 228*4882a593Smuzhiyun #define MCDE_CRC_CS1POL BIT(19) 229*4882a593Smuzhiyun #define MCDE_CRC_CS2POL BIT(20) 230*4882a593Smuzhiyun #define MCDE_CRC_CD1POL BIT(21) 231*4882a593Smuzhiyun #define MCDE_CRC_CD2POL BIT(22) 232*4882a593Smuzhiyun #define MCDE_CRC_WR1POL BIT(23) 233*4882a593Smuzhiyun #define MCDE_CRC_WR2POL BIT(24) 234*4882a593Smuzhiyun #define MCDE_CRC_RD1POL BIT(25) 235*4882a593Smuzhiyun #define MCDE_CRC_RD2POL BIT(26) 236*4882a593Smuzhiyun #define MCDE_CRC_SYNCCTRL_SHIFT 29 237*4882a593Smuzhiyun #define MCDE_CRC_SYNCCTRL_MASK 0x60000000 238*4882a593Smuzhiyun #define MCDE_CRC_SYNCCTRL_NO_SYNC 0 239*4882a593Smuzhiyun #define MCDE_CRC_SYNCCTRL_DBI0 1 240*4882a593Smuzhiyun #define MCDE_CRC_SYNCCTRL_DBI1 2 241*4882a593Smuzhiyun #define MCDE_CRC_SYNCCTRL_PING_PONG 3 242*4882a593Smuzhiyun #define MCDE_CRC_CLAMPC1EN BIT(31) 243*4882a593Smuzhiyun 244*4882a593Smuzhiyun #define MCDE_VSCRC0 0x00000C5C 245*4882a593Smuzhiyun #define MCDE_VSCRC1 0x00000C60 246*4882a593Smuzhiyun #define MCDE_VSCRC_VSPMIN_MASK 0x00000FFF 247*4882a593Smuzhiyun #define MCDE_VSCRC_VSPMAX_SHIFT 12 248*4882a593Smuzhiyun #define MCDE_VSCRC_VSPMAX_MASK 0x00FFF000 249*4882a593Smuzhiyun #define MCDE_VSCRC_VSPDIV_SHIFT 24 250*4882a593Smuzhiyun #define MCDE_VSCRC_VSPDIV_MASK 0x07000000 251*4882a593Smuzhiyun #define MCDE_VSCRC_VSPDIV_MCDECLK_DIV_1 0 252*4882a593Smuzhiyun #define MCDE_VSCRC_VSPDIV_MCDECLK_DIV_2 1 253*4882a593Smuzhiyun #define MCDE_VSCRC_VSPDIV_MCDECLK_DIV_4 2 254*4882a593Smuzhiyun #define MCDE_VSCRC_VSPDIV_MCDECLK_DIV_8 3 255*4882a593Smuzhiyun #define MCDE_VSCRC_VSPDIV_MCDECLK_DIV_16 4 256*4882a593Smuzhiyun #define MCDE_VSCRC_VSPDIV_MCDECLK_DIV_32 5 257*4882a593Smuzhiyun #define MCDE_VSCRC_VSPDIV_MCDECLK_DIV_64 6 258*4882a593Smuzhiyun #define MCDE_VSCRC_VSPDIV_MCDECLK_DIV_128 7 259*4882a593Smuzhiyun #define MCDE_VSCRC_VSPOL BIT(27) /* 0 active high, 1 active low */ 260*4882a593Smuzhiyun #define MCDE_VSCRC_VSSEL BIT(28) /* 0 VSYNC0, 1 VSYNC1 */ 261*4882a593Smuzhiyun #define MCDE_VSCRC_VSDBL BIT(29) 262*4882a593Smuzhiyun 263*4882a593Smuzhiyun /* Channel config 0..3 */ 264*4882a593Smuzhiyun #define MCDE_CHNL0CONF 0x00000600 265*4882a593Smuzhiyun #define MCDE_CHNL1CONF 0x00000620 266*4882a593Smuzhiyun #define MCDE_CHNL2CONF 0x00000640 267*4882a593Smuzhiyun #define MCDE_CHNL3CONF 0x00000660 268*4882a593Smuzhiyun #define MCDE_CHNLXCONF_PPL_SHIFT 0 269*4882a593Smuzhiyun #define MCDE_CHNLXCONF_PPL_MASK 0x000007FF 270*4882a593Smuzhiyun #define MCDE_CHNLXCONF_LPF_SHIFT 16 271*4882a593Smuzhiyun #define MCDE_CHNLXCONF_LPF_MASK 0x07FF0000 272*4882a593Smuzhiyun #define MCDE_MAX_WIDTH 2048 273*4882a593Smuzhiyun 274*4882a593Smuzhiyun /* Channel status 0..3 */ 275*4882a593Smuzhiyun #define MCDE_CHNL0STAT 0x00000604 276*4882a593Smuzhiyun #define MCDE_CHNL1STAT 0x00000624 277*4882a593Smuzhiyun #define MCDE_CHNL2STAT 0x00000644 278*4882a593Smuzhiyun #define MCDE_CHNL3STAT 0x00000664 279*4882a593Smuzhiyun #define MCDE_CHNLXSTAT_CHNLRD BIT(0) 280*4882a593Smuzhiyun #define MCDE_CHNLXSTAT_CHNLA BIT(1) 281*4882a593Smuzhiyun #define MCDE_CHNLXSTAT_CHNLBLBCKGND_EN BIT(16) 282*4882a593Smuzhiyun #define MCDE_CHNLXSTAT_PPLX2_V422 BIT(17) 283*4882a593Smuzhiyun #define MCDE_CHNLXSTAT_LPFX2_V422 BIT(18) 284*4882a593Smuzhiyun 285*4882a593Smuzhiyun /* Sync settings for channel 0..3 */ 286*4882a593Smuzhiyun #define MCDE_CHNL0SYNCHMOD 0x00000608 287*4882a593Smuzhiyun #define MCDE_CHNL1SYNCHMOD 0x00000628 288*4882a593Smuzhiyun #define MCDE_CHNL2SYNCHMOD 0x00000648 289*4882a593Smuzhiyun #define MCDE_CHNL3SYNCHMOD 0x00000668 290*4882a593Smuzhiyun 291*4882a593Smuzhiyun #define MCDE_CHNLXSYNCHMOD_SRC_SYNCH_SHIFT 0 292*4882a593Smuzhiyun #define MCDE_CHNLXSYNCHMOD_SRC_SYNCH_MASK 0x00000003 293*4882a593Smuzhiyun #define MCDE_CHNLXSYNCHMOD_SRC_SYNCH_HARDWARE 0 294*4882a593Smuzhiyun #define MCDE_CHNLXSYNCHMOD_SRC_SYNCH_NO_SYNCH 1 295*4882a593Smuzhiyun #define MCDE_CHNLXSYNCHMOD_SRC_SYNCH_SOFTWARE 2 296*4882a593Smuzhiyun #define MCDE_CHNLXSYNCHMOD_OUT_SYNCH_SRC_SHIFT 2 297*4882a593Smuzhiyun #define MCDE_CHNLXSYNCHMOD_OUT_SYNCH_SRC_MASK 0x0000001C 298*4882a593Smuzhiyun #define MCDE_CHNLXSYNCHMOD_OUT_SYNCH_SRC_FORMATTER 0 299*4882a593Smuzhiyun #define MCDE_CHNLXSYNCHMOD_OUT_SYNCH_SRC_TE0 1 300*4882a593Smuzhiyun #define MCDE_CHNLXSYNCHMOD_OUT_SYNCH_SRC_TE1 2 301*4882a593Smuzhiyun 302*4882a593Smuzhiyun /* Software sync triggers for channel 0..3 */ 303*4882a593Smuzhiyun #define MCDE_CHNL0SYNCHSW 0x0000060C 304*4882a593Smuzhiyun #define MCDE_CHNL1SYNCHSW 0x0000062C 305*4882a593Smuzhiyun #define MCDE_CHNL2SYNCHSW 0x0000064C 306*4882a593Smuzhiyun #define MCDE_CHNL3SYNCHSW 0x0000066C 307*4882a593Smuzhiyun #define MCDE_CHNLXSYNCHSW_SW_TRIG BIT(0) 308*4882a593Smuzhiyun 309*4882a593Smuzhiyun #define MCDE_CHNL0BCKGNDCOL 0x00000610 310*4882a593Smuzhiyun #define MCDE_CHNL1BCKGNDCOL 0x00000630 311*4882a593Smuzhiyun #define MCDE_CHNL2BCKGNDCOL 0x00000650 312*4882a593Smuzhiyun #define MCDE_CHNL3BCKGNDCOL 0x00000670 313*4882a593Smuzhiyun #define MCDE_CHNLXBCKGNDCOL_B_SHIFT 0 314*4882a593Smuzhiyun #define MCDE_CHNLXBCKGNDCOL_B_MASK 0x000000FF 315*4882a593Smuzhiyun #define MCDE_CHNLXBCKGNDCOL_G_SHIFT 8 316*4882a593Smuzhiyun #define MCDE_CHNLXBCKGNDCOL_G_MASK 0x0000FF00 317*4882a593Smuzhiyun #define MCDE_CHNLXBCKGNDCOL_R_SHIFT 16 318*4882a593Smuzhiyun #define MCDE_CHNLXBCKGNDCOL_R_MASK 0x00FF0000 319*4882a593Smuzhiyun 320*4882a593Smuzhiyun #define MCDE_CHNL0MUXING 0x00000614 321*4882a593Smuzhiyun #define MCDE_CHNL1MUXING 0x00000634 322*4882a593Smuzhiyun #define MCDE_CHNL2MUXING 0x00000654 323*4882a593Smuzhiyun #define MCDE_CHNL3MUXING 0x00000674 324*4882a593Smuzhiyun #define MCDE_CHNLXMUXING_FIFO_ID_FIFO_A 0 325*4882a593Smuzhiyun #define MCDE_CHNLXMUXING_FIFO_ID_FIFO_B 1 326*4882a593Smuzhiyun #define MCDE_CHNLXMUXING_FIFO_ID_FIFO_C0 2 327*4882a593Smuzhiyun #define MCDE_CHNLXMUXING_FIFO_ID_FIFO_C1 3 328*4882a593Smuzhiyun 329*4882a593Smuzhiyun /* Pixel processing control registers for channel A B, */ 330*4882a593Smuzhiyun #define MCDE_CRA0 0x00000800 331*4882a593Smuzhiyun #define MCDE_CRB0 0x00000A00 332*4882a593Smuzhiyun #define MCDE_CRX0_FLOEN BIT(0) 333*4882a593Smuzhiyun #define MCDE_CRX0_POWEREN BIT(1) 334*4882a593Smuzhiyun #define MCDE_CRX0_BLENDEN BIT(2) 335*4882a593Smuzhiyun #define MCDE_CRX0_AFLICKEN BIT(3) 336*4882a593Smuzhiyun #define MCDE_CRX0_PALEN BIT(4) 337*4882a593Smuzhiyun #define MCDE_CRX0_DITHEN BIT(5) 338*4882a593Smuzhiyun #define MCDE_CRX0_GAMEN BIT(6) 339*4882a593Smuzhiyun #define MCDE_CRX0_KEYCTRL_SHIFT 7 340*4882a593Smuzhiyun #define MCDE_CRX0_KEYCTRL_MASK 0x00000380 341*4882a593Smuzhiyun #define MCDE_CRX0_KEYCTRL_OFF 0 342*4882a593Smuzhiyun #define MCDE_CRX0_KEYCTRL_ALPHA_RGB 1 343*4882a593Smuzhiyun #define MCDE_CRX0_KEYCTRL_RGB 2 344*4882a593Smuzhiyun #define MCDE_CRX0_KEYCTRL_FALPHA_FRGB 4 345*4882a593Smuzhiyun #define MCDE_CRX0_KEYCTRL_FRGB 5 346*4882a593Smuzhiyun #define MCDE_CRX0_BLENDCTRL BIT(10) 347*4882a593Smuzhiyun #define MCDE_CRX0_FLICKMODE_SHIFT 11 348*4882a593Smuzhiyun #define MCDE_CRX0_FLICKMODE_MASK 0x00001800 349*4882a593Smuzhiyun #define MCDE_CRX0_FLICKMODE_FORCE_FILTER_0 0 350*4882a593Smuzhiyun #define MCDE_CRX0_FLICKMODE_ADAPTIVE 1 351*4882a593Smuzhiyun #define MCDE_CRX0_FLICKMODE_TEST_MODE 2 352*4882a593Smuzhiyun #define MCDE_CRX0_FLOCKFORMAT_RGB BIT(13) /* 0 = YCVCR */ 353*4882a593Smuzhiyun #define MCDE_CRX0_PALMODE_GAMMA BIT(14) /* 0 = palette */ 354*4882a593Smuzhiyun #define MCDE_CRX0_OLEDEN BIT(15) 355*4882a593Smuzhiyun #define MCDE_CRX0_ALPHABLEND_SHIFT 16 356*4882a593Smuzhiyun #define MCDE_CRX0_ALPHABLEND_MASK 0x00FF0000 357*4882a593Smuzhiyun #define MCDE_CRX0_ROTEN BIT(24) 358*4882a593Smuzhiyun 359*4882a593Smuzhiyun #define MCDE_CRA1 0x00000804 360*4882a593Smuzhiyun #define MCDE_CRB1 0x00000A04 361*4882a593Smuzhiyun #define MCDE_CRX1_PCD_SHIFT 0 362*4882a593Smuzhiyun #define MCDE_CRX1_PCD_MASK 0x000003FF 363*4882a593Smuzhiyun #define MCDE_CRX1_CLKSEL_SHIFT 10 364*4882a593Smuzhiyun #define MCDE_CRX1_CLKSEL_MASK 0x00001C00 365*4882a593Smuzhiyun #define MCDE_CRX1_CLKSEL_CLKPLL72 0 366*4882a593Smuzhiyun #define MCDE_CRX1_CLKSEL_CLKPLL27 2 367*4882a593Smuzhiyun #define MCDE_CRX1_CLKSEL_TV1CLK 3 368*4882a593Smuzhiyun #define MCDE_CRX1_CLKSEL_TV2CLK 4 369*4882a593Smuzhiyun #define MCDE_CRX1_CLKSEL_MCDECLK 5 370*4882a593Smuzhiyun #define MCDE_CRX1_CDWIN_SHIFT 13 371*4882a593Smuzhiyun #define MCDE_CRX1_CDWIN_MASK 0x0001E000 372*4882a593Smuzhiyun #define MCDE_CRX1_CDWIN_8BPP_C1 0 373*4882a593Smuzhiyun #define MCDE_CRX1_CDWIN_12BPP_C1 1 374*4882a593Smuzhiyun #define MCDE_CRX1_CDWIN_12BPP_C2 2 375*4882a593Smuzhiyun #define MCDE_CRX1_CDWIN_16BPP_C1 3 376*4882a593Smuzhiyun #define MCDE_CRX1_CDWIN_16BPP_C2 4 377*4882a593Smuzhiyun #define MCDE_CRX1_CDWIN_16BPP_C3 5 378*4882a593Smuzhiyun #define MCDE_CRX1_CDWIN_18BPP_C1 6 379*4882a593Smuzhiyun #define MCDE_CRX1_CDWIN_18BPP_C2 7 380*4882a593Smuzhiyun #define MCDE_CRX1_CDWIN_24BPP 8 381*4882a593Smuzhiyun #define MCDE_CRX1_OUTBPP_SHIFT 25 382*4882a593Smuzhiyun #define MCDE_CRX1_OUTBPP_MASK 0x1E000000 383*4882a593Smuzhiyun #define MCDE_CRX1_OUTBPP_MONO1 0 384*4882a593Smuzhiyun #define MCDE_CRX1_OUTBPP_MONO2 1 385*4882a593Smuzhiyun #define MCDE_CRX1_OUTBPP_MONO4 2 386*4882a593Smuzhiyun #define MCDE_CRX1_OUTBPP_MONO8 3 387*4882a593Smuzhiyun #define MCDE_CRX1_OUTBPP_8BPP 4 388*4882a593Smuzhiyun #define MCDE_CRX1_OUTBPP_12BPP 5 389*4882a593Smuzhiyun #define MCDE_CRX1_OUTBPP_15BPP 6 390*4882a593Smuzhiyun #define MCDE_CRX1_OUTBPP_16BPP 7 391*4882a593Smuzhiyun #define MCDE_CRX1_OUTBPP_18BPP 8 392*4882a593Smuzhiyun #define MCDE_CRX1_OUTBPP_24BPP 9 393*4882a593Smuzhiyun #define MCDE_CRX1_BCD BIT(29) 394*4882a593Smuzhiyun #define MCDE_CRA1_CLKTYPE_TVXCLKSEL1 BIT(30) /* 0 = TVXCLKSEL1 */ 395*4882a593Smuzhiyun 396*4882a593Smuzhiyun #define MCDE_COLKEYA 0x00000808 397*4882a593Smuzhiyun #define MCDE_COLKEYB 0x00000A08 398*4882a593Smuzhiyun 399*4882a593Smuzhiyun #define MCDE_FCOLKEYA 0x0000080C 400*4882a593Smuzhiyun #define MCDE_FCOLKEYB 0x00000A0C 401*4882a593Smuzhiyun 402*4882a593Smuzhiyun #define MCDE_RGBCONV1A 0x00000810 403*4882a593Smuzhiyun #define MCDE_RGBCONV1B 0x00000A10 404*4882a593Smuzhiyun 405*4882a593Smuzhiyun #define MCDE_RGBCONV2A 0x00000814 406*4882a593Smuzhiyun #define MCDE_RGBCONV2B 0x00000A14 407*4882a593Smuzhiyun 408*4882a593Smuzhiyun #define MCDE_RGBCONV3A 0x00000818 409*4882a593Smuzhiyun #define MCDE_RGBCONV3B 0x00000A18 410*4882a593Smuzhiyun 411*4882a593Smuzhiyun #define MCDE_RGBCONV4A 0x0000081C 412*4882a593Smuzhiyun #define MCDE_RGBCONV4B 0x00000A1C 413*4882a593Smuzhiyun 414*4882a593Smuzhiyun #define MCDE_RGBCONV5A 0x00000820 415*4882a593Smuzhiyun #define MCDE_RGBCONV5B 0x00000A20 416*4882a593Smuzhiyun 417*4882a593Smuzhiyun #define MCDE_RGBCONV6A 0x00000824 418*4882a593Smuzhiyun #define MCDE_RGBCONV6B 0x00000A24 419*4882a593Smuzhiyun 420*4882a593Smuzhiyun /* Rotation */ 421*4882a593Smuzhiyun #define MCDE_ROTACONF 0x0000087C 422*4882a593Smuzhiyun #define MCDE_ROTBCONF 0x00000A7C 423*4882a593Smuzhiyun 424*4882a593Smuzhiyun #define MCDE_SYNCHCONFA 0x00000880 425*4882a593Smuzhiyun #define MCDE_SYNCHCONFB 0x00000A80 426*4882a593Smuzhiyun 427*4882a593Smuzhiyun /* Channel A+B control registers */ 428*4882a593Smuzhiyun #define MCDE_CTRLA 0x00000884 429*4882a593Smuzhiyun #define MCDE_CTRLB 0x00000A84 430*4882a593Smuzhiyun #define MCDE_CTRLX_FIFOWTRMRK_SHIFT 0 431*4882a593Smuzhiyun #define MCDE_CTRLX_FIFOWTRMRK_MASK 0x000003FF 432*4882a593Smuzhiyun #define MCDE_CTRLX_FIFOEMPTY BIT(12) 433*4882a593Smuzhiyun #define MCDE_CTRLX_FIFOFULL BIT(13) 434*4882a593Smuzhiyun #define MCDE_CTRLX_FORMID_SHIFT 16 435*4882a593Smuzhiyun #define MCDE_CTRLX_FORMID_MASK 0x00070000 436*4882a593Smuzhiyun #define MCDE_CTRLX_FORMID_DSI0VID 0 437*4882a593Smuzhiyun #define MCDE_CTRLX_FORMID_DSI0CMD 1 438*4882a593Smuzhiyun #define MCDE_CTRLX_FORMID_DSI1VID 2 439*4882a593Smuzhiyun #define MCDE_CTRLX_FORMID_DSI1CMD 3 440*4882a593Smuzhiyun #define MCDE_CTRLX_FORMID_DSI2VID 4 441*4882a593Smuzhiyun #define MCDE_CTRLX_FORMID_DSI2CMD 5 442*4882a593Smuzhiyun #define MCDE_CTRLX_FORMID_DPIA 0 443*4882a593Smuzhiyun #define MCDE_CTRLX_FORMID_DPIB 1 444*4882a593Smuzhiyun #define MCDE_CTRLX_FORMTYPE_SHIFT 20 445*4882a593Smuzhiyun #define MCDE_CTRLX_FORMTYPE_MASK 0x00700000 446*4882a593Smuzhiyun #define MCDE_CTRLX_FORMTYPE_DPITV 0 447*4882a593Smuzhiyun #define MCDE_CTRLX_FORMTYPE_DBI 1 448*4882a593Smuzhiyun #define MCDE_CTRLX_FORMTYPE_DSI 2 449*4882a593Smuzhiyun 450*4882a593Smuzhiyun #define MCDE_DSIVID0CONF0 0x00000E00 451*4882a593Smuzhiyun #define MCDE_DSICMD0CONF0 0x00000E20 452*4882a593Smuzhiyun #define MCDE_DSIVID1CONF0 0x00000E40 453*4882a593Smuzhiyun #define MCDE_DSICMD1CONF0 0x00000E60 454*4882a593Smuzhiyun #define MCDE_DSIVID2CONF0 0x00000E80 455*4882a593Smuzhiyun #define MCDE_DSICMD2CONF0 0x00000EA0 456*4882a593Smuzhiyun #define MCDE_DSICONF0_BLANKING_SHIFT 0 457*4882a593Smuzhiyun #define MCDE_DSICONF0_BLANKING_MASK 0x000000FF 458*4882a593Smuzhiyun #define MCDE_DSICONF0_VID_MODE_CMD 0 459*4882a593Smuzhiyun #define MCDE_DSICONF0_VID_MODE_VID BIT(12) 460*4882a593Smuzhiyun #define MCDE_DSICONF0_CMD8 BIT(13) 461*4882a593Smuzhiyun #define MCDE_DSICONF0_BIT_SWAP BIT(16) 462*4882a593Smuzhiyun #define MCDE_DSICONF0_BYTE_SWAP BIT(17) 463*4882a593Smuzhiyun #define MCDE_DSICONF0_DCSVID_NOTGEN BIT(18) 464*4882a593Smuzhiyun #define MCDE_DSICONF0_PACKING_SHIFT 20 465*4882a593Smuzhiyun #define MCDE_DSICONF0_PACKING_MASK 0x00700000 466*4882a593Smuzhiyun #define MCDE_DSICONF0_PACKING_RGB565 0 467*4882a593Smuzhiyun #define MCDE_DSICONF0_PACKING_RGB666 1 468*4882a593Smuzhiyun #define MCDE_DSICONF0_PACKING_RGB666_PACKED 2 469*4882a593Smuzhiyun #define MCDE_DSICONF0_PACKING_RGB888 3 470*4882a593Smuzhiyun #define MCDE_DSICONF0_PACKING_HDTV 4 471*4882a593Smuzhiyun 472*4882a593Smuzhiyun #define MCDE_DSIVID0FRAME 0x00000E04 473*4882a593Smuzhiyun #define MCDE_DSICMD0FRAME 0x00000E24 474*4882a593Smuzhiyun #define MCDE_DSIVID1FRAME 0x00000E44 475*4882a593Smuzhiyun #define MCDE_DSICMD1FRAME 0x00000E64 476*4882a593Smuzhiyun #define MCDE_DSIVID2FRAME 0x00000E84 477*4882a593Smuzhiyun #define MCDE_DSICMD2FRAME 0x00000EA4 478*4882a593Smuzhiyun 479*4882a593Smuzhiyun #define MCDE_DSIVID0PKT 0x00000E08 480*4882a593Smuzhiyun #define MCDE_DSICMD0PKT 0x00000E28 481*4882a593Smuzhiyun #define MCDE_DSIVID1PKT 0x00000E48 482*4882a593Smuzhiyun #define MCDE_DSICMD1PKT 0x00000E68 483*4882a593Smuzhiyun #define MCDE_DSIVID2PKT 0x00000E88 484*4882a593Smuzhiyun #define MCDE_DSICMD2PKT 0x00000EA8 485*4882a593Smuzhiyun 486*4882a593Smuzhiyun #define MCDE_DSIVID0SYNC 0x00000E0C 487*4882a593Smuzhiyun #define MCDE_DSICMD0SYNC 0x00000E2C 488*4882a593Smuzhiyun #define MCDE_DSIVID1SYNC 0x00000E4C 489*4882a593Smuzhiyun #define MCDE_DSICMD1SYNC 0x00000E6C 490*4882a593Smuzhiyun #define MCDE_DSIVID2SYNC 0x00000E8C 491*4882a593Smuzhiyun #define MCDE_DSICMD2SYNC 0x00000EAC 492*4882a593Smuzhiyun 493*4882a593Smuzhiyun #define MCDE_DSIVID0CMDW 0x00000E10 494*4882a593Smuzhiyun #define MCDE_DSICMD0CMDW 0x00000E30 495*4882a593Smuzhiyun #define MCDE_DSIVID1CMDW 0x00000E50 496*4882a593Smuzhiyun #define MCDE_DSICMD1CMDW 0x00000E70 497*4882a593Smuzhiyun #define MCDE_DSIVID2CMDW 0x00000E90 498*4882a593Smuzhiyun #define MCDE_DSICMD2CMDW 0x00000EB0 499*4882a593Smuzhiyun #define MCDE_DSIVIDXCMDW_CMDW_CONTINUE_SHIFT 0 500*4882a593Smuzhiyun #define MCDE_DSIVIDXCMDW_CMDW_CONTINUE_MASK 0x0000FFFF 501*4882a593Smuzhiyun #define MCDE_DSIVIDXCMDW_CMDW_START_SHIFT 16 502*4882a593Smuzhiyun #define MCDE_DSIVIDXCMDW_CMDW_START_MASK 0xFFFF0000 503*4882a593Smuzhiyun 504*4882a593Smuzhiyun #define MCDE_DSIVID0DELAY0 0x00000E14 505*4882a593Smuzhiyun #define MCDE_DSICMD0DELAY0 0x00000E34 506*4882a593Smuzhiyun #define MCDE_DSIVID1DELAY0 0x00000E54 507*4882a593Smuzhiyun #define MCDE_DSICMD1DELAY0 0x00000E74 508*4882a593Smuzhiyun #define MCDE_DSIVID2DELAY0 0x00000E94 509*4882a593Smuzhiyun #define MCDE_DSICMD2DELAY0 0x00000EB4 510*4882a593Smuzhiyun 511*4882a593Smuzhiyun #define MCDE_DSIVID0DELAY1 0x00000E18 512*4882a593Smuzhiyun #define MCDE_DSICMD0DELAY1 0x00000E38 513*4882a593Smuzhiyun #define MCDE_DSIVID1DELAY1 0x00000E58 514*4882a593Smuzhiyun #define MCDE_DSICMD1DELAY1 0x00000E78 515*4882a593Smuzhiyun #define MCDE_DSIVID2DELAY1 0x00000E98 516*4882a593Smuzhiyun #define MCDE_DSICMD2DELAY1 0x00000EB8 517*4882a593Smuzhiyun 518*4882a593Smuzhiyun #endif /* __DRM_MCDE_DISPLAY_REGS */ 519