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