162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef __DRM_MCDE_DISPLAY_REGS 362306a36Sopenharmony_ci#define __DRM_MCDE_DISPLAY_REGS 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci/* PP (pixel processor) interrupts */ 662306a36Sopenharmony_ci#define MCDE_IMSCPP 0x00000104 762306a36Sopenharmony_ci#define MCDE_RISPP 0x00000114 862306a36Sopenharmony_ci#define MCDE_MISPP 0x00000124 962306a36Sopenharmony_ci#define MCDE_SISPP 0x00000134 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#define MCDE_PP_VCMPA BIT(0) 1262306a36Sopenharmony_ci#define MCDE_PP_VCMPB BIT(1) 1362306a36Sopenharmony_ci#define MCDE_PP_VSCC0 BIT(2) 1462306a36Sopenharmony_ci#define MCDE_PP_VSCC1 BIT(3) 1562306a36Sopenharmony_ci#define MCDE_PP_VCMPC0 BIT(4) 1662306a36Sopenharmony_ci#define MCDE_PP_VCMPC1 BIT(5) 1762306a36Sopenharmony_ci#define MCDE_PP_ROTFD_A BIT(6) 1862306a36Sopenharmony_ci#define MCDE_PP_ROTFD_B BIT(7) 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci/* Overlay interrupts */ 2162306a36Sopenharmony_ci#define MCDE_IMSCOVL 0x00000108 2262306a36Sopenharmony_ci#define MCDE_RISOVL 0x00000118 2362306a36Sopenharmony_ci#define MCDE_MISOVL 0x00000128 2462306a36Sopenharmony_ci#define MCDE_SISOVL 0x00000138 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci/* Channel interrupts */ 2762306a36Sopenharmony_ci#define MCDE_IMSCCHNL 0x0000010C 2862306a36Sopenharmony_ci#define MCDE_RISCHNL 0x0000011C 2962306a36Sopenharmony_ci#define MCDE_MISCHNL 0x0000012C 3062306a36Sopenharmony_ci#define MCDE_SISCHNL 0x0000013C 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci/* X = 0..9 */ 3362306a36Sopenharmony_ci#define MCDE_EXTSRCXA0 0x00000200 3462306a36Sopenharmony_ci#define MCDE_EXTSRCXA0_GROUPOFFSET 0x20 3562306a36Sopenharmony_ci#define MCDE_EXTSRCXA0_BASEADDRESS0_SHIFT 3 3662306a36Sopenharmony_ci#define MCDE_EXTSRCXA0_BASEADDRESS0_MASK 0xFFFFFFF8 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci#define MCDE_EXTSRCXA1 0x00000204 3962306a36Sopenharmony_ci#define MCDE_EXTSRCXA1_GROUPOFFSET 0x20 4062306a36Sopenharmony_ci#define MCDE_EXTSRCXA1_BASEADDRESS1_SHIFT 3 4162306a36Sopenharmony_ci#define MCDE_EXTSRCXA1_BASEADDRESS1_MASK 0xFFFFFFF8 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci/* External sources 0..9 */ 4462306a36Sopenharmony_ci#define MCDE_EXTSRC0CONF 0x0000020C 4562306a36Sopenharmony_ci#define MCDE_EXTSRC1CONF 0x0000022C 4662306a36Sopenharmony_ci#define MCDE_EXTSRC2CONF 0x0000024C 4762306a36Sopenharmony_ci#define MCDE_EXTSRC3CONF 0x0000026C 4862306a36Sopenharmony_ci#define MCDE_EXTSRC4CONF 0x0000028C 4962306a36Sopenharmony_ci#define MCDE_EXTSRC5CONF 0x000002AC 5062306a36Sopenharmony_ci#define MCDE_EXTSRC6CONF 0x000002CC 5162306a36Sopenharmony_ci#define MCDE_EXTSRC7CONF 0x000002EC 5262306a36Sopenharmony_ci#define MCDE_EXTSRC8CONF 0x0000030C 5362306a36Sopenharmony_ci#define MCDE_EXTSRC9CONF 0x0000032C 5462306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_GROUPOFFSET 0x20 5562306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BUF_ID_SHIFT 0 5662306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BUF_ID_MASK 0x00000003 5762306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BUF_NB_SHIFT 2 5862306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BUF_NB_MASK 0x0000000C 5962306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_PRI_OVLID_SHIFT 4 6062306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_PRI_OVLID_MASK 0x000000F0 6162306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BPP_SHIFT 8 6262306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BPP_MASK 0x00000F00 6362306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BPP_1BPP_PAL 0 6462306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BPP_2BPP_PAL 1 6562306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BPP_4BPP_PAL 2 6662306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BPP_8BPP_PAL 3 6762306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BPP_RGB444 4 6862306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BPP_ARGB4444 5 6962306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BPP_IRGB1555 6 7062306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BPP_RGB565 7 7162306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BPP_RGB888 8 7262306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BPP_XRGB8888 9 7362306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BPP_ARGB8888 10 7462306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BPP_YCBCR422 11 7562306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BGR BIT(12) 7662306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BEBO BIT(13) 7762306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_BEPO BIT(14) 7862306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_TUNNELING_BUFFER_HEIGHT_SHIFT 16 7962306a36Sopenharmony_ci#define MCDE_EXTSRCXCONF_TUNNELING_BUFFER_HEIGHT_MASK 0x0FFF0000 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci/* External sources 0..9 */ 8262306a36Sopenharmony_ci#define MCDE_EXTSRC0CR 0x00000210 8362306a36Sopenharmony_ci#define MCDE_EXTSRC1CR 0x00000230 8462306a36Sopenharmony_ci#define MCDE_EXTSRC2CR 0x00000250 8562306a36Sopenharmony_ci#define MCDE_EXTSRC3CR 0x00000270 8662306a36Sopenharmony_ci#define MCDE_EXTSRC4CR 0x00000290 8762306a36Sopenharmony_ci#define MCDE_EXTSRC5CR 0x000002B0 8862306a36Sopenharmony_ci#define MCDE_EXTSRC6CR 0x000002D0 8962306a36Sopenharmony_ci#define MCDE_EXTSRC7CR 0x000002F0 9062306a36Sopenharmony_ci#define MCDE_EXTSRC8CR 0x00000310 9162306a36Sopenharmony_ci#define MCDE_EXTSRC9CR 0x00000330 9262306a36Sopenharmony_ci#define MCDE_EXTSRCXCR_SEL_MOD_SHIFT 0 9362306a36Sopenharmony_ci#define MCDE_EXTSRCXCR_SEL_MOD_MASK 0x00000003 9462306a36Sopenharmony_ci#define MCDE_EXTSRCXCR_SEL_MOD_EXTERNAL_SEL 0 9562306a36Sopenharmony_ci#define MCDE_EXTSRCXCR_SEL_MOD_AUTO_TOGGLE 1 9662306a36Sopenharmony_ci#define MCDE_EXTSRCXCR_SEL_MOD_SOFTWARE_SEL 2 9762306a36Sopenharmony_ci#define MCDE_EXTSRCXCR_MULTIOVL_CTRL_PRIMARY BIT(2) /* 0 = all */ 9862306a36Sopenharmony_ci#define MCDE_EXTSRCXCR_FS_DIV_DISABLE BIT(3) 9962306a36Sopenharmony_ci#define MCDE_EXTSRCXCR_FORCE_FS_DIV BIT(4) 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci/* Only external source 6 has a second address register */ 10262306a36Sopenharmony_ci#define MCDE_EXTSRC6A2 0x000002C8 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci/* 6 overlays */ 10562306a36Sopenharmony_ci#define MCDE_OVL0CR 0x00000400 10662306a36Sopenharmony_ci#define MCDE_OVL1CR 0x00000420 10762306a36Sopenharmony_ci#define MCDE_OVL2CR 0x00000440 10862306a36Sopenharmony_ci#define MCDE_OVL3CR 0x00000460 10962306a36Sopenharmony_ci#define MCDE_OVL4CR 0x00000480 11062306a36Sopenharmony_ci#define MCDE_OVL5CR 0x000004A0 11162306a36Sopenharmony_ci#define MCDE_OVLXCR_OVLEN BIT(0) 11262306a36Sopenharmony_ci#define MCDE_OVLXCR_COLCCTRL_DISABLED 0 11362306a36Sopenharmony_ci#define MCDE_OVLXCR_COLCCTRL_ENABLED_NO_SAT (1 << 1) 11462306a36Sopenharmony_ci#define MCDE_OVLXCR_COLCCTRL_ENABLED_SAT (2 << 1) 11562306a36Sopenharmony_ci#define MCDE_OVLXCR_CKEYGEN BIT(3) 11662306a36Sopenharmony_ci#define MCDE_OVLXCR_ALPHAPMEN BIT(4) 11762306a36Sopenharmony_ci#define MCDE_OVLXCR_OVLF BIT(5) 11862306a36Sopenharmony_ci#define MCDE_OVLXCR_OVLR BIT(6) 11962306a36Sopenharmony_ci#define MCDE_OVLXCR_OVLB BIT(7) 12062306a36Sopenharmony_ci#define MCDE_OVLXCR_FETCH_ROPC_SHIFT 8 12162306a36Sopenharmony_ci#define MCDE_OVLXCR_FETCH_ROPC_MASK 0x0000FF00 12262306a36Sopenharmony_ci#define MCDE_OVLXCR_STBPRIO_SHIFT 16 12362306a36Sopenharmony_ci#define MCDE_OVLXCR_STBPRIO_MASK 0x000F0000 12462306a36Sopenharmony_ci#define MCDE_OVLXCR_BURSTSIZE_SHIFT 20 12562306a36Sopenharmony_ci#define MCDE_OVLXCR_BURSTSIZE_MASK 0x00F00000 12662306a36Sopenharmony_ci#define MCDE_OVLXCR_BURSTSIZE_1W 0 12762306a36Sopenharmony_ci#define MCDE_OVLXCR_BURSTSIZE_2W 1 12862306a36Sopenharmony_ci#define MCDE_OVLXCR_BURSTSIZE_4W 2 12962306a36Sopenharmony_ci#define MCDE_OVLXCR_BURSTSIZE_8W 3 13062306a36Sopenharmony_ci#define MCDE_OVLXCR_BURSTSIZE_16W 4 13162306a36Sopenharmony_ci#define MCDE_OVLXCR_BURSTSIZE_HW_1W 8 13262306a36Sopenharmony_ci#define MCDE_OVLXCR_BURSTSIZE_HW_2W 9 13362306a36Sopenharmony_ci#define MCDE_OVLXCR_BURSTSIZE_HW_4W 10 13462306a36Sopenharmony_ci#define MCDE_OVLXCR_BURSTSIZE_HW_8W 11 13562306a36Sopenharmony_ci#define MCDE_OVLXCR_BURSTSIZE_HW_16W 12 13662306a36Sopenharmony_ci#define MCDE_OVLXCR_MAXOUTSTANDING_SHIFT 24 13762306a36Sopenharmony_ci#define MCDE_OVLXCR_MAXOUTSTANDING_MASK 0x0F000000 13862306a36Sopenharmony_ci#define MCDE_OVLXCR_MAXOUTSTANDING_1_REQ 0 13962306a36Sopenharmony_ci#define MCDE_OVLXCR_MAXOUTSTANDING_2_REQ 1 14062306a36Sopenharmony_ci#define MCDE_OVLXCR_MAXOUTSTANDING_4_REQ 2 14162306a36Sopenharmony_ci#define MCDE_OVLXCR_MAXOUTSTANDING_8_REQ 3 14262306a36Sopenharmony_ci#define MCDE_OVLXCR_MAXOUTSTANDING_16_REQ 4 14362306a36Sopenharmony_ci#define MCDE_OVLXCR_ROTBURSTSIZE_SHIFT 28 14462306a36Sopenharmony_ci#define MCDE_OVLXCR_ROTBURSTSIZE_MASK 0xF0000000 14562306a36Sopenharmony_ci#define MCDE_OVLXCR_ROTBURSTSIZE_1W 0 14662306a36Sopenharmony_ci#define MCDE_OVLXCR_ROTBURSTSIZE_2W 1 14762306a36Sopenharmony_ci#define MCDE_OVLXCR_ROTBURSTSIZE_4W 2 14862306a36Sopenharmony_ci#define MCDE_OVLXCR_ROTBURSTSIZE_8W 3 14962306a36Sopenharmony_ci#define MCDE_OVLXCR_ROTBURSTSIZE_16W 4 15062306a36Sopenharmony_ci#define MCDE_OVLXCR_ROTBURSTSIZE_HW_1W 8 15162306a36Sopenharmony_ci#define MCDE_OVLXCR_ROTBURSTSIZE_HW_2W 9 15262306a36Sopenharmony_ci#define MCDE_OVLXCR_ROTBURSTSIZE_HW_4W 10 15362306a36Sopenharmony_ci#define MCDE_OVLXCR_ROTBURSTSIZE_HW_8W 11 15462306a36Sopenharmony_ci#define MCDE_OVLXCR_ROTBURSTSIZE_HW_16W 12 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_ci#define MCDE_OVL0CONF 0x00000404 15762306a36Sopenharmony_ci#define MCDE_OVL1CONF 0x00000424 15862306a36Sopenharmony_ci#define MCDE_OVL2CONF 0x00000444 15962306a36Sopenharmony_ci#define MCDE_OVL3CONF 0x00000464 16062306a36Sopenharmony_ci#define MCDE_OVL4CONF 0x00000484 16162306a36Sopenharmony_ci#define MCDE_OVL5CONF 0x000004A4 16262306a36Sopenharmony_ci#define MCDE_OVLXCONF_PPL_SHIFT 0 16362306a36Sopenharmony_ci#define MCDE_OVLXCONF_PPL_MASK 0x000007FF 16462306a36Sopenharmony_ci#define MCDE_OVLXCONF_EXTSRC_ID_SHIFT 11 16562306a36Sopenharmony_ci#define MCDE_OVLXCONF_EXTSRC_ID_MASK 0x00007800 16662306a36Sopenharmony_ci#define MCDE_OVLXCONF_LPF_SHIFT 16 16762306a36Sopenharmony_ci#define MCDE_OVLXCONF_LPF_MASK 0x07FF0000 16862306a36Sopenharmony_ci 16962306a36Sopenharmony_ci#define MCDE_OVL0CONF2 0x00000408 17062306a36Sopenharmony_ci#define MCDE_OVL1CONF2 0x00000428 17162306a36Sopenharmony_ci#define MCDE_OVL2CONF2 0x00000448 17262306a36Sopenharmony_ci#define MCDE_OVL3CONF2 0x00000468 17362306a36Sopenharmony_ci#define MCDE_OVL4CONF2 0x00000488 17462306a36Sopenharmony_ci#define MCDE_OVL5CONF2 0x000004A8 17562306a36Sopenharmony_ci#define MCDE_OVLXCONF2_BP_PER_PIXEL_ALPHA 0 17662306a36Sopenharmony_ci#define MCDE_OVLXCONF2_BP_CONSTANT_ALPHA BIT(0) 17762306a36Sopenharmony_ci#define MCDE_OVLXCONF2_ALPHAVALUE_SHIFT 1 17862306a36Sopenharmony_ci#define MCDE_OVLXCONF2_ALPHAVALUE_MASK 0x000001FE 17962306a36Sopenharmony_ci#define MCDE_OVLXCONF2_OPQ BIT(9) 18062306a36Sopenharmony_ci#define MCDE_OVLXCONF2_PIXOFF_SHIFT 10 18162306a36Sopenharmony_ci#define MCDE_OVLXCONF2_PIXOFF_MASK 0x0000FC00 18262306a36Sopenharmony_ci#define MCDE_OVLXCONF2_PIXELFETCHERWATERMARKLEVEL_SHIFT 16 18362306a36Sopenharmony_ci#define MCDE_OVLXCONF2_PIXELFETCHERWATERMARKLEVEL_MASK 0x1FFF0000 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci#define MCDE_OVL0LJINC 0x0000040C 18662306a36Sopenharmony_ci#define MCDE_OVL1LJINC 0x0000042C 18762306a36Sopenharmony_ci#define MCDE_OVL2LJINC 0x0000044C 18862306a36Sopenharmony_ci#define MCDE_OVL3LJINC 0x0000046C 18962306a36Sopenharmony_ci#define MCDE_OVL4LJINC 0x0000048C 19062306a36Sopenharmony_ci#define MCDE_OVL5LJINC 0x000004AC 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ci#define MCDE_OVL0CROP 0x00000410 19362306a36Sopenharmony_ci#define MCDE_OVL1CROP 0x00000430 19462306a36Sopenharmony_ci#define MCDE_OVL2CROP 0x00000450 19562306a36Sopenharmony_ci#define MCDE_OVL3CROP 0x00000470 19662306a36Sopenharmony_ci#define MCDE_OVL4CROP 0x00000490 19762306a36Sopenharmony_ci#define MCDE_OVL5CROP 0x000004B0 19862306a36Sopenharmony_ci#define MCDE_OVLXCROP_TMRGN_SHIFT 0 19962306a36Sopenharmony_ci#define MCDE_OVLXCROP_TMRGN_MASK 0x003FFFFF 20062306a36Sopenharmony_ci#define MCDE_OVLXCROP_LMRGN_SHIFT 22 20162306a36Sopenharmony_ci#define MCDE_OVLXCROP_LMRGN_MASK 0xFFC00000 20262306a36Sopenharmony_ci 20362306a36Sopenharmony_ci#define MCDE_OVL0COMP 0x00000414 20462306a36Sopenharmony_ci#define MCDE_OVL1COMP 0x00000434 20562306a36Sopenharmony_ci#define MCDE_OVL2COMP 0x00000454 20662306a36Sopenharmony_ci#define MCDE_OVL3COMP 0x00000474 20762306a36Sopenharmony_ci#define MCDE_OVL4COMP 0x00000494 20862306a36Sopenharmony_ci#define MCDE_OVL5COMP 0x000004B4 20962306a36Sopenharmony_ci#define MCDE_OVLXCOMP_XPOS_SHIFT 0 21062306a36Sopenharmony_ci#define MCDE_OVLXCOMP_XPOS_MASK 0x000007FF 21162306a36Sopenharmony_ci#define MCDE_OVLXCOMP_CH_ID_SHIFT 11 21262306a36Sopenharmony_ci#define MCDE_OVLXCOMP_CH_ID_MASK 0x00007800 21362306a36Sopenharmony_ci#define MCDE_OVLXCOMP_YPOS_SHIFT 16 21462306a36Sopenharmony_ci#define MCDE_OVLXCOMP_YPOS_MASK 0x07FF0000 21562306a36Sopenharmony_ci#define MCDE_OVLXCOMP_Z_SHIFT 27 21662306a36Sopenharmony_ci#define MCDE_OVLXCOMP_Z_MASK 0x78000000 21762306a36Sopenharmony_ci 21862306a36Sopenharmony_ci/* DPI/TV configuration registers, channel A and B */ 21962306a36Sopenharmony_ci#define MCDE_TVCRA 0x00000838 22062306a36Sopenharmony_ci#define MCDE_TVCRB 0x00000A38 22162306a36Sopenharmony_ci#define MCDE_TVCR_MOD_TV BIT(0) /* 0 = LCD mode */ 22262306a36Sopenharmony_ci#define MCDE_TVCR_INTEREN BIT(1) 22362306a36Sopenharmony_ci#define MCDE_TVCR_IFIELD BIT(2) 22462306a36Sopenharmony_ci#define MCDE_TVCR_TVMODE_SDTV_656P (0 << 3) 22562306a36Sopenharmony_ci#define MCDE_TVCR_TVMODE_SDTV_656P_LE (3 << 3) 22662306a36Sopenharmony_ci#define MCDE_TVCR_TVMODE_SDTV_656P_BE (4 << 3) 22762306a36Sopenharmony_ci#define MCDE_TVCR_SDTVMODE_Y0CBY1CR (0 << 6) 22862306a36Sopenharmony_ci#define MCDE_TVCR_SDTVMODE_CBY0CRY1 (1 << 6) 22962306a36Sopenharmony_ci#define MCDE_TVCR_AVRGEN BIT(8) 23062306a36Sopenharmony_ci#define MCDE_TVCR_CKINV BIT(9) 23162306a36Sopenharmony_ci 23262306a36Sopenharmony_ci/* TV blanking control register 1, channel A and B */ 23362306a36Sopenharmony_ci#define MCDE_TVBL1A 0x0000083C 23462306a36Sopenharmony_ci#define MCDE_TVBL1B 0x00000A3C 23562306a36Sopenharmony_ci#define MCDE_TVBL1_BEL1_SHIFT 0 /* VFP vertical front porch 11 bits */ 23662306a36Sopenharmony_ci#define MCDE_TVBL1_BSL1_SHIFT 16 /* VSW vertical sync pulse width 11 bits */ 23762306a36Sopenharmony_ci 23862306a36Sopenharmony_ci/* Pixel processing TV start line, channel A and B */ 23962306a36Sopenharmony_ci#define MCDE_TVISLA 0x00000840 24062306a36Sopenharmony_ci#define MCDE_TVISLB 0x00000A40 24162306a36Sopenharmony_ci#define MCDE_TVISL_FSL1_SHIFT 0 /* Field 1 identification start line 11 bits */ 24262306a36Sopenharmony_ci#define MCDE_TVISL_FSL2_SHIFT 16 /* Field 2 identification start line 11 bits */ 24362306a36Sopenharmony_ci 24462306a36Sopenharmony_ci/* Pixel processing TV DVO offset */ 24562306a36Sopenharmony_ci#define MCDE_TVDVOA 0x00000844 24662306a36Sopenharmony_ci#define MCDE_TVDVOB 0x00000A44 24762306a36Sopenharmony_ci#define MCDE_TVDVO_DVO1_SHIFT 0 /* VBP vertical back porch 0 = 0 */ 24862306a36Sopenharmony_ci#define MCDE_TVDVO_DVO2_SHIFT 16 24962306a36Sopenharmony_ci 25062306a36Sopenharmony_ci/* 25162306a36Sopenharmony_ci * Pixel processing TV Timing 1 25262306a36Sopenharmony_ci * HBP horizontal back porch 11 bits horizontal offset 25362306a36Sopenharmony_ci * 0 = 1 pixel HBP, 255 = 256 pixels, so actual value - 1 25462306a36Sopenharmony_ci */ 25562306a36Sopenharmony_ci#define MCDE_TVTIM1A 0x0000084C 25662306a36Sopenharmony_ci#define MCDE_TVTIM1B 0x00000A4C 25762306a36Sopenharmony_ci 25862306a36Sopenharmony_ci/* Pixel processing TV LBALW */ 25962306a36Sopenharmony_ci/* 0 = 1 clock cycle, 255 = 256 clock cycles */ 26062306a36Sopenharmony_ci#define MCDE_TVLBALWA 0x00000850 26162306a36Sopenharmony_ci#define MCDE_TVLBALWB 0x00000A50 26262306a36Sopenharmony_ci#define MCDE_TVLBALW_LBW_SHIFT 0 /* HSW horizonal sync width, line blanking width 11 bits */ 26362306a36Sopenharmony_ci#define MCDE_TVLBALW_ALW_SHIFT 16 /* HFP horizontal front porch, active line width 11 bits */ 26462306a36Sopenharmony_ci 26562306a36Sopenharmony_ci/* TV blanking control register 1, channel A and B */ 26662306a36Sopenharmony_ci#define MCDE_TVBL2A 0x00000854 26762306a36Sopenharmony_ci#define MCDE_TVBL2B 0x00000A54 26862306a36Sopenharmony_ci#define MCDE_TVBL2_BEL2_SHIFT 0 /* Field 2 blanking end line 11 bits */ 26962306a36Sopenharmony_ci#define MCDE_TVBL2_BSL2_SHIFT 16 /* Field 2 blanking start line 11 bits */ 27062306a36Sopenharmony_ci 27162306a36Sopenharmony_ci/* Pixel processing TV background */ 27262306a36Sopenharmony_ci#define MCDE_TVBLUA 0x00000858 27362306a36Sopenharmony_ci#define MCDE_TVBLUB 0x00000A58 27462306a36Sopenharmony_ci#define MCDE_TVBLU_TVBLU_SHIFT 0 /* 8 bits luminance */ 27562306a36Sopenharmony_ci#define MCDE_TVBLU_TVBCB_SHIFT 8 /* 8 bits Cb chrominance */ 27662306a36Sopenharmony_ci#define MCDE_TVBLU_TVBCR_SHIFT 16 /* 8 bits Cr chrominance */ 27762306a36Sopenharmony_ci 27862306a36Sopenharmony_ci/* Pixel processing LCD timing 1 */ 27962306a36Sopenharmony_ci#define MCDE_LCDTIM1A 0x00000860 28062306a36Sopenharmony_ci#define MCDE_LCDTIM1B 0x00000A60 28162306a36Sopenharmony_ci/* inverted vertical sync pulse for HRTFT 0 = active low, 1 active high */ 28262306a36Sopenharmony_ci#define MCDE_LCDTIM1B_IVP BIT(19) 28362306a36Sopenharmony_ci/* inverted vertical sync, 0 = active high (the normal), 1 = active low */ 28462306a36Sopenharmony_ci#define MCDE_LCDTIM1B_IVS BIT(20) 28562306a36Sopenharmony_ci/* inverted horizontal sync, 0 = active high (the normal), 1 = active low */ 28662306a36Sopenharmony_ci#define MCDE_LCDTIM1B_IHS BIT(21) 28762306a36Sopenharmony_ci/* inverted panel clock 0 = rising edge data out, 1 = falling edge data out */ 28862306a36Sopenharmony_ci#define MCDE_LCDTIM1B_IPC BIT(22) 28962306a36Sopenharmony_ci/* invert output enable 0 = active high, 1 = active low */ 29062306a36Sopenharmony_ci#define MCDE_LCDTIM1B_IOE BIT(23) 29162306a36Sopenharmony_ci 29262306a36Sopenharmony_ci#define MCDE_CRC 0x00000C00 29362306a36Sopenharmony_ci#define MCDE_CRC_C1EN BIT(2) 29462306a36Sopenharmony_ci#define MCDE_CRC_C2EN BIT(3) 29562306a36Sopenharmony_ci#define MCDE_CRC_SYCEN0 BIT(7) 29662306a36Sopenharmony_ci#define MCDE_CRC_SYCEN1 BIT(8) 29762306a36Sopenharmony_ci#define MCDE_CRC_SIZE1 BIT(9) 29862306a36Sopenharmony_ci#define MCDE_CRC_SIZE2 BIT(10) 29962306a36Sopenharmony_ci#define MCDE_CRC_YUVCONVC1EN BIT(15) 30062306a36Sopenharmony_ci#define MCDE_CRC_CS1EN BIT(16) 30162306a36Sopenharmony_ci#define MCDE_CRC_CS2EN BIT(17) 30262306a36Sopenharmony_ci#define MCDE_CRC_CS1POL BIT(19) 30362306a36Sopenharmony_ci#define MCDE_CRC_CS2POL BIT(20) 30462306a36Sopenharmony_ci#define MCDE_CRC_CD1POL BIT(21) 30562306a36Sopenharmony_ci#define MCDE_CRC_CD2POL BIT(22) 30662306a36Sopenharmony_ci#define MCDE_CRC_WR1POL BIT(23) 30762306a36Sopenharmony_ci#define MCDE_CRC_WR2POL BIT(24) 30862306a36Sopenharmony_ci#define MCDE_CRC_RD1POL BIT(25) 30962306a36Sopenharmony_ci#define MCDE_CRC_RD2POL BIT(26) 31062306a36Sopenharmony_ci#define MCDE_CRC_SYNCCTRL_SHIFT 29 31162306a36Sopenharmony_ci#define MCDE_CRC_SYNCCTRL_MASK 0x60000000 31262306a36Sopenharmony_ci#define MCDE_CRC_SYNCCTRL_NO_SYNC 0 31362306a36Sopenharmony_ci#define MCDE_CRC_SYNCCTRL_DBI0 1 31462306a36Sopenharmony_ci#define MCDE_CRC_SYNCCTRL_DBI1 2 31562306a36Sopenharmony_ci#define MCDE_CRC_SYNCCTRL_PING_PONG 3 31662306a36Sopenharmony_ci#define MCDE_CRC_CLAMPC1EN BIT(31) 31762306a36Sopenharmony_ci 31862306a36Sopenharmony_ci#define MCDE_VSCRC0 0x00000C5C 31962306a36Sopenharmony_ci#define MCDE_VSCRC1 0x00000C60 32062306a36Sopenharmony_ci#define MCDE_VSCRC_VSPMIN_MASK 0x00000FFF 32162306a36Sopenharmony_ci#define MCDE_VSCRC_VSPMAX_SHIFT 12 32262306a36Sopenharmony_ci#define MCDE_VSCRC_VSPMAX_MASK 0x00FFF000 32362306a36Sopenharmony_ci#define MCDE_VSCRC_VSPDIV_SHIFT 24 32462306a36Sopenharmony_ci#define MCDE_VSCRC_VSPDIV_MASK 0x07000000 32562306a36Sopenharmony_ci#define MCDE_VSCRC_VSPDIV_MCDECLK_DIV_1 0 32662306a36Sopenharmony_ci#define MCDE_VSCRC_VSPDIV_MCDECLK_DIV_2 1 32762306a36Sopenharmony_ci#define MCDE_VSCRC_VSPDIV_MCDECLK_DIV_4 2 32862306a36Sopenharmony_ci#define MCDE_VSCRC_VSPDIV_MCDECLK_DIV_8 3 32962306a36Sopenharmony_ci#define MCDE_VSCRC_VSPDIV_MCDECLK_DIV_16 4 33062306a36Sopenharmony_ci#define MCDE_VSCRC_VSPDIV_MCDECLK_DIV_32 5 33162306a36Sopenharmony_ci#define MCDE_VSCRC_VSPDIV_MCDECLK_DIV_64 6 33262306a36Sopenharmony_ci#define MCDE_VSCRC_VSPDIV_MCDECLK_DIV_128 7 33362306a36Sopenharmony_ci#define MCDE_VSCRC_VSPOL BIT(27) /* 0 active high, 1 active low */ 33462306a36Sopenharmony_ci#define MCDE_VSCRC_VSSEL BIT(28) /* 0 VSYNC0, 1 VSYNC1 */ 33562306a36Sopenharmony_ci#define MCDE_VSCRC_VSDBL BIT(29) 33662306a36Sopenharmony_ci 33762306a36Sopenharmony_ci/* Channel config 0..3 */ 33862306a36Sopenharmony_ci#define MCDE_CHNL0CONF 0x00000600 33962306a36Sopenharmony_ci#define MCDE_CHNL1CONF 0x00000620 34062306a36Sopenharmony_ci#define MCDE_CHNL2CONF 0x00000640 34162306a36Sopenharmony_ci#define MCDE_CHNL3CONF 0x00000660 34262306a36Sopenharmony_ci#define MCDE_CHNLXCONF_PPL_SHIFT 0 34362306a36Sopenharmony_ci#define MCDE_CHNLXCONF_PPL_MASK 0x000007FF 34462306a36Sopenharmony_ci#define MCDE_CHNLXCONF_LPF_SHIFT 16 34562306a36Sopenharmony_ci#define MCDE_CHNLXCONF_LPF_MASK 0x07FF0000 34662306a36Sopenharmony_ci#define MCDE_MAX_WIDTH 2048 34762306a36Sopenharmony_ci 34862306a36Sopenharmony_ci/* Channel status 0..3 */ 34962306a36Sopenharmony_ci#define MCDE_CHNL0STAT 0x00000604 35062306a36Sopenharmony_ci#define MCDE_CHNL1STAT 0x00000624 35162306a36Sopenharmony_ci#define MCDE_CHNL2STAT 0x00000644 35262306a36Sopenharmony_ci#define MCDE_CHNL3STAT 0x00000664 35362306a36Sopenharmony_ci#define MCDE_CHNLXSTAT_CHNLRD BIT(0) 35462306a36Sopenharmony_ci#define MCDE_CHNLXSTAT_CHNLA BIT(1) 35562306a36Sopenharmony_ci#define MCDE_CHNLXSTAT_CHNLBLBCKGND_EN BIT(16) 35662306a36Sopenharmony_ci#define MCDE_CHNLXSTAT_PPLX2_V422 BIT(17) 35762306a36Sopenharmony_ci#define MCDE_CHNLXSTAT_LPFX2_V422 BIT(18) 35862306a36Sopenharmony_ci 35962306a36Sopenharmony_ci/* Sync settings for channel 0..3 */ 36062306a36Sopenharmony_ci#define MCDE_CHNL0SYNCHMOD 0x00000608 36162306a36Sopenharmony_ci#define MCDE_CHNL1SYNCHMOD 0x00000628 36262306a36Sopenharmony_ci#define MCDE_CHNL2SYNCHMOD 0x00000648 36362306a36Sopenharmony_ci#define MCDE_CHNL3SYNCHMOD 0x00000668 36462306a36Sopenharmony_ci 36562306a36Sopenharmony_ci#define MCDE_CHNLXSYNCHMOD_SRC_SYNCH_SHIFT 0 36662306a36Sopenharmony_ci#define MCDE_CHNLXSYNCHMOD_SRC_SYNCH_MASK 0x00000003 36762306a36Sopenharmony_ci#define MCDE_CHNLXSYNCHMOD_SRC_SYNCH_HARDWARE 0 36862306a36Sopenharmony_ci#define MCDE_CHNLXSYNCHMOD_SRC_SYNCH_NO_SYNCH 1 36962306a36Sopenharmony_ci#define MCDE_CHNLXSYNCHMOD_SRC_SYNCH_SOFTWARE 2 37062306a36Sopenharmony_ci#define MCDE_CHNLXSYNCHMOD_OUT_SYNCH_SRC_SHIFT 2 37162306a36Sopenharmony_ci#define MCDE_CHNLXSYNCHMOD_OUT_SYNCH_SRC_MASK 0x0000001C 37262306a36Sopenharmony_ci#define MCDE_CHNLXSYNCHMOD_OUT_SYNCH_SRC_FORMATTER 0 37362306a36Sopenharmony_ci#define MCDE_CHNLXSYNCHMOD_OUT_SYNCH_SRC_TE0 1 37462306a36Sopenharmony_ci#define MCDE_CHNLXSYNCHMOD_OUT_SYNCH_SRC_TE1 2 37562306a36Sopenharmony_ci 37662306a36Sopenharmony_ci/* Software sync triggers for channel 0..3 */ 37762306a36Sopenharmony_ci#define MCDE_CHNL0SYNCHSW 0x0000060C 37862306a36Sopenharmony_ci#define MCDE_CHNL1SYNCHSW 0x0000062C 37962306a36Sopenharmony_ci#define MCDE_CHNL2SYNCHSW 0x0000064C 38062306a36Sopenharmony_ci#define MCDE_CHNL3SYNCHSW 0x0000066C 38162306a36Sopenharmony_ci#define MCDE_CHNLXSYNCHSW_SW_TRIG BIT(0) 38262306a36Sopenharmony_ci 38362306a36Sopenharmony_ci#define MCDE_CHNL0BCKGNDCOL 0x00000610 38462306a36Sopenharmony_ci#define MCDE_CHNL1BCKGNDCOL 0x00000630 38562306a36Sopenharmony_ci#define MCDE_CHNL2BCKGNDCOL 0x00000650 38662306a36Sopenharmony_ci#define MCDE_CHNL3BCKGNDCOL 0x00000670 38762306a36Sopenharmony_ci#define MCDE_CHNLXBCKGNDCOL_B_SHIFT 0 38862306a36Sopenharmony_ci#define MCDE_CHNLXBCKGNDCOL_B_MASK 0x000000FF 38962306a36Sopenharmony_ci#define MCDE_CHNLXBCKGNDCOL_G_SHIFT 8 39062306a36Sopenharmony_ci#define MCDE_CHNLXBCKGNDCOL_G_MASK 0x0000FF00 39162306a36Sopenharmony_ci#define MCDE_CHNLXBCKGNDCOL_R_SHIFT 16 39262306a36Sopenharmony_ci#define MCDE_CHNLXBCKGNDCOL_R_MASK 0x00FF0000 39362306a36Sopenharmony_ci 39462306a36Sopenharmony_ci#define MCDE_CHNL0MUXING 0x00000614 39562306a36Sopenharmony_ci#define MCDE_CHNL1MUXING 0x00000634 39662306a36Sopenharmony_ci#define MCDE_CHNL2MUXING 0x00000654 39762306a36Sopenharmony_ci#define MCDE_CHNL3MUXING 0x00000674 39862306a36Sopenharmony_ci#define MCDE_CHNLXMUXING_FIFO_ID_FIFO_A 0 39962306a36Sopenharmony_ci#define MCDE_CHNLXMUXING_FIFO_ID_FIFO_B 1 40062306a36Sopenharmony_ci#define MCDE_CHNLXMUXING_FIFO_ID_FIFO_C0 2 40162306a36Sopenharmony_ci#define MCDE_CHNLXMUXING_FIFO_ID_FIFO_C1 3 40262306a36Sopenharmony_ci 40362306a36Sopenharmony_ci/* Pixel processing control registers for channel A B, */ 40462306a36Sopenharmony_ci#define MCDE_CRA0 0x00000800 40562306a36Sopenharmony_ci#define MCDE_CRB0 0x00000A00 40662306a36Sopenharmony_ci#define MCDE_CRX0_FLOEN BIT(0) 40762306a36Sopenharmony_ci#define MCDE_CRX0_POWEREN BIT(1) 40862306a36Sopenharmony_ci#define MCDE_CRX0_BLENDEN BIT(2) 40962306a36Sopenharmony_ci#define MCDE_CRX0_AFLICKEN BIT(3) 41062306a36Sopenharmony_ci#define MCDE_CRX0_PALEN BIT(4) 41162306a36Sopenharmony_ci#define MCDE_CRX0_DITHEN BIT(5) 41262306a36Sopenharmony_ci#define MCDE_CRX0_GAMEN BIT(6) 41362306a36Sopenharmony_ci#define MCDE_CRX0_KEYCTRL_SHIFT 7 41462306a36Sopenharmony_ci#define MCDE_CRX0_KEYCTRL_MASK 0x00000380 41562306a36Sopenharmony_ci#define MCDE_CRX0_KEYCTRL_OFF 0 41662306a36Sopenharmony_ci#define MCDE_CRX0_KEYCTRL_ALPHA_RGB 1 41762306a36Sopenharmony_ci#define MCDE_CRX0_KEYCTRL_RGB 2 41862306a36Sopenharmony_ci#define MCDE_CRX0_KEYCTRL_FALPHA_FRGB 4 41962306a36Sopenharmony_ci#define MCDE_CRX0_KEYCTRL_FRGB 5 42062306a36Sopenharmony_ci#define MCDE_CRX0_BLENDCTRL BIT(10) 42162306a36Sopenharmony_ci#define MCDE_CRX0_FLICKMODE_SHIFT 11 42262306a36Sopenharmony_ci#define MCDE_CRX0_FLICKMODE_MASK 0x00001800 42362306a36Sopenharmony_ci#define MCDE_CRX0_FLICKMODE_FORCE_FILTER_0 0 42462306a36Sopenharmony_ci#define MCDE_CRX0_FLICKMODE_ADAPTIVE 1 42562306a36Sopenharmony_ci#define MCDE_CRX0_FLICKMODE_TEST_MODE 2 42662306a36Sopenharmony_ci#define MCDE_CRX0_FLOCKFORMAT_RGB BIT(13) /* 0 = YCVCR */ 42762306a36Sopenharmony_ci#define MCDE_CRX0_PALMODE_GAMMA BIT(14) /* 0 = palette */ 42862306a36Sopenharmony_ci#define MCDE_CRX0_OLEDEN BIT(15) 42962306a36Sopenharmony_ci#define MCDE_CRX0_ALPHABLEND_SHIFT 16 43062306a36Sopenharmony_ci#define MCDE_CRX0_ALPHABLEND_MASK 0x00FF0000 43162306a36Sopenharmony_ci#define MCDE_CRX0_ROTEN BIT(24) 43262306a36Sopenharmony_ci 43362306a36Sopenharmony_ci#define MCDE_CRA1 0x00000804 43462306a36Sopenharmony_ci#define MCDE_CRB1 0x00000A04 43562306a36Sopenharmony_ci#define MCDE_CRX1_PCD_SHIFT 0 43662306a36Sopenharmony_ci#define MCDE_CRX1_PCD_MASK 0x000003FF 43762306a36Sopenharmony_ci#define MCDE_CRX1_PCD_BITS 10 43862306a36Sopenharmony_ci#define MCDE_CRX1_CLKSEL_SHIFT 10 43962306a36Sopenharmony_ci#define MCDE_CRX1_CLKSEL_MASK 0x00001C00 44062306a36Sopenharmony_ci#define MCDE_CRX1_CLKSEL_CLKPLL72 0 44162306a36Sopenharmony_ci#define MCDE_CRX1_CLKSEL_CLKPLL27 2 44262306a36Sopenharmony_ci#define MCDE_CRX1_CLKSEL_TV1CLK 3 44362306a36Sopenharmony_ci#define MCDE_CRX1_CLKSEL_TV2CLK 4 44462306a36Sopenharmony_ci#define MCDE_CRX1_CLKSEL_MCDECLK 5 44562306a36Sopenharmony_ci#define MCDE_CRX1_CDWIN_SHIFT 13 44662306a36Sopenharmony_ci#define MCDE_CRX1_CDWIN_MASK 0x0001E000 44762306a36Sopenharmony_ci#define MCDE_CRX1_CDWIN_8BPP_C1 0 44862306a36Sopenharmony_ci#define MCDE_CRX1_CDWIN_12BPP_C1 1 44962306a36Sopenharmony_ci#define MCDE_CRX1_CDWIN_12BPP_C2 2 45062306a36Sopenharmony_ci#define MCDE_CRX1_CDWIN_16BPP_C1 3 45162306a36Sopenharmony_ci#define MCDE_CRX1_CDWIN_16BPP_C2 4 45262306a36Sopenharmony_ci#define MCDE_CRX1_CDWIN_16BPP_C3 5 45362306a36Sopenharmony_ci#define MCDE_CRX1_CDWIN_18BPP_C1 6 45462306a36Sopenharmony_ci#define MCDE_CRX1_CDWIN_18BPP_C2 7 45562306a36Sopenharmony_ci#define MCDE_CRX1_CDWIN_24BPP 8 45662306a36Sopenharmony_ci#define MCDE_CRX1_OUTBPP_SHIFT 25 45762306a36Sopenharmony_ci#define MCDE_CRX1_OUTBPP_MASK 0x1E000000 45862306a36Sopenharmony_ci#define MCDE_CRX1_OUTBPP_MONO1 0 45962306a36Sopenharmony_ci#define MCDE_CRX1_OUTBPP_MONO2 1 46062306a36Sopenharmony_ci#define MCDE_CRX1_OUTBPP_MONO4 2 46162306a36Sopenharmony_ci#define MCDE_CRX1_OUTBPP_MONO8 3 46262306a36Sopenharmony_ci#define MCDE_CRX1_OUTBPP_8BPP 4 46362306a36Sopenharmony_ci#define MCDE_CRX1_OUTBPP_12BPP 5 46462306a36Sopenharmony_ci#define MCDE_CRX1_OUTBPP_15BPP 6 46562306a36Sopenharmony_ci#define MCDE_CRX1_OUTBPP_16BPP 7 46662306a36Sopenharmony_ci#define MCDE_CRX1_OUTBPP_18BPP 8 46762306a36Sopenharmony_ci#define MCDE_CRX1_OUTBPP_24BPP 9 46862306a36Sopenharmony_ci#define MCDE_CRX1_BCD BIT(29) 46962306a36Sopenharmony_ci#define MCDE_CRA1_CLKTYPE_TVXCLKSEL1 BIT(30) /* 0 = TVXCLKSEL1 */ 47062306a36Sopenharmony_ci 47162306a36Sopenharmony_ci#define MCDE_COLKEYA 0x00000808 47262306a36Sopenharmony_ci#define MCDE_COLKEYB 0x00000A08 47362306a36Sopenharmony_ci 47462306a36Sopenharmony_ci#define MCDE_FCOLKEYA 0x0000080C 47562306a36Sopenharmony_ci#define MCDE_FCOLKEYB 0x00000A0C 47662306a36Sopenharmony_ci 47762306a36Sopenharmony_ci#define MCDE_RGBCONV1A 0x00000810 47862306a36Sopenharmony_ci#define MCDE_RGBCONV1B 0x00000A10 47962306a36Sopenharmony_ci 48062306a36Sopenharmony_ci#define MCDE_RGBCONV2A 0x00000814 48162306a36Sopenharmony_ci#define MCDE_RGBCONV2B 0x00000A14 48262306a36Sopenharmony_ci 48362306a36Sopenharmony_ci#define MCDE_RGBCONV3A 0x00000818 48462306a36Sopenharmony_ci#define MCDE_RGBCONV3B 0x00000A18 48562306a36Sopenharmony_ci 48662306a36Sopenharmony_ci#define MCDE_RGBCONV4A 0x0000081C 48762306a36Sopenharmony_ci#define MCDE_RGBCONV4B 0x00000A1C 48862306a36Sopenharmony_ci 48962306a36Sopenharmony_ci#define MCDE_RGBCONV5A 0x00000820 49062306a36Sopenharmony_ci#define MCDE_RGBCONV5B 0x00000A20 49162306a36Sopenharmony_ci 49262306a36Sopenharmony_ci#define MCDE_RGBCONV6A 0x00000824 49362306a36Sopenharmony_ci#define MCDE_RGBCONV6B 0x00000A24 49462306a36Sopenharmony_ci 49562306a36Sopenharmony_ci/* Rotation */ 49662306a36Sopenharmony_ci#define MCDE_ROTACONF 0x0000087C 49762306a36Sopenharmony_ci#define MCDE_ROTBCONF 0x00000A7C 49862306a36Sopenharmony_ci 49962306a36Sopenharmony_ci/* Synchronization event configuration */ 50062306a36Sopenharmony_ci#define MCDE_SYNCHCONFA 0x00000880 50162306a36Sopenharmony_ci#define MCDE_SYNCHCONFB 0x00000A80 50262306a36Sopenharmony_ci#define MCDE_SYNCHCONF_HWREQVEVENT_SHIFT 0 50362306a36Sopenharmony_ci#define MCDE_SYNCHCONF_HWREQVEVENT_VSYNC (0 << 0) 50462306a36Sopenharmony_ci#define MCDE_SYNCHCONF_HWREQVEVENT_BACK_PORCH (1 << 0) 50562306a36Sopenharmony_ci#define MCDE_SYNCHCONF_HWREQVEVENT_ACTIVE_VIDEO (2 << 0) 50662306a36Sopenharmony_ci#define MCDE_SYNCHCONF_HWREQVEVENT_FRONT_PORCH (3 << 0) 50762306a36Sopenharmony_ci#define MCDE_SYNCHCONF_HWREQVCNT_SHIFT 2 /* 14 bits */ 50862306a36Sopenharmony_ci#define MCDE_SYNCHCONF_SWINTVEVENT_VSYNC (0 << 16) 50962306a36Sopenharmony_ci#define MCDE_SYNCHCONF_SWINTVEVENT_BACK_PORCH (1 << 16) 51062306a36Sopenharmony_ci#define MCDE_SYNCHCONF_SWINTVEVENT_ACTIVE_VIDEO (2 << 16) 51162306a36Sopenharmony_ci#define MCDE_SYNCHCONF_SWINTVEVENT_FRONT_PORCH (3 << 16) 51262306a36Sopenharmony_ci#define MCDE_SYNCHCONF_SWINTVCNT_SHIFT 18 /* 14 bits */ 51362306a36Sopenharmony_ci 51462306a36Sopenharmony_ci/* Channel A+B control registers */ 51562306a36Sopenharmony_ci#define MCDE_CTRLA 0x00000884 51662306a36Sopenharmony_ci#define MCDE_CTRLB 0x00000A84 51762306a36Sopenharmony_ci#define MCDE_CTRLX_FIFOWTRMRK_SHIFT 0 51862306a36Sopenharmony_ci#define MCDE_CTRLX_FIFOWTRMRK_MASK 0x000003FF 51962306a36Sopenharmony_ci#define MCDE_CTRLX_FIFOEMPTY BIT(12) 52062306a36Sopenharmony_ci#define MCDE_CTRLX_FIFOFULL BIT(13) 52162306a36Sopenharmony_ci#define MCDE_CTRLX_FORMID_SHIFT 16 52262306a36Sopenharmony_ci#define MCDE_CTRLX_FORMID_MASK 0x00070000 52362306a36Sopenharmony_ci#define MCDE_CTRLX_FORMID_DSI0VID 0 52462306a36Sopenharmony_ci#define MCDE_CTRLX_FORMID_DSI0CMD 1 52562306a36Sopenharmony_ci#define MCDE_CTRLX_FORMID_DSI1VID 2 52662306a36Sopenharmony_ci#define MCDE_CTRLX_FORMID_DSI1CMD 3 52762306a36Sopenharmony_ci#define MCDE_CTRLX_FORMID_DSI2VID 4 52862306a36Sopenharmony_ci#define MCDE_CTRLX_FORMID_DSI2CMD 5 52962306a36Sopenharmony_ci#define MCDE_CTRLX_FORMID_DPIA 0 53062306a36Sopenharmony_ci#define MCDE_CTRLX_FORMID_DPIB 1 53162306a36Sopenharmony_ci#define MCDE_CTRLX_FORMTYPE_SHIFT 20 53262306a36Sopenharmony_ci#define MCDE_CTRLX_FORMTYPE_MASK 0x00700000 53362306a36Sopenharmony_ci#define MCDE_CTRLX_FORMTYPE_DPITV 0 53462306a36Sopenharmony_ci#define MCDE_CTRLX_FORMTYPE_DBI 1 53562306a36Sopenharmony_ci#define MCDE_CTRLX_FORMTYPE_DSI 2 53662306a36Sopenharmony_ci 53762306a36Sopenharmony_ci#define MCDE_DSIVID0CONF0 0x00000E00 53862306a36Sopenharmony_ci#define MCDE_DSICMD0CONF0 0x00000E20 53962306a36Sopenharmony_ci#define MCDE_DSIVID1CONF0 0x00000E40 54062306a36Sopenharmony_ci#define MCDE_DSICMD1CONF0 0x00000E60 54162306a36Sopenharmony_ci#define MCDE_DSIVID2CONF0 0x00000E80 54262306a36Sopenharmony_ci#define MCDE_DSICMD2CONF0 0x00000EA0 54362306a36Sopenharmony_ci#define MCDE_DSICONF0_BLANKING_SHIFT 0 54462306a36Sopenharmony_ci#define MCDE_DSICONF0_BLANKING_MASK 0x000000FF 54562306a36Sopenharmony_ci#define MCDE_DSICONF0_VID_MODE_CMD 0 54662306a36Sopenharmony_ci#define MCDE_DSICONF0_VID_MODE_VID BIT(12) 54762306a36Sopenharmony_ci#define MCDE_DSICONF0_CMD8 BIT(13) 54862306a36Sopenharmony_ci#define MCDE_DSICONF0_BIT_SWAP BIT(16) 54962306a36Sopenharmony_ci#define MCDE_DSICONF0_BYTE_SWAP BIT(17) 55062306a36Sopenharmony_ci#define MCDE_DSICONF0_DCSVID_NOTGEN BIT(18) 55162306a36Sopenharmony_ci#define MCDE_DSICONF0_PACKING_SHIFT 20 55262306a36Sopenharmony_ci#define MCDE_DSICONF0_PACKING_MASK 0x00700000 55362306a36Sopenharmony_ci#define MCDE_DSICONF0_PACKING_RGB565 0 55462306a36Sopenharmony_ci#define MCDE_DSICONF0_PACKING_RGB666 1 55562306a36Sopenharmony_ci#define MCDE_DSICONF0_PACKING_RGB888 2 55662306a36Sopenharmony_ci#define MCDE_DSICONF0_PACKING_BGR888 3 55762306a36Sopenharmony_ci#define MCDE_DSICONF0_PACKING_HDTV 4 55862306a36Sopenharmony_ci 55962306a36Sopenharmony_ci#define MCDE_DSIVID0FRAME 0x00000E04 56062306a36Sopenharmony_ci#define MCDE_DSICMD0FRAME 0x00000E24 56162306a36Sopenharmony_ci#define MCDE_DSIVID1FRAME 0x00000E44 56262306a36Sopenharmony_ci#define MCDE_DSICMD1FRAME 0x00000E64 56362306a36Sopenharmony_ci#define MCDE_DSIVID2FRAME 0x00000E84 56462306a36Sopenharmony_ci#define MCDE_DSICMD2FRAME 0x00000EA4 56562306a36Sopenharmony_ci 56662306a36Sopenharmony_ci#define MCDE_DSIVID0PKT 0x00000E08 56762306a36Sopenharmony_ci#define MCDE_DSICMD0PKT 0x00000E28 56862306a36Sopenharmony_ci#define MCDE_DSIVID1PKT 0x00000E48 56962306a36Sopenharmony_ci#define MCDE_DSICMD1PKT 0x00000E68 57062306a36Sopenharmony_ci#define MCDE_DSIVID2PKT 0x00000E88 57162306a36Sopenharmony_ci#define MCDE_DSICMD2PKT 0x00000EA8 57262306a36Sopenharmony_ci 57362306a36Sopenharmony_ci#define MCDE_DSIVID0SYNC 0x00000E0C 57462306a36Sopenharmony_ci#define MCDE_DSICMD0SYNC 0x00000E2C 57562306a36Sopenharmony_ci#define MCDE_DSIVID1SYNC 0x00000E4C 57662306a36Sopenharmony_ci#define MCDE_DSICMD1SYNC 0x00000E6C 57762306a36Sopenharmony_ci#define MCDE_DSIVID2SYNC 0x00000E8C 57862306a36Sopenharmony_ci#define MCDE_DSICMD2SYNC 0x00000EAC 57962306a36Sopenharmony_ci 58062306a36Sopenharmony_ci#define MCDE_DSIVID0CMDW 0x00000E10 58162306a36Sopenharmony_ci#define MCDE_DSICMD0CMDW 0x00000E30 58262306a36Sopenharmony_ci#define MCDE_DSIVID1CMDW 0x00000E50 58362306a36Sopenharmony_ci#define MCDE_DSICMD1CMDW 0x00000E70 58462306a36Sopenharmony_ci#define MCDE_DSIVID2CMDW 0x00000E90 58562306a36Sopenharmony_ci#define MCDE_DSICMD2CMDW 0x00000EB0 58662306a36Sopenharmony_ci#define MCDE_DSIVIDXCMDW_CMDW_CONTINUE_SHIFT 0 58762306a36Sopenharmony_ci#define MCDE_DSIVIDXCMDW_CMDW_CONTINUE_MASK 0x0000FFFF 58862306a36Sopenharmony_ci#define MCDE_DSIVIDXCMDW_CMDW_START_SHIFT 16 58962306a36Sopenharmony_ci#define MCDE_DSIVIDXCMDW_CMDW_START_MASK 0xFFFF0000 59062306a36Sopenharmony_ci 59162306a36Sopenharmony_ci#define MCDE_DSIVID0DELAY0 0x00000E14 59262306a36Sopenharmony_ci#define MCDE_DSICMD0DELAY0 0x00000E34 59362306a36Sopenharmony_ci#define MCDE_DSIVID1DELAY0 0x00000E54 59462306a36Sopenharmony_ci#define MCDE_DSICMD1DELAY0 0x00000E74 59562306a36Sopenharmony_ci#define MCDE_DSIVID2DELAY0 0x00000E94 59662306a36Sopenharmony_ci#define MCDE_DSICMD2DELAY0 0x00000EB4 59762306a36Sopenharmony_ci 59862306a36Sopenharmony_ci#define MCDE_DSIVID0DELAY1 0x00000E18 59962306a36Sopenharmony_ci#define MCDE_DSICMD0DELAY1 0x00000E38 60062306a36Sopenharmony_ci#define MCDE_DSIVID1DELAY1 0x00000E58 60162306a36Sopenharmony_ci#define MCDE_DSICMD1DELAY1 0x00000E78 60262306a36Sopenharmony_ci#define MCDE_DSIVID2DELAY1 0x00000E98 60362306a36Sopenharmony_ci#define MCDE_DSICMD2DELAY1 0x00000EB8 60462306a36Sopenharmony_ci 60562306a36Sopenharmony_ci#endif /* __DRM_MCDE_DISPLAY_REGS */ 606