162306a36Sopenharmony_ci#ifndef DSI_XML
262306a36Sopenharmony_ci#define DSI_XML
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci/* Autogenerated file, DO NOT EDIT manually!
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciThis file was generated by the rules-ng-ng headergen tool in this git repository:
762306a36Sopenharmony_cihttp://github.com/freedreno/envytools/
862306a36Sopenharmony_cigit clone https://github.com/freedreno/envytools.git
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciThe rules-ng-ng source files this header was generated from are:
1162306a36Sopenharmony_ci- /home/robclark/src/mesa/mesa/src/freedreno/registers/msm.xml                   (    944 bytes, from 2022-07-23 20:21:46)
1262306a36Sopenharmony_ci- /home/robclark/src/mesa/mesa/src/freedreno/registers/freedreno_copyright.xml   (   1572 bytes, from 2022-07-23 20:21:46)
1362306a36Sopenharmony_ci- /home/robclark/src/mesa/mesa/src/freedreno/registers/mdp/mdp4.xml              (  20912 bytes, from 2022-03-08 17:40:42)
1462306a36Sopenharmony_ci- /home/robclark/src/mesa/mesa/src/freedreno/registers/mdp/mdp_common.xml        (   2849 bytes, from 2022-03-08 17:40:42)
1562306a36Sopenharmony_ci- /home/robclark/src/mesa/mesa/src/freedreno/registers/mdp/mdp5.xml              (  37461 bytes, from 2022-03-08 17:40:42)
1662306a36Sopenharmony_ci- /home/robclark/src/mesa/mesa/src/freedreno/registers/dsi/dsi.xml               (  18746 bytes, from 2022-04-28 17:29:36)
1762306a36Sopenharmony_ci- /home/robclark/src/mesa/mesa/src/freedreno/registers/dsi/dsi_phy_v2.xml        (   3236 bytes, from 2022-03-08 17:40:42)
1862306a36Sopenharmony_ci- /home/robclark/src/mesa/mesa/src/freedreno/registers/dsi/dsi_phy_28nm_8960.xml (   4935 bytes, from 2022-03-08 17:40:42)
1962306a36Sopenharmony_ci- /home/robclark/src/mesa/mesa/src/freedreno/registers/dsi/dsi_phy_28nm.xml      (   7004 bytes, from 2022-03-08 17:40:42)
2062306a36Sopenharmony_ci- /home/robclark/src/mesa/mesa/src/freedreno/registers/dsi/dsi_phy_20nm.xml      (   3712 bytes, from 2022-03-08 17:40:42)
2162306a36Sopenharmony_ci- /home/robclark/src/mesa/mesa/src/freedreno/registers/dsi/dsi_phy_14nm.xml      (   5381 bytes, from 2022-03-08 17:40:42)
2262306a36Sopenharmony_ci- /home/robclark/src/mesa/mesa/src/freedreno/registers/dsi/dsi_phy_10nm.xml      (   4499 bytes, from 2022-03-08 17:40:42)
2362306a36Sopenharmony_ci- /home/robclark/src/mesa/mesa/src/freedreno/registers/dsi/dsi_phy_7nm.xml       (  11007 bytes, from 2022-03-08 17:40:42)
2462306a36Sopenharmony_ci- /home/robclark/src/mesa/mesa/src/freedreno/registers/dsi/sfpb.xml              (    602 bytes, from 2022-03-08 17:40:42)
2562306a36Sopenharmony_ci- /home/robclark/src/mesa/mesa/src/freedreno/registers/dsi/mmss_cc.xml           (   1686 bytes, from 2022-03-08 17:40:42)
2662306a36Sopenharmony_ci- /home/robclark/src/mesa/mesa/src/freedreno/registers/hdmi/qfprom.xml           (    600 bytes, from 2022-03-08 17:40:42)
2762306a36Sopenharmony_ci- /home/robclark/src/mesa/mesa/src/freedreno/registers/hdmi/hdmi.xml             (  42350 bytes, from 2022-09-20 17:45:56)
2862306a36Sopenharmony_ci- /home/robclark/src/mesa/mesa/src/freedreno/registers/edp/edp.xml               (  10416 bytes, from 2022-03-08 17:40:42)
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ciCopyright (C) 2013-2022 by the following authors:
3162306a36Sopenharmony_ci- Rob Clark <robdclark@gmail.com> (robclark)
3262306a36Sopenharmony_ci- Ilia Mirkin <imirkin@alum.mit.edu> (imirkin)
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ciPermission is hereby granted, free of charge, to any person obtaining
3562306a36Sopenharmony_cia copy of this software and associated documentation files (the
3662306a36Sopenharmony_ci"Software"), to deal in the Software without restriction, including
3762306a36Sopenharmony_ciwithout limitation the rights to use, copy, modify, merge, publish,
3862306a36Sopenharmony_cidistribute, sublicense, and/or sell copies of the Software, and to
3962306a36Sopenharmony_cipermit persons to whom the Software is furnished to do so, subject to
4062306a36Sopenharmony_cithe following conditions:
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ciThe above copyright notice and this permission notice (including the
4362306a36Sopenharmony_cinext paragraph) shall be included in all copies or substantial
4462306a36Sopenharmony_ciportions of the Software.
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ciTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
4762306a36Sopenharmony_ciEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
4862306a36Sopenharmony_ciMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
4962306a36Sopenharmony_ciIN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
5062306a36Sopenharmony_ciLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
5162306a36Sopenharmony_ciOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
5262306a36Sopenharmony_ciWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
5362306a36Sopenharmony_ci*/
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_cienum dsi_traffic_mode {
5762306a36Sopenharmony_ci	NON_BURST_SYNCH_PULSE = 0,
5862306a36Sopenharmony_ci	NON_BURST_SYNCH_EVENT = 1,
5962306a36Sopenharmony_ci	BURST_MODE = 2,
6062306a36Sopenharmony_ci};
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_cienum dsi_vid_dst_format {
6362306a36Sopenharmony_ci	VID_DST_FORMAT_RGB565 = 0,
6462306a36Sopenharmony_ci	VID_DST_FORMAT_RGB666 = 1,
6562306a36Sopenharmony_ci	VID_DST_FORMAT_RGB666_LOOSE = 2,
6662306a36Sopenharmony_ci	VID_DST_FORMAT_RGB888 = 3,
6762306a36Sopenharmony_ci};
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_cienum dsi_rgb_swap {
7062306a36Sopenharmony_ci	SWAP_RGB = 0,
7162306a36Sopenharmony_ci	SWAP_RBG = 1,
7262306a36Sopenharmony_ci	SWAP_BGR = 2,
7362306a36Sopenharmony_ci	SWAP_BRG = 3,
7462306a36Sopenharmony_ci	SWAP_GRB = 4,
7562306a36Sopenharmony_ci	SWAP_GBR = 5,
7662306a36Sopenharmony_ci};
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_cienum dsi_cmd_trigger {
7962306a36Sopenharmony_ci	TRIGGER_NONE = 0,
8062306a36Sopenharmony_ci	TRIGGER_SEOF = 1,
8162306a36Sopenharmony_ci	TRIGGER_TE = 2,
8262306a36Sopenharmony_ci	TRIGGER_SW = 4,
8362306a36Sopenharmony_ci	TRIGGER_SW_SEOF = 5,
8462306a36Sopenharmony_ci	TRIGGER_SW_TE = 6,
8562306a36Sopenharmony_ci};
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_cienum dsi_cmd_dst_format {
8862306a36Sopenharmony_ci	CMD_DST_FORMAT_RGB111 = 0,
8962306a36Sopenharmony_ci	CMD_DST_FORMAT_RGB332 = 3,
9062306a36Sopenharmony_ci	CMD_DST_FORMAT_RGB444 = 4,
9162306a36Sopenharmony_ci	CMD_DST_FORMAT_RGB565 = 6,
9262306a36Sopenharmony_ci	CMD_DST_FORMAT_RGB666 = 7,
9362306a36Sopenharmony_ci	CMD_DST_FORMAT_RGB888 = 8,
9462306a36Sopenharmony_ci};
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_cienum dsi_lane_swap {
9762306a36Sopenharmony_ci	LANE_SWAP_0123 = 0,
9862306a36Sopenharmony_ci	LANE_SWAP_3012 = 1,
9962306a36Sopenharmony_ci	LANE_SWAP_2301 = 2,
10062306a36Sopenharmony_ci	LANE_SWAP_1230 = 3,
10162306a36Sopenharmony_ci	LANE_SWAP_0321 = 4,
10262306a36Sopenharmony_ci	LANE_SWAP_1032 = 5,
10362306a36Sopenharmony_ci	LANE_SWAP_2103 = 6,
10462306a36Sopenharmony_ci	LANE_SWAP_3210 = 7,
10562306a36Sopenharmony_ci};
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_cienum video_config_bpp {
10862306a36Sopenharmony_ci	VIDEO_CONFIG_18BPP = 0,
10962306a36Sopenharmony_ci	VIDEO_CONFIG_24BPP = 1,
11062306a36Sopenharmony_ci};
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_cienum video_pattern_sel {
11362306a36Sopenharmony_ci	VID_PRBS = 0,
11462306a36Sopenharmony_ci	VID_INCREMENTAL = 1,
11562306a36Sopenharmony_ci	VID_FIXED = 2,
11662306a36Sopenharmony_ci	VID_MDSS_GENERAL_PATTERN = 3,
11762306a36Sopenharmony_ci};
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_cienum cmd_mdp_stream0_pattern_sel {
12062306a36Sopenharmony_ci	CMD_MDP_PRBS = 0,
12162306a36Sopenharmony_ci	CMD_MDP_INCREMENTAL = 1,
12262306a36Sopenharmony_ci	CMD_MDP_FIXED = 2,
12362306a36Sopenharmony_ci	CMD_MDP_MDSS_GENERAL_PATTERN = 3,
12462306a36Sopenharmony_ci};
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_cienum cmd_dma_pattern_sel {
12762306a36Sopenharmony_ci	CMD_DMA_PRBS = 0,
12862306a36Sopenharmony_ci	CMD_DMA_INCREMENTAL = 1,
12962306a36Sopenharmony_ci	CMD_DMA_FIXED = 2,
13062306a36Sopenharmony_ci	CMD_DMA_CUSTOM_PATTERN_DMA_FIFO = 3,
13162306a36Sopenharmony_ci};
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci#define DSI_IRQ_CMD_DMA_DONE					0x00000001
13462306a36Sopenharmony_ci#define DSI_IRQ_MASK_CMD_DMA_DONE				0x00000002
13562306a36Sopenharmony_ci#define DSI_IRQ_CMD_MDP_DONE					0x00000100
13662306a36Sopenharmony_ci#define DSI_IRQ_MASK_CMD_MDP_DONE				0x00000200
13762306a36Sopenharmony_ci#define DSI_IRQ_VIDEO_DONE					0x00010000
13862306a36Sopenharmony_ci#define DSI_IRQ_MASK_VIDEO_DONE					0x00020000
13962306a36Sopenharmony_ci#define DSI_IRQ_BTA_DONE					0x00100000
14062306a36Sopenharmony_ci#define DSI_IRQ_MASK_BTA_DONE					0x00200000
14162306a36Sopenharmony_ci#define DSI_IRQ_ERROR						0x01000000
14262306a36Sopenharmony_ci#define DSI_IRQ_MASK_ERROR					0x02000000
14362306a36Sopenharmony_ci#define REG_DSI_6G_HW_VERSION					0x00000000
14462306a36Sopenharmony_ci#define DSI_6G_HW_VERSION_MAJOR__MASK				0xf0000000
14562306a36Sopenharmony_ci#define DSI_6G_HW_VERSION_MAJOR__SHIFT				28
14662306a36Sopenharmony_cistatic inline uint32_t DSI_6G_HW_VERSION_MAJOR(uint32_t val)
14762306a36Sopenharmony_ci{
14862306a36Sopenharmony_ci	return ((val) << DSI_6G_HW_VERSION_MAJOR__SHIFT) & DSI_6G_HW_VERSION_MAJOR__MASK;
14962306a36Sopenharmony_ci}
15062306a36Sopenharmony_ci#define DSI_6G_HW_VERSION_MINOR__MASK				0x0fff0000
15162306a36Sopenharmony_ci#define DSI_6G_HW_VERSION_MINOR__SHIFT				16
15262306a36Sopenharmony_cistatic inline uint32_t DSI_6G_HW_VERSION_MINOR(uint32_t val)
15362306a36Sopenharmony_ci{
15462306a36Sopenharmony_ci	return ((val) << DSI_6G_HW_VERSION_MINOR__SHIFT) & DSI_6G_HW_VERSION_MINOR__MASK;
15562306a36Sopenharmony_ci}
15662306a36Sopenharmony_ci#define DSI_6G_HW_VERSION_STEP__MASK				0x0000ffff
15762306a36Sopenharmony_ci#define DSI_6G_HW_VERSION_STEP__SHIFT				0
15862306a36Sopenharmony_cistatic inline uint32_t DSI_6G_HW_VERSION_STEP(uint32_t val)
15962306a36Sopenharmony_ci{
16062306a36Sopenharmony_ci	return ((val) << DSI_6G_HW_VERSION_STEP__SHIFT) & DSI_6G_HW_VERSION_STEP__MASK;
16162306a36Sopenharmony_ci}
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_ci#define REG_DSI_CTRL						0x00000000
16462306a36Sopenharmony_ci#define DSI_CTRL_ENABLE						0x00000001
16562306a36Sopenharmony_ci#define DSI_CTRL_VID_MODE_EN					0x00000002
16662306a36Sopenharmony_ci#define DSI_CTRL_CMD_MODE_EN					0x00000004
16762306a36Sopenharmony_ci#define DSI_CTRL_LANE0						0x00000010
16862306a36Sopenharmony_ci#define DSI_CTRL_LANE1						0x00000020
16962306a36Sopenharmony_ci#define DSI_CTRL_LANE2						0x00000040
17062306a36Sopenharmony_ci#define DSI_CTRL_LANE3						0x00000080
17162306a36Sopenharmony_ci#define DSI_CTRL_CLK_EN						0x00000100
17262306a36Sopenharmony_ci#define DSI_CTRL_ECC_CHECK					0x00100000
17362306a36Sopenharmony_ci#define DSI_CTRL_CRC_CHECK					0x01000000
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ci#define REG_DSI_STATUS0						0x00000004
17662306a36Sopenharmony_ci#define DSI_STATUS0_CMD_MODE_ENGINE_BUSY			0x00000001
17762306a36Sopenharmony_ci#define DSI_STATUS0_CMD_MODE_DMA_BUSY				0x00000002
17862306a36Sopenharmony_ci#define DSI_STATUS0_CMD_MODE_MDP_BUSY				0x00000004
17962306a36Sopenharmony_ci#define DSI_STATUS0_VIDEO_MODE_ENGINE_BUSY			0x00000008
18062306a36Sopenharmony_ci#define DSI_STATUS0_DSI_BUSY					0x00000010
18162306a36Sopenharmony_ci#define DSI_STATUS0_INTERLEAVE_OP_CONTENTION			0x80000000
18262306a36Sopenharmony_ci
18362306a36Sopenharmony_ci#define REG_DSI_FIFO_STATUS					0x00000008
18462306a36Sopenharmony_ci#define DSI_FIFO_STATUS_VIDEO_MDP_FIFO_OVERFLOW			0x00000001
18562306a36Sopenharmony_ci#define DSI_FIFO_STATUS_VIDEO_MDP_FIFO_UNDERFLOW		0x00000008
18662306a36Sopenharmony_ci#define DSI_FIFO_STATUS_CMD_MDP_FIFO_UNDERFLOW			0x00000080
18762306a36Sopenharmony_ci#define DSI_FIFO_STATUS_CMD_DMA_FIFO_RD_WATERMARK_REACH		0x00000100
18862306a36Sopenharmony_ci#define DSI_FIFO_STATUS_CMD_DMA_FIFO_WR_WATERMARK_REACH		0x00000200
18962306a36Sopenharmony_ci#define DSI_FIFO_STATUS_CMD_DMA_FIFO_UNDERFLOW			0x00000400
19062306a36Sopenharmony_ci#define DSI_FIFO_STATUS_DLN0_LP_FIFO_EMPTY			0x00001000
19162306a36Sopenharmony_ci#define DSI_FIFO_STATUS_DLN0_LP_FIFO_FULL			0x00002000
19262306a36Sopenharmony_ci#define DSI_FIFO_STATUS_DLN0_LP_FIFO_OVERFLOW			0x00004000
19362306a36Sopenharmony_ci#define DSI_FIFO_STATUS_DLN0_HS_FIFO_EMPTY			0x00010000
19462306a36Sopenharmony_ci#define DSI_FIFO_STATUS_DLN0_HS_FIFO_FULL			0x00020000
19562306a36Sopenharmony_ci#define DSI_FIFO_STATUS_DLN0_HS_FIFO_OVERFLOW			0x00040000
19662306a36Sopenharmony_ci#define DSI_FIFO_STATUS_DLN0_HS_FIFO_UNDERFLOW			0x00080000
19762306a36Sopenharmony_ci#define DSI_FIFO_STATUS_DLN1_HS_FIFO_EMPTY			0x00100000
19862306a36Sopenharmony_ci#define DSI_FIFO_STATUS_DLN1_HS_FIFO_FULL			0x00200000
19962306a36Sopenharmony_ci#define DSI_FIFO_STATUS_DLN1_HS_FIFO_OVERFLOW			0x00400000
20062306a36Sopenharmony_ci#define DSI_FIFO_STATUS_DLN1_HS_FIFO_UNDERFLOW			0x00800000
20162306a36Sopenharmony_ci#define DSI_FIFO_STATUS_DLN2_HS_FIFO_EMPTY			0x01000000
20262306a36Sopenharmony_ci#define DSI_FIFO_STATUS_DLN2_HS_FIFO_FULL			0x02000000
20362306a36Sopenharmony_ci#define DSI_FIFO_STATUS_DLN2_HS_FIFO_OVERFLOW			0x04000000
20462306a36Sopenharmony_ci#define DSI_FIFO_STATUS_DLN2_HS_FIFO_UNDERFLOW			0x08000000
20562306a36Sopenharmony_ci#define DSI_FIFO_STATUS_DLN3_HS_FIFO_EMPTY			0x10000000
20662306a36Sopenharmony_ci#define DSI_FIFO_STATUS_DLN3_HS_FIFO_FULL			0x20000000
20762306a36Sopenharmony_ci#define DSI_FIFO_STATUS_DLN3_HS_FIFO_OVERFLOW			0x40000000
20862306a36Sopenharmony_ci#define DSI_FIFO_STATUS_DLN3_HS_FIFO_UNDERFLOW			0x80000000
20962306a36Sopenharmony_ci
21062306a36Sopenharmony_ci#define REG_DSI_VID_CFG0					0x0000000c
21162306a36Sopenharmony_ci#define DSI_VID_CFG0_VIRT_CHANNEL__MASK				0x00000003
21262306a36Sopenharmony_ci#define DSI_VID_CFG0_VIRT_CHANNEL__SHIFT			0
21362306a36Sopenharmony_cistatic inline uint32_t DSI_VID_CFG0_VIRT_CHANNEL(uint32_t val)
21462306a36Sopenharmony_ci{
21562306a36Sopenharmony_ci	return ((val) << DSI_VID_CFG0_VIRT_CHANNEL__SHIFT) & DSI_VID_CFG0_VIRT_CHANNEL__MASK;
21662306a36Sopenharmony_ci}
21762306a36Sopenharmony_ci#define DSI_VID_CFG0_DST_FORMAT__MASK				0x00000030
21862306a36Sopenharmony_ci#define DSI_VID_CFG0_DST_FORMAT__SHIFT				4
21962306a36Sopenharmony_cistatic inline uint32_t DSI_VID_CFG0_DST_FORMAT(enum dsi_vid_dst_format val)
22062306a36Sopenharmony_ci{
22162306a36Sopenharmony_ci	return ((val) << DSI_VID_CFG0_DST_FORMAT__SHIFT) & DSI_VID_CFG0_DST_FORMAT__MASK;
22262306a36Sopenharmony_ci}
22362306a36Sopenharmony_ci#define DSI_VID_CFG0_TRAFFIC_MODE__MASK				0x00000300
22462306a36Sopenharmony_ci#define DSI_VID_CFG0_TRAFFIC_MODE__SHIFT			8
22562306a36Sopenharmony_cistatic inline uint32_t DSI_VID_CFG0_TRAFFIC_MODE(enum dsi_traffic_mode val)
22662306a36Sopenharmony_ci{
22762306a36Sopenharmony_ci	return ((val) << DSI_VID_CFG0_TRAFFIC_MODE__SHIFT) & DSI_VID_CFG0_TRAFFIC_MODE__MASK;
22862306a36Sopenharmony_ci}
22962306a36Sopenharmony_ci#define DSI_VID_CFG0_BLLP_POWER_STOP				0x00001000
23062306a36Sopenharmony_ci#define DSI_VID_CFG0_EOF_BLLP_POWER_STOP			0x00008000
23162306a36Sopenharmony_ci#define DSI_VID_CFG0_HSA_POWER_STOP				0x00010000
23262306a36Sopenharmony_ci#define DSI_VID_CFG0_HBP_POWER_STOP				0x00100000
23362306a36Sopenharmony_ci#define DSI_VID_CFG0_HFP_POWER_STOP				0x01000000
23462306a36Sopenharmony_ci#define DSI_VID_CFG0_PULSE_MODE_HSA_HE				0x10000000
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_ci#define REG_DSI_VID_CFG1					0x0000001c
23762306a36Sopenharmony_ci#define DSI_VID_CFG1_R_SEL					0x00000001
23862306a36Sopenharmony_ci#define DSI_VID_CFG1_G_SEL					0x00000010
23962306a36Sopenharmony_ci#define DSI_VID_CFG1_B_SEL					0x00000100
24062306a36Sopenharmony_ci#define DSI_VID_CFG1_RGB_SWAP__MASK				0x00007000
24162306a36Sopenharmony_ci#define DSI_VID_CFG1_RGB_SWAP__SHIFT				12
24262306a36Sopenharmony_cistatic inline uint32_t DSI_VID_CFG1_RGB_SWAP(enum dsi_rgb_swap val)
24362306a36Sopenharmony_ci{
24462306a36Sopenharmony_ci	return ((val) << DSI_VID_CFG1_RGB_SWAP__SHIFT) & DSI_VID_CFG1_RGB_SWAP__MASK;
24562306a36Sopenharmony_ci}
24662306a36Sopenharmony_ci
24762306a36Sopenharmony_ci#define REG_DSI_ACTIVE_H					0x00000020
24862306a36Sopenharmony_ci#define DSI_ACTIVE_H_START__MASK				0x00000fff
24962306a36Sopenharmony_ci#define DSI_ACTIVE_H_START__SHIFT				0
25062306a36Sopenharmony_cistatic inline uint32_t DSI_ACTIVE_H_START(uint32_t val)
25162306a36Sopenharmony_ci{
25262306a36Sopenharmony_ci	return ((val) << DSI_ACTIVE_H_START__SHIFT) & DSI_ACTIVE_H_START__MASK;
25362306a36Sopenharmony_ci}
25462306a36Sopenharmony_ci#define DSI_ACTIVE_H_END__MASK					0x0fff0000
25562306a36Sopenharmony_ci#define DSI_ACTIVE_H_END__SHIFT					16
25662306a36Sopenharmony_cistatic inline uint32_t DSI_ACTIVE_H_END(uint32_t val)
25762306a36Sopenharmony_ci{
25862306a36Sopenharmony_ci	return ((val) << DSI_ACTIVE_H_END__SHIFT) & DSI_ACTIVE_H_END__MASK;
25962306a36Sopenharmony_ci}
26062306a36Sopenharmony_ci
26162306a36Sopenharmony_ci#define REG_DSI_ACTIVE_V					0x00000024
26262306a36Sopenharmony_ci#define DSI_ACTIVE_V_START__MASK				0x00000fff
26362306a36Sopenharmony_ci#define DSI_ACTIVE_V_START__SHIFT				0
26462306a36Sopenharmony_cistatic inline uint32_t DSI_ACTIVE_V_START(uint32_t val)
26562306a36Sopenharmony_ci{
26662306a36Sopenharmony_ci	return ((val) << DSI_ACTIVE_V_START__SHIFT) & DSI_ACTIVE_V_START__MASK;
26762306a36Sopenharmony_ci}
26862306a36Sopenharmony_ci#define DSI_ACTIVE_V_END__MASK					0x0fff0000
26962306a36Sopenharmony_ci#define DSI_ACTIVE_V_END__SHIFT					16
27062306a36Sopenharmony_cistatic inline uint32_t DSI_ACTIVE_V_END(uint32_t val)
27162306a36Sopenharmony_ci{
27262306a36Sopenharmony_ci	return ((val) << DSI_ACTIVE_V_END__SHIFT) & DSI_ACTIVE_V_END__MASK;
27362306a36Sopenharmony_ci}
27462306a36Sopenharmony_ci
27562306a36Sopenharmony_ci#define REG_DSI_TOTAL						0x00000028
27662306a36Sopenharmony_ci#define DSI_TOTAL_H_TOTAL__MASK					0x00000fff
27762306a36Sopenharmony_ci#define DSI_TOTAL_H_TOTAL__SHIFT				0
27862306a36Sopenharmony_cistatic inline uint32_t DSI_TOTAL_H_TOTAL(uint32_t val)
27962306a36Sopenharmony_ci{
28062306a36Sopenharmony_ci	return ((val) << DSI_TOTAL_H_TOTAL__SHIFT) & DSI_TOTAL_H_TOTAL__MASK;
28162306a36Sopenharmony_ci}
28262306a36Sopenharmony_ci#define DSI_TOTAL_V_TOTAL__MASK					0x0fff0000
28362306a36Sopenharmony_ci#define DSI_TOTAL_V_TOTAL__SHIFT				16
28462306a36Sopenharmony_cistatic inline uint32_t DSI_TOTAL_V_TOTAL(uint32_t val)
28562306a36Sopenharmony_ci{
28662306a36Sopenharmony_ci	return ((val) << DSI_TOTAL_V_TOTAL__SHIFT) & DSI_TOTAL_V_TOTAL__MASK;
28762306a36Sopenharmony_ci}
28862306a36Sopenharmony_ci
28962306a36Sopenharmony_ci#define REG_DSI_ACTIVE_HSYNC					0x0000002c
29062306a36Sopenharmony_ci#define DSI_ACTIVE_HSYNC_START__MASK				0x00000fff
29162306a36Sopenharmony_ci#define DSI_ACTIVE_HSYNC_START__SHIFT				0
29262306a36Sopenharmony_cistatic inline uint32_t DSI_ACTIVE_HSYNC_START(uint32_t val)
29362306a36Sopenharmony_ci{
29462306a36Sopenharmony_ci	return ((val) << DSI_ACTIVE_HSYNC_START__SHIFT) & DSI_ACTIVE_HSYNC_START__MASK;
29562306a36Sopenharmony_ci}
29662306a36Sopenharmony_ci#define DSI_ACTIVE_HSYNC_END__MASK				0x0fff0000
29762306a36Sopenharmony_ci#define DSI_ACTIVE_HSYNC_END__SHIFT				16
29862306a36Sopenharmony_cistatic inline uint32_t DSI_ACTIVE_HSYNC_END(uint32_t val)
29962306a36Sopenharmony_ci{
30062306a36Sopenharmony_ci	return ((val) << DSI_ACTIVE_HSYNC_END__SHIFT) & DSI_ACTIVE_HSYNC_END__MASK;
30162306a36Sopenharmony_ci}
30262306a36Sopenharmony_ci
30362306a36Sopenharmony_ci#define REG_DSI_ACTIVE_VSYNC_HPOS				0x00000030
30462306a36Sopenharmony_ci#define DSI_ACTIVE_VSYNC_HPOS_START__MASK			0x00000fff
30562306a36Sopenharmony_ci#define DSI_ACTIVE_VSYNC_HPOS_START__SHIFT			0
30662306a36Sopenharmony_cistatic inline uint32_t DSI_ACTIVE_VSYNC_HPOS_START(uint32_t val)
30762306a36Sopenharmony_ci{
30862306a36Sopenharmony_ci	return ((val) << DSI_ACTIVE_VSYNC_HPOS_START__SHIFT) & DSI_ACTIVE_VSYNC_HPOS_START__MASK;
30962306a36Sopenharmony_ci}
31062306a36Sopenharmony_ci#define DSI_ACTIVE_VSYNC_HPOS_END__MASK				0x0fff0000
31162306a36Sopenharmony_ci#define DSI_ACTIVE_VSYNC_HPOS_END__SHIFT			16
31262306a36Sopenharmony_cistatic inline uint32_t DSI_ACTIVE_VSYNC_HPOS_END(uint32_t val)
31362306a36Sopenharmony_ci{
31462306a36Sopenharmony_ci	return ((val) << DSI_ACTIVE_VSYNC_HPOS_END__SHIFT) & DSI_ACTIVE_VSYNC_HPOS_END__MASK;
31562306a36Sopenharmony_ci}
31662306a36Sopenharmony_ci
31762306a36Sopenharmony_ci#define REG_DSI_ACTIVE_VSYNC_VPOS				0x00000034
31862306a36Sopenharmony_ci#define DSI_ACTIVE_VSYNC_VPOS_START__MASK			0x00000fff
31962306a36Sopenharmony_ci#define DSI_ACTIVE_VSYNC_VPOS_START__SHIFT			0
32062306a36Sopenharmony_cistatic inline uint32_t DSI_ACTIVE_VSYNC_VPOS_START(uint32_t val)
32162306a36Sopenharmony_ci{
32262306a36Sopenharmony_ci	return ((val) << DSI_ACTIVE_VSYNC_VPOS_START__SHIFT) & DSI_ACTIVE_VSYNC_VPOS_START__MASK;
32362306a36Sopenharmony_ci}
32462306a36Sopenharmony_ci#define DSI_ACTIVE_VSYNC_VPOS_END__MASK				0x0fff0000
32562306a36Sopenharmony_ci#define DSI_ACTIVE_VSYNC_VPOS_END__SHIFT			16
32662306a36Sopenharmony_cistatic inline uint32_t DSI_ACTIVE_VSYNC_VPOS_END(uint32_t val)
32762306a36Sopenharmony_ci{
32862306a36Sopenharmony_ci	return ((val) << DSI_ACTIVE_VSYNC_VPOS_END__SHIFT) & DSI_ACTIVE_VSYNC_VPOS_END__MASK;
32962306a36Sopenharmony_ci}
33062306a36Sopenharmony_ci
33162306a36Sopenharmony_ci#define REG_DSI_CMD_DMA_CTRL					0x00000038
33262306a36Sopenharmony_ci#define DSI_CMD_DMA_CTRL_BROADCAST_EN				0x80000000
33362306a36Sopenharmony_ci#define DSI_CMD_DMA_CTRL_FROM_FRAME_BUFFER			0x10000000
33462306a36Sopenharmony_ci#define DSI_CMD_DMA_CTRL_LOW_POWER				0x04000000
33562306a36Sopenharmony_ci
33662306a36Sopenharmony_ci#define REG_DSI_CMD_CFG0					0x0000003c
33762306a36Sopenharmony_ci#define DSI_CMD_CFG0_DST_FORMAT__MASK				0x0000000f
33862306a36Sopenharmony_ci#define DSI_CMD_CFG0_DST_FORMAT__SHIFT				0
33962306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_CFG0_DST_FORMAT(enum dsi_cmd_dst_format val)
34062306a36Sopenharmony_ci{
34162306a36Sopenharmony_ci	return ((val) << DSI_CMD_CFG0_DST_FORMAT__SHIFT) & DSI_CMD_CFG0_DST_FORMAT__MASK;
34262306a36Sopenharmony_ci}
34362306a36Sopenharmony_ci#define DSI_CMD_CFG0_R_SEL					0x00000010
34462306a36Sopenharmony_ci#define DSI_CMD_CFG0_G_SEL					0x00000100
34562306a36Sopenharmony_ci#define DSI_CMD_CFG0_B_SEL					0x00001000
34662306a36Sopenharmony_ci#define DSI_CMD_CFG0_INTERLEAVE_MAX__MASK			0x00f00000
34762306a36Sopenharmony_ci#define DSI_CMD_CFG0_INTERLEAVE_MAX__SHIFT			20
34862306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_CFG0_INTERLEAVE_MAX(uint32_t val)
34962306a36Sopenharmony_ci{
35062306a36Sopenharmony_ci	return ((val) << DSI_CMD_CFG0_INTERLEAVE_MAX__SHIFT) & DSI_CMD_CFG0_INTERLEAVE_MAX__MASK;
35162306a36Sopenharmony_ci}
35262306a36Sopenharmony_ci#define DSI_CMD_CFG0_RGB_SWAP__MASK				0x00070000
35362306a36Sopenharmony_ci#define DSI_CMD_CFG0_RGB_SWAP__SHIFT				16
35462306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_CFG0_RGB_SWAP(enum dsi_rgb_swap val)
35562306a36Sopenharmony_ci{
35662306a36Sopenharmony_ci	return ((val) << DSI_CMD_CFG0_RGB_SWAP__SHIFT) & DSI_CMD_CFG0_RGB_SWAP__MASK;
35762306a36Sopenharmony_ci}
35862306a36Sopenharmony_ci
35962306a36Sopenharmony_ci#define REG_DSI_CMD_CFG1					0x00000040
36062306a36Sopenharmony_ci#define DSI_CMD_CFG1_WR_MEM_START__MASK				0x000000ff
36162306a36Sopenharmony_ci#define DSI_CMD_CFG1_WR_MEM_START__SHIFT			0
36262306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_CFG1_WR_MEM_START(uint32_t val)
36362306a36Sopenharmony_ci{
36462306a36Sopenharmony_ci	return ((val) << DSI_CMD_CFG1_WR_MEM_START__SHIFT) & DSI_CMD_CFG1_WR_MEM_START__MASK;
36562306a36Sopenharmony_ci}
36662306a36Sopenharmony_ci#define DSI_CMD_CFG1_WR_MEM_CONTINUE__MASK			0x0000ff00
36762306a36Sopenharmony_ci#define DSI_CMD_CFG1_WR_MEM_CONTINUE__SHIFT			8
36862306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_CFG1_WR_MEM_CONTINUE(uint32_t val)
36962306a36Sopenharmony_ci{
37062306a36Sopenharmony_ci	return ((val) << DSI_CMD_CFG1_WR_MEM_CONTINUE__SHIFT) & DSI_CMD_CFG1_WR_MEM_CONTINUE__MASK;
37162306a36Sopenharmony_ci}
37262306a36Sopenharmony_ci#define DSI_CMD_CFG1_INSERT_DCS_COMMAND				0x00010000
37362306a36Sopenharmony_ci
37462306a36Sopenharmony_ci#define REG_DSI_DMA_BASE					0x00000044
37562306a36Sopenharmony_ci
37662306a36Sopenharmony_ci#define REG_DSI_DMA_LEN						0x00000048
37762306a36Sopenharmony_ci
37862306a36Sopenharmony_ci#define REG_DSI_CMD_MDP_STREAM0_CTRL				0x00000054
37962306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM0_CTRL_DATA_TYPE__MASK		0x0000003f
38062306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM0_CTRL_DATA_TYPE__SHIFT		0
38162306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_MDP_STREAM0_CTRL_DATA_TYPE(uint32_t val)
38262306a36Sopenharmony_ci{
38362306a36Sopenharmony_ci	return ((val) << DSI_CMD_MDP_STREAM0_CTRL_DATA_TYPE__SHIFT) & DSI_CMD_MDP_STREAM0_CTRL_DATA_TYPE__MASK;
38462306a36Sopenharmony_ci}
38562306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM0_CTRL_VIRTUAL_CHANNEL__MASK		0x00000300
38662306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM0_CTRL_VIRTUAL_CHANNEL__SHIFT		8
38762306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_MDP_STREAM0_CTRL_VIRTUAL_CHANNEL(uint32_t val)
38862306a36Sopenharmony_ci{
38962306a36Sopenharmony_ci	return ((val) << DSI_CMD_MDP_STREAM0_CTRL_VIRTUAL_CHANNEL__SHIFT) & DSI_CMD_MDP_STREAM0_CTRL_VIRTUAL_CHANNEL__MASK;
39062306a36Sopenharmony_ci}
39162306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM0_CTRL_WORD_COUNT__MASK		0xffff0000
39262306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM0_CTRL_WORD_COUNT__SHIFT		16
39362306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_MDP_STREAM0_CTRL_WORD_COUNT(uint32_t val)
39462306a36Sopenharmony_ci{
39562306a36Sopenharmony_ci	return ((val) << DSI_CMD_MDP_STREAM0_CTRL_WORD_COUNT__SHIFT) & DSI_CMD_MDP_STREAM0_CTRL_WORD_COUNT__MASK;
39662306a36Sopenharmony_ci}
39762306a36Sopenharmony_ci
39862306a36Sopenharmony_ci#define REG_DSI_CMD_MDP_STREAM0_TOTAL				0x00000058
39962306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM0_TOTAL_H_TOTAL__MASK			0x00000fff
40062306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM0_TOTAL_H_TOTAL__SHIFT		0
40162306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_MDP_STREAM0_TOTAL_H_TOTAL(uint32_t val)
40262306a36Sopenharmony_ci{
40362306a36Sopenharmony_ci	return ((val) << DSI_CMD_MDP_STREAM0_TOTAL_H_TOTAL__SHIFT) & DSI_CMD_MDP_STREAM0_TOTAL_H_TOTAL__MASK;
40462306a36Sopenharmony_ci}
40562306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM0_TOTAL_V_TOTAL__MASK			0x0fff0000
40662306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM0_TOTAL_V_TOTAL__SHIFT		16
40762306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_MDP_STREAM0_TOTAL_V_TOTAL(uint32_t val)
40862306a36Sopenharmony_ci{
40962306a36Sopenharmony_ci	return ((val) << DSI_CMD_MDP_STREAM0_TOTAL_V_TOTAL__SHIFT) & DSI_CMD_MDP_STREAM0_TOTAL_V_TOTAL__MASK;
41062306a36Sopenharmony_ci}
41162306a36Sopenharmony_ci
41262306a36Sopenharmony_ci#define REG_DSI_CMD_MDP_STREAM1_CTRL				0x0000005c
41362306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM1_CTRL_DATA_TYPE__MASK		0x0000003f
41462306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM1_CTRL_DATA_TYPE__SHIFT		0
41562306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_MDP_STREAM1_CTRL_DATA_TYPE(uint32_t val)
41662306a36Sopenharmony_ci{
41762306a36Sopenharmony_ci	return ((val) << DSI_CMD_MDP_STREAM1_CTRL_DATA_TYPE__SHIFT) & DSI_CMD_MDP_STREAM1_CTRL_DATA_TYPE__MASK;
41862306a36Sopenharmony_ci}
41962306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM1_CTRL_VIRTUAL_CHANNEL__MASK		0x00000300
42062306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM1_CTRL_VIRTUAL_CHANNEL__SHIFT		8
42162306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_MDP_STREAM1_CTRL_VIRTUAL_CHANNEL(uint32_t val)
42262306a36Sopenharmony_ci{
42362306a36Sopenharmony_ci	return ((val) << DSI_CMD_MDP_STREAM1_CTRL_VIRTUAL_CHANNEL__SHIFT) & DSI_CMD_MDP_STREAM1_CTRL_VIRTUAL_CHANNEL__MASK;
42462306a36Sopenharmony_ci}
42562306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM1_CTRL_WORD_COUNT__MASK		0xffff0000
42662306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM1_CTRL_WORD_COUNT__SHIFT		16
42762306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_MDP_STREAM1_CTRL_WORD_COUNT(uint32_t val)
42862306a36Sopenharmony_ci{
42962306a36Sopenharmony_ci	return ((val) << DSI_CMD_MDP_STREAM1_CTRL_WORD_COUNT__SHIFT) & DSI_CMD_MDP_STREAM1_CTRL_WORD_COUNT__MASK;
43062306a36Sopenharmony_ci}
43162306a36Sopenharmony_ci
43262306a36Sopenharmony_ci#define REG_DSI_CMD_MDP_STREAM1_TOTAL				0x00000060
43362306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM1_TOTAL_H_TOTAL__MASK			0x0000ffff
43462306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM1_TOTAL_H_TOTAL__SHIFT		0
43562306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_MDP_STREAM1_TOTAL_H_TOTAL(uint32_t val)
43662306a36Sopenharmony_ci{
43762306a36Sopenharmony_ci	return ((val) << DSI_CMD_MDP_STREAM1_TOTAL_H_TOTAL__SHIFT) & DSI_CMD_MDP_STREAM1_TOTAL_H_TOTAL__MASK;
43862306a36Sopenharmony_ci}
43962306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM1_TOTAL_V_TOTAL__MASK			0xffff0000
44062306a36Sopenharmony_ci#define DSI_CMD_MDP_STREAM1_TOTAL_V_TOTAL__SHIFT		16
44162306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_MDP_STREAM1_TOTAL_V_TOTAL(uint32_t val)
44262306a36Sopenharmony_ci{
44362306a36Sopenharmony_ci	return ((val) << DSI_CMD_MDP_STREAM1_TOTAL_V_TOTAL__SHIFT) & DSI_CMD_MDP_STREAM1_TOTAL_V_TOTAL__MASK;
44462306a36Sopenharmony_ci}
44562306a36Sopenharmony_ci
44662306a36Sopenharmony_ci#define REG_DSI_ACK_ERR_STATUS					0x00000064
44762306a36Sopenharmony_ci
44862306a36Sopenharmony_cistatic inline uint32_t REG_DSI_RDBK(uint32_t i0) { return 0x00000068 + 0x4*i0; }
44962306a36Sopenharmony_ci
45062306a36Sopenharmony_cistatic inline uint32_t REG_DSI_RDBK_DATA(uint32_t i0) { return 0x00000068 + 0x4*i0; }
45162306a36Sopenharmony_ci
45262306a36Sopenharmony_ci#define REG_DSI_TRIG_CTRL					0x00000080
45362306a36Sopenharmony_ci#define DSI_TRIG_CTRL_DMA_TRIGGER__MASK				0x00000007
45462306a36Sopenharmony_ci#define DSI_TRIG_CTRL_DMA_TRIGGER__SHIFT			0
45562306a36Sopenharmony_cistatic inline uint32_t DSI_TRIG_CTRL_DMA_TRIGGER(enum dsi_cmd_trigger val)
45662306a36Sopenharmony_ci{
45762306a36Sopenharmony_ci	return ((val) << DSI_TRIG_CTRL_DMA_TRIGGER__SHIFT) & DSI_TRIG_CTRL_DMA_TRIGGER__MASK;
45862306a36Sopenharmony_ci}
45962306a36Sopenharmony_ci#define DSI_TRIG_CTRL_MDP_TRIGGER__MASK				0x00000070
46062306a36Sopenharmony_ci#define DSI_TRIG_CTRL_MDP_TRIGGER__SHIFT			4
46162306a36Sopenharmony_cistatic inline uint32_t DSI_TRIG_CTRL_MDP_TRIGGER(enum dsi_cmd_trigger val)
46262306a36Sopenharmony_ci{
46362306a36Sopenharmony_ci	return ((val) << DSI_TRIG_CTRL_MDP_TRIGGER__SHIFT) & DSI_TRIG_CTRL_MDP_TRIGGER__MASK;
46462306a36Sopenharmony_ci}
46562306a36Sopenharmony_ci#define DSI_TRIG_CTRL_STREAM__MASK				0x00000300
46662306a36Sopenharmony_ci#define DSI_TRIG_CTRL_STREAM__SHIFT				8
46762306a36Sopenharmony_cistatic inline uint32_t DSI_TRIG_CTRL_STREAM(uint32_t val)
46862306a36Sopenharmony_ci{
46962306a36Sopenharmony_ci	return ((val) << DSI_TRIG_CTRL_STREAM__SHIFT) & DSI_TRIG_CTRL_STREAM__MASK;
47062306a36Sopenharmony_ci}
47162306a36Sopenharmony_ci#define DSI_TRIG_CTRL_BLOCK_DMA_WITHIN_FRAME			0x00001000
47262306a36Sopenharmony_ci#define DSI_TRIG_CTRL_TE					0x80000000
47362306a36Sopenharmony_ci
47462306a36Sopenharmony_ci#define REG_DSI_TRIG_DMA					0x0000008c
47562306a36Sopenharmony_ci
47662306a36Sopenharmony_ci#define REG_DSI_DLN0_PHY_ERR					0x000000b0
47762306a36Sopenharmony_ci#define DSI_DLN0_PHY_ERR_DLN0_ERR_ESC				0x00000001
47862306a36Sopenharmony_ci#define DSI_DLN0_PHY_ERR_DLN0_ERR_SYNC_ESC			0x00000010
47962306a36Sopenharmony_ci#define DSI_DLN0_PHY_ERR_DLN0_ERR_CONTROL			0x00000100
48062306a36Sopenharmony_ci#define DSI_DLN0_PHY_ERR_DLN0_ERR_CONTENTION_LP0		0x00001000
48162306a36Sopenharmony_ci#define DSI_DLN0_PHY_ERR_DLN0_ERR_CONTENTION_LP1		0x00010000
48262306a36Sopenharmony_ci
48362306a36Sopenharmony_ci#define REG_DSI_LP_TIMER_CTRL					0x000000b4
48462306a36Sopenharmony_ci#define DSI_LP_TIMER_CTRL_LP_RX_TO__MASK			0x0000ffff
48562306a36Sopenharmony_ci#define DSI_LP_TIMER_CTRL_LP_RX_TO__SHIFT			0
48662306a36Sopenharmony_cistatic inline uint32_t DSI_LP_TIMER_CTRL_LP_RX_TO(uint32_t val)
48762306a36Sopenharmony_ci{
48862306a36Sopenharmony_ci	return ((val) << DSI_LP_TIMER_CTRL_LP_RX_TO__SHIFT) & DSI_LP_TIMER_CTRL_LP_RX_TO__MASK;
48962306a36Sopenharmony_ci}
49062306a36Sopenharmony_ci#define DSI_LP_TIMER_CTRL_BTA_TO__MASK				0xffff0000
49162306a36Sopenharmony_ci#define DSI_LP_TIMER_CTRL_BTA_TO__SHIFT				16
49262306a36Sopenharmony_cistatic inline uint32_t DSI_LP_TIMER_CTRL_BTA_TO(uint32_t val)
49362306a36Sopenharmony_ci{
49462306a36Sopenharmony_ci	return ((val) << DSI_LP_TIMER_CTRL_BTA_TO__SHIFT) & DSI_LP_TIMER_CTRL_BTA_TO__MASK;
49562306a36Sopenharmony_ci}
49662306a36Sopenharmony_ci
49762306a36Sopenharmony_ci#define REG_DSI_HS_TIMER_CTRL					0x000000b8
49862306a36Sopenharmony_ci#define DSI_HS_TIMER_CTRL_HS_TX_TO__MASK			0x0000ffff
49962306a36Sopenharmony_ci#define DSI_HS_TIMER_CTRL_HS_TX_TO__SHIFT			0
50062306a36Sopenharmony_cistatic inline uint32_t DSI_HS_TIMER_CTRL_HS_TX_TO(uint32_t val)
50162306a36Sopenharmony_ci{
50262306a36Sopenharmony_ci	return ((val) << DSI_HS_TIMER_CTRL_HS_TX_TO__SHIFT) & DSI_HS_TIMER_CTRL_HS_TX_TO__MASK;
50362306a36Sopenharmony_ci}
50462306a36Sopenharmony_ci#define DSI_HS_TIMER_CTRL_TIMER_RESOLUTION__MASK		0x000f0000
50562306a36Sopenharmony_ci#define DSI_HS_TIMER_CTRL_TIMER_RESOLUTION__SHIFT		16
50662306a36Sopenharmony_cistatic inline uint32_t DSI_HS_TIMER_CTRL_TIMER_RESOLUTION(uint32_t val)
50762306a36Sopenharmony_ci{
50862306a36Sopenharmony_ci	return ((val) << DSI_HS_TIMER_CTRL_TIMER_RESOLUTION__SHIFT) & DSI_HS_TIMER_CTRL_TIMER_RESOLUTION__MASK;
50962306a36Sopenharmony_ci}
51062306a36Sopenharmony_ci#define DSI_HS_TIMER_CTRL_HS_TX_TO_STOP_EN			0x10000000
51162306a36Sopenharmony_ci
51262306a36Sopenharmony_ci#define REG_DSI_TIMEOUT_STATUS					0x000000bc
51362306a36Sopenharmony_ci
51462306a36Sopenharmony_ci#define REG_DSI_CLKOUT_TIMING_CTRL				0x000000c0
51562306a36Sopenharmony_ci#define DSI_CLKOUT_TIMING_CTRL_T_CLK_PRE__MASK			0x0000003f
51662306a36Sopenharmony_ci#define DSI_CLKOUT_TIMING_CTRL_T_CLK_PRE__SHIFT			0
51762306a36Sopenharmony_cistatic inline uint32_t DSI_CLKOUT_TIMING_CTRL_T_CLK_PRE(uint32_t val)
51862306a36Sopenharmony_ci{
51962306a36Sopenharmony_ci	return ((val) << DSI_CLKOUT_TIMING_CTRL_T_CLK_PRE__SHIFT) & DSI_CLKOUT_TIMING_CTRL_T_CLK_PRE__MASK;
52062306a36Sopenharmony_ci}
52162306a36Sopenharmony_ci#define DSI_CLKOUT_TIMING_CTRL_T_CLK_POST__MASK			0x00003f00
52262306a36Sopenharmony_ci#define DSI_CLKOUT_TIMING_CTRL_T_CLK_POST__SHIFT		8
52362306a36Sopenharmony_cistatic inline uint32_t DSI_CLKOUT_TIMING_CTRL_T_CLK_POST(uint32_t val)
52462306a36Sopenharmony_ci{
52562306a36Sopenharmony_ci	return ((val) << DSI_CLKOUT_TIMING_CTRL_T_CLK_POST__SHIFT) & DSI_CLKOUT_TIMING_CTRL_T_CLK_POST__MASK;
52662306a36Sopenharmony_ci}
52762306a36Sopenharmony_ci
52862306a36Sopenharmony_ci#define REG_DSI_EOT_PACKET_CTRL					0x000000c8
52962306a36Sopenharmony_ci#define DSI_EOT_PACKET_CTRL_TX_EOT_APPEND			0x00000001
53062306a36Sopenharmony_ci#define DSI_EOT_PACKET_CTRL_RX_EOT_IGNORE			0x00000010
53162306a36Sopenharmony_ci
53262306a36Sopenharmony_ci#define REG_DSI_LANE_STATUS					0x000000a4
53362306a36Sopenharmony_ci#define DSI_LANE_STATUS_DLN0_STOPSTATE				0x00000001
53462306a36Sopenharmony_ci#define DSI_LANE_STATUS_DLN1_STOPSTATE				0x00000002
53562306a36Sopenharmony_ci#define DSI_LANE_STATUS_DLN2_STOPSTATE				0x00000004
53662306a36Sopenharmony_ci#define DSI_LANE_STATUS_DLN3_STOPSTATE				0x00000008
53762306a36Sopenharmony_ci#define DSI_LANE_STATUS_CLKLN_STOPSTATE				0x00000010
53862306a36Sopenharmony_ci#define DSI_LANE_STATUS_DLN0_ULPS_ACTIVE_NOT			0x00000100
53962306a36Sopenharmony_ci#define DSI_LANE_STATUS_DLN1_ULPS_ACTIVE_NOT			0x00000200
54062306a36Sopenharmony_ci#define DSI_LANE_STATUS_DLN2_ULPS_ACTIVE_NOT			0x00000400
54162306a36Sopenharmony_ci#define DSI_LANE_STATUS_DLN3_ULPS_ACTIVE_NOT			0x00000800
54262306a36Sopenharmony_ci#define DSI_LANE_STATUS_CLKLN_ULPS_ACTIVE_NOT			0x00001000
54362306a36Sopenharmony_ci#define DSI_LANE_STATUS_DLN0_DIRECTION				0x00010000
54462306a36Sopenharmony_ci
54562306a36Sopenharmony_ci#define REG_DSI_LANE_CTRL					0x000000a8
54662306a36Sopenharmony_ci#define DSI_LANE_CTRL_HS_REQ_SEL_PHY				0x01000000
54762306a36Sopenharmony_ci#define DSI_LANE_CTRL_CLKLN_HS_FORCE_REQUEST			0x10000000
54862306a36Sopenharmony_ci
54962306a36Sopenharmony_ci#define REG_DSI_LANE_SWAP_CTRL					0x000000ac
55062306a36Sopenharmony_ci#define DSI_LANE_SWAP_CTRL_DLN_SWAP_SEL__MASK			0x00000007
55162306a36Sopenharmony_ci#define DSI_LANE_SWAP_CTRL_DLN_SWAP_SEL__SHIFT			0
55262306a36Sopenharmony_cistatic inline uint32_t DSI_LANE_SWAP_CTRL_DLN_SWAP_SEL(enum dsi_lane_swap val)
55362306a36Sopenharmony_ci{
55462306a36Sopenharmony_ci	return ((val) << DSI_LANE_SWAP_CTRL_DLN_SWAP_SEL__SHIFT) & DSI_LANE_SWAP_CTRL_DLN_SWAP_SEL__MASK;
55562306a36Sopenharmony_ci}
55662306a36Sopenharmony_ci
55762306a36Sopenharmony_ci#define REG_DSI_ERR_INT_MASK0					0x00000108
55862306a36Sopenharmony_ci
55962306a36Sopenharmony_ci#define REG_DSI_INTR_CTRL					0x0000010c
56062306a36Sopenharmony_ci
56162306a36Sopenharmony_ci#define REG_DSI_RESET						0x00000114
56262306a36Sopenharmony_ci
56362306a36Sopenharmony_ci#define REG_DSI_CLK_CTRL					0x00000118
56462306a36Sopenharmony_ci#define DSI_CLK_CTRL_AHBS_HCLK_ON				0x00000001
56562306a36Sopenharmony_ci#define DSI_CLK_CTRL_AHBM_SCLK_ON				0x00000002
56662306a36Sopenharmony_ci#define DSI_CLK_CTRL_PCLK_ON					0x00000004
56762306a36Sopenharmony_ci#define DSI_CLK_CTRL_DSICLK_ON					0x00000008
56862306a36Sopenharmony_ci#define DSI_CLK_CTRL_BYTECLK_ON					0x00000010
56962306a36Sopenharmony_ci#define DSI_CLK_CTRL_ESCCLK_ON					0x00000020
57062306a36Sopenharmony_ci#define DSI_CLK_CTRL_FORCE_ON_DYN_AHBM_HCLK			0x00000200
57162306a36Sopenharmony_ci
57262306a36Sopenharmony_ci#define REG_DSI_CLK_STATUS					0x0000011c
57362306a36Sopenharmony_ci#define DSI_CLK_STATUS_DSI_AON_AHBM_HCLK_ACTIVE			0x00000001
57462306a36Sopenharmony_ci#define DSI_CLK_STATUS_DSI_DYN_AHBM_HCLK_ACTIVE			0x00000002
57562306a36Sopenharmony_ci#define DSI_CLK_STATUS_DSI_AON_AHBS_HCLK_ACTIVE			0x00000004
57662306a36Sopenharmony_ci#define DSI_CLK_STATUS_DSI_DYN_AHBS_HCLK_ACTIVE			0x00000008
57762306a36Sopenharmony_ci#define DSI_CLK_STATUS_DSI_AON_DSICLK_ACTIVE			0x00000010
57862306a36Sopenharmony_ci#define DSI_CLK_STATUS_DSI_DYN_DSICLK_ACTIVE			0x00000020
57962306a36Sopenharmony_ci#define DSI_CLK_STATUS_DSI_AON_BYTECLK_ACTIVE			0x00000040
58062306a36Sopenharmony_ci#define DSI_CLK_STATUS_DSI_DYN_BYTECLK_ACTIVE			0x00000080
58162306a36Sopenharmony_ci#define DSI_CLK_STATUS_DSI_AON_ESCCLK_ACTIVE			0x00000100
58262306a36Sopenharmony_ci#define DSI_CLK_STATUS_DSI_AON_PCLK_ACTIVE			0x00000200
58362306a36Sopenharmony_ci#define DSI_CLK_STATUS_DSI_DYN_PCLK_ACTIVE			0x00000400
58462306a36Sopenharmony_ci#define DSI_CLK_STATUS_DSI_DYN_CMD_PCLK_ACTIVE			0x00001000
58562306a36Sopenharmony_ci#define DSI_CLK_STATUS_DSI_CMD_PCLK_ACTIVE			0x00002000
58662306a36Sopenharmony_ci#define DSI_CLK_STATUS_DSI_VID_PCLK_ACTIVE			0x00004000
58762306a36Sopenharmony_ci#define DSI_CLK_STATUS_DSI_CAM_BIST_PCLK_ACT			0x00008000
58862306a36Sopenharmony_ci#define DSI_CLK_STATUS_PLL_UNLOCKED				0x00010000
58962306a36Sopenharmony_ci
59062306a36Sopenharmony_ci#define REG_DSI_PHY_RESET					0x00000128
59162306a36Sopenharmony_ci#define DSI_PHY_RESET_RESET					0x00000001
59262306a36Sopenharmony_ci
59362306a36Sopenharmony_ci#define REG_DSI_TEST_PATTERN_GEN_VIDEO_INIT_VAL			0x00000160
59462306a36Sopenharmony_ci
59562306a36Sopenharmony_ci#define REG_DSI_TPG_MAIN_CONTROL				0x00000198
59662306a36Sopenharmony_ci#define DSI_TPG_MAIN_CONTROL_CHECKERED_RECTANGLE_PATTERN	0x00000100
59762306a36Sopenharmony_ci
59862306a36Sopenharmony_ci#define REG_DSI_TPG_VIDEO_CONFIG				0x000001a0
59962306a36Sopenharmony_ci#define DSI_TPG_VIDEO_CONFIG_BPP__MASK				0x00000003
60062306a36Sopenharmony_ci#define DSI_TPG_VIDEO_CONFIG_BPP__SHIFT				0
60162306a36Sopenharmony_cistatic inline uint32_t DSI_TPG_VIDEO_CONFIG_BPP(enum video_config_bpp val)
60262306a36Sopenharmony_ci{
60362306a36Sopenharmony_ci	return ((val) << DSI_TPG_VIDEO_CONFIG_BPP__SHIFT) & DSI_TPG_VIDEO_CONFIG_BPP__MASK;
60462306a36Sopenharmony_ci}
60562306a36Sopenharmony_ci#define DSI_TPG_VIDEO_CONFIG_RGB				0x00000004
60662306a36Sopenharmony_ci
60762306a36Sopenharmony_ci#define REG_DSI_TEST_PATTERN_GEN_CTRL				0x00000158
60862306a36Sopenharmony_ci#define DSI_TEST_PATTERN_GEN_CTRL_CMD_DMA_PATTERN_SEL__MASK	0x00030000
60962306a36Sopenharmony_ci#define DSI_TEST_PATTERN_GEN_CTRL_CMD_DMA_PATTERN_SEL__SHIFT	16
61062306a36Sopenharmony_cistatic inline uint32_t DSI_TEST_PATTERN_GEN_CTRL_CMD_DMA_PATTERN_SEL(enum cmd_dma_pattern_sel val)
61162306a36Sopenharmony_ci{
61262306a36Sopenharmony_ci	return ((val) << DSI_TEST_PATTERN_GEN_CTRL_CMD_DMA_PATTERN_SEL__SHIFT) & DSI_TEST_PATTERN_GEN_CTRL_CMD_DMA_PATTERN_SEL__MASK;
61362306a36Sopenharmony_ci}
61462306a36Sopenharmony_ci#define DSI_TEST_PATTERN_GEN_CTRL_CMD_MDP_STREAM0_PATTERN_SEL__MASK	0x00000300
61562306a36Sopenharmony_ci#define DSI_TEST_PATTERN_GEN_CTRL_CMD_MDP_STREAM0_PATTERN_SEL__SHIFT	8
61662306a36Sopenharmony_cistatic inline uint32_t DSI_TEST_PATTERN_GEN_CTRL_CMD_MDP_STREAM0_PATTERN_SEL(enum cmd_mdp_stream0_pattern_sel val)
61762306a36Sopenharmony_ci{
61862306a36Sopenharmony_ci	return ((val) << DSI_TEST_PATTERN_GEN_CTRL_CMD_MDP_STREAM0_PATTERN_SEL__SHIFT) & DSI_TEST_PATTERN_GEN_CTRL_CMD_MDP_STREAM0_PATTERN_SEL__MASK;
61962306a36Sopenharmony_ci}
62062306a36Sopenharmony_ci#define DSI_TEST_PATTERN_GEN_CTRL_VIDEO_PATTERN_SEL__MASK	0x00000030
62162306a36Sopenharmony_ci#define DSI_TEST_PATTERN_GEN_CTRL_VIDEO_PATTERN_SEL__SHIFT	4
62262306a36Sopenharmony_cistatic inline uint32_t DSI_TEST_PATTERN_GEN_CTRL_VIDEO_PATTERN_SEL(enum video_pattern_sel val)
62362306a36Sopenharmony_ci{
62462306a36Sopenharmony_ci	return ((val) << DSI_TEST_PATTERN_GEN_CTRL_VIDEO_PATTERN_SEL__SHIFT) & DSI_TEST_PATTERN_GEN_CTRL_VIDEO_PATTERN_SEL__MASK;
62562306a36Sopenharmony_ci}
62662306a36Sopenharmony_ci#define DSI_TEST_PATTERN_GEN_CTRL_TPG_DMA_FIFO_MODE		0x00000004
62762306a36Sopenharmony_ci#define DSI_TEST_PATTERN_GEN_CTRL_CMD_DMA_TPG_EN		0x00000002
62862306a36Sopenharmony_ci#define DSI_TEST_PATTERN_GEN_CTRL_EN				0x00000001
62962306a36Sopenharmony_ci
63062306a36Sopenharmony_ci#define REG_DSI_TEST_PATTERN_GEN_CMD_MDP_INIT_VAL0		0x00000168
63162306a36Sopenharmony_ci
63262306a36Sopenharmony_ci#define REG_DSI_TEST_PATTERN_GEN_CMD_STREAM0_TRIGGER		0x00000180
63362306a36Sopenharmony_ci#define DSI_TEST_PATTERN_GEN_CMD_STREAM0_TRIGGER_SW_TRIGGER	0x00000001
63462306a36Sopenharmony_ci
63562306a36Sopenharmony_ci#define REG_DSI_TPG_MAIN_CONTROL2				0x0000019c
63662306a36Sopenharmony_ci#define DSI_TPG_MAIN_CONTROL2_CMD_MDP0_CHECKERED_RECTANGLE_PATTERN	0x00000080
63762306a36Sopenharmony_ci#define DSI_TPG_MAIN_CONTROL2_CMD_MDP1_CHECKERED_RECTANGLE_PATTERN	0x00010000
63862306a36Sopenharmony_ci#define DSI_TPG_MAIN_CONTROL2_CMD_MDP2_CHECKERED_RECTANGLE_PATTERN	0x02000000
63962306a36Sopenharmony_ci
64062306a36Sopenharmony_ci#define REG_DSI_T_CLK_PRE_EXTEND				0x0000017c
64162306a36Sopenharmony_ci#define DSI_T_CLK_PRE_EXTEND_INC_BY_2_BYTECLK			0x00000001
64262306a36Sopenharmony_ci
64362306a36Sopenharmony_ci#define REG_DSI_CMD_MODE_MDP_CTRL2				0x000001b4
64462306a36Sopenharmony_ci#define DSI_CMD_MODE_MDP_CTRL2_DST_FORMAT2__MASK		0x0000000f
64562306a36Sopenharmony_ci#define DSI_CMD_MODE_MDP_CTRL2_DST_FORMAT2__SHIFT		0
64662306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_MODE_MDP_CTRL2_DST_FORMAT2(enum dsi_cmd_dst_format val)
64762306a36Sopenharmony_ci{
64862306a36Sopenharmony_ci	return ((val) << DSI_CMD_MODE_MDP_CTRL2_DST_FORMAT2__SHIFT) & DSI_CMD_MODE_MDP_CTRL2_DST_FORMAT2__MASK;
64962306a36Sopenharmony_ci}
65062306a36Sopenharmony_ci#define DSI_CMD_MODE_MDP_CTRL2_R_SEL				0x00000010
65162306a36Sopenharmony_ci#define DSI_CMD_MODE_MDP_CTRL2_G_SEL				0x00000020
65262306a36Sopenharmony_ci#define DSI_CMD_MODE_MDP_CTRL2_B_SEL				0x00000040
65362306a36Sopenharmony_ci#define DSI_CMD_MODE_MDP_CTRL2_BYTE_MSB_LSB_FLIP		0x00000080
65462306a36Sopenharmony_ci#define DSI_CMD_MODE_MDP_CTRL2_RGB_SWAP__MASK			0x00000700
65562306a36Sopenharmony_ci#define DSI_CMD_MODE_MDP_CTRL2_RGB_SWAP__SHIFT			8
65662306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_MODE_MDP_CTRL2_RGB_SWAP(enum dsi_rgb_swap val)
65762306a36Sopenharmony_ci{
65862306a36Sopenharmony_ci	return ((val) << DSI_CMD_MODE_MDP_CTRL2_RGB_SWAP__SHIFT) & DSI_CMD_MODE_MDP_CTRL2_RGB_SWAP__MASK;
65962306a36Sopenharmony_ci}
66062306a36Sopenharmony_ci#define DSI_CMD_MODE_MDP_CTRL2_INPUT_RGB_SWAP__MASK		0x00007000
66162306a36Sopenharmony_ci#define DSI_CMD_MODE_MDP_CTRL2_INPUT_RGB_SWAP__SHIFT		12
66262306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_MODE_MDP_CTRL2_INPUT_RGB_SWAP(enum dsi_rgb_swap val)
66362306a36Sopenharmony_ci{
66462306a36Sopenharmony_ci	return ((val) << DSI_CMD_MODE_MDP_CTRL2_INPUT_RGB_SWAP__SHIFT) & DSI_CMD_MODE_MDP_CTRL2_INPUT_RGB_SWAP__MASK;
66562306a36Sopenharmony_ci}
66662306a36Sopenharmony_ci#define DSI_CMD_MODE_MDP_CTRL2_BURST_MODE			0x00010000
66762306a36Sopenharmony_ci
66862306a36Sopenharmony_ci#define REG_DSI_CMD_MODE_MDP_STREAM2_CTRL			0x000001b8
66962306a36Sopenharmony_ci#define DSI_CMD_MODE_MDP_STREAM2_CTRL_DATA_TYPE__MASK		0x0000003f
67062306a36Sopenharmony_ci#define DSI_CMD_MODE_MDP_STREAM2_CTRL_DATA_TYPE__SHIFT		0
67162306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_MODE_MDP_STREAM2_CTRL_DATA_TYPE(uint32_t val)
67262306a36Sopenharmony_ci{
67362306a36Sopenharmony_ci	return ((val) << DSI_CMD_MODE_MDP_STREAM2_CTRL_DATA_TYPE__SHIFT) & DSI_CMD_MODE_MDP_STREAM2_CTRL_DATA_TYPE__MASK;
67462306a36Sopenharmony_ci}
67562306a36Sopenharmony_ci#define DSI_CMD_MODE_MDP_STREAM2_CTRL_VIRTUAL_CHANNEL__MASK	0x00000300
67662306a36Sopenharmony_ci#define DSI_CMD_MODE_MDP_STREAM2_CTRL_VIRTUAL_CHANNEL__SHIFT	8
67762306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_MODE_MDP_STREAM2_CTRL_VIRTUAL_CHANNEL(uint32_t val)
67862306a36Sopenharmony_ci{
67962306a36Sopenharmony_ci	return ((val) << DSI_CMD_MODE_MDP_STREAM2_CTRL_VIRTUAL_CHANNEL__SHIFT) & DSI_CMD_MODE_MDP_STREAM2_CTRL_VIRTUAL_CHANNEL__MASK;
68062306a36Sopenharmony_ci}
68162306a36Sopenharmony_ci#define DSI_CMD_MODE_MDP_STREAM2_CTRL_WORD_COUNT__MASK		0xffff0000
68262306a36Sopenharmony_ci#define DSI_CMD_MODE_MDP_STREAM2_CTRL_WORD_COUNT__SHIFT		16
68362306a36Sopenharmony_cistatic inline uint32_t DSI_CMD_MODE_MDP_STREAM2_CTRL_WORD_COUNT(uint32_t val)
68462306a36Sopenharmony_ci{
68562306a36Sopenharmony_ci	return ((val) << DSI_CMD_MODE_MDP_STREAM2_CTRL_WORD_COUNT__SHIFT) & DSI_CMD_MODE_MDP_STREAM2_CTRL_WORD_COUNT__MASK;
68662306a36Sopenharmony_ci}
68762306a36Sopenharmony_ci
68862306a36Sopenharmony_ci#define REG_DSI_RDBK_DATA_CTRL					0x000001d0
68962306a36Sopenharmony_ci#define DSI_RDBK_DATA_CTRL_COUNT__MASK				0x00ff0000
69062306a36Sopenharmony_ci#define DSI_RDBK_DATA_CTRL_COUNT__SHIFT				16
69162306a36Sopenharmony_cistatic inline uint32_t DSI_RDBK_DATA_CTRL_COUNT(uint32_t val)
69262306a36Sopenharmony_ci{
69362306a36Sopenharmony_ci	return ((val) << DSI_RDBK_DATA_CTRL_COUNT__SHIFT) & DSI_RDBK_DATA_CTRL_COUNT__MASK;
69462306a36Sopenharmony_ci}
69562306a36Sopenharmony_ci#define DSI_RDBK_DATA_CTRL_CLR					0x00000001
69662306a36Sopenharmony_ci
69762306a36Sopenharmony_ci#define REG_DSI_VERSION						0x000001f0
69862306a36Sopenharmony_ci#define DSI_VERSION_MAJOR__MASK					0xff000000
69962306a36Sopenharmony_ci#define DSI_VERSION_MAJOR__SHIFT				24
70062306a36Sopenharmony_cistatic inline uint32_t DSI_VERSION_MAJOR(uint32_t val)
70162306a36Sopenharmony_ci{
70262306a36Sopenharmony_ci	return ((val) << DSI_VERSION_MAJOR__SHIFT) & DSI_VERSION_MAJOR__MASK;
70362306a36Sopenharmony_ci}
70462306a36Sopenharmony_ci
70562306a36Sopenharmony_ci#define REG_DSI_CPHY_MODE_CTRL					0x000002d4
70662306a36Sopenharmony_ci
70762306a36Sopenharmony_ci#define REG_DSI_VIDEO_COMPRESSION_MODE_CTRL			0x0000029c
70862306a36Sopenharmony_ci#define DSI_VIDEO_COMPRESSION_MODE_CTRL_WC__MASK		0xffff0000
70962306a36Sopenharmony_ci#define DSI_VIDEO_COMPRESSION_MODE_CTRL_WC__SHIFT		16
71062306a36Sopenharmony_cistatic inline uint32_t DSI_VIDEO_COMPRESSION_MODE_CTRL_WC(uint32_t val)
71162306a36Sopenharmony_ci{
71262306a36Sopenharmony_ci	return ((val) << DSI_VIDEO_COMPRESSION_MODE_CTRL_WC__SHIFT) & DSI_VIDEO_COMPRESSION_MODE_CTRL_WC__MASK;
71362306a36Sopenharmony_ci}
71462306a36Sopenharmony_ci#define DSI_VIDEO_COMPRESSION_MODE_CTRL_DATATYPE__MASK		0x00003f00
71562306a36Sopenharmony_ci#define DSI_VIDEO_COMPRESSION_MODE_CTRL_DATATYPE__SHIFT		8
71662306a36Sopenharmony_cistatic inline uint32_t DSI_VIDEO_COMPRESSION_MODE_CTRL_DATATYPE(uint32_t val)
71762306a36Sopenharmony_ci{
71862306a36Sopenharmony_ci	return ((val) << DSI_VIDEO_COMPRESSION_MODE_CTRL_DATATYPE__SHIFT) & DSI_VIDEO_COMPRESSION_MODE_CTRL_DATATYPE__MASK;
71962306a36Sopenharmony_ci}
72062306a36Sopenharmony_ci#define DSI_VIDEO_COMPRESSION_MODE_CTRL_PKT_PER_LINE__MASK	0x000000c0
72162306a36Sopenharmony_ci#define DSI_VIDEO_COMPRESSION_MODE_CTRL_PKT_PER_LINE__SHIFT	6
72262306a36Sopenharmony_cistatic inline uint32_t DSI_VIDEO_COMPRESSION_MODE_CTRL_PKT_PER_LINE(uint32_t val)
72362306a36Sopenharmony_ci{
72462306a36Sopenharmony_ci	return ((val) << DSI_VIDEO_COMPRESSION_MODE_CTRL_PKT_PER_LINE__SHIFT) & DSI_VIDEO_COMPRESSION_MODE_CTRL_PKT_PER_LINE__MASK;
72562306a36Sopenharmony_ci}
72662306a36Sopenharmony_ci#define DSI_VIDEO_COMPRESSION_MODE_CTRL_EOL_BYTE_NUM__MASK	0x00000030
72762306a36Sopenharmony_ci#define DSI_VIDEO_COMPRESSION_MODE_CTRL_EOL_BYTE_NUM__SHIFT	4
72862306a36Sopenharmony_cistatic inline uint32_t DSI_VIDEO_COMPRESSION_MODE_CTRL_EOL_BYTE_NUM(uint32_t val)
72962306a36Sopenharmony_ci{
73062306a36Sopenharmony_ci	return ((val) << DSI_VIDEO_COMPRESSION_MODE_CTRL_EOL_BYTE_NUM__SHIFT) & DSI_VIDEO_COMPRESSION_MODE_CTRL_EOL_BYTE_NUM__MASK;
73162306a36Sopenharmony_ci}
73262306a36Sopenharmony_ci#define DSI_VIDEO_COMPRESSION_MODE_CTRL_EN			0x00000001
73362306a36Sopenharmony_ci
73462306a36Sopenharmony_ci#define REG_DSI_COMMAND_COMPRESSION_MODE_CTRL			0x000002a4
73562306a36Sopenharmony_ci#define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_DATATYPE__MASK	0x3f000000
73662306a36Sopenharmony_ci#define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_DATATYPE__SHIFT	24
73762306a36Sopenharmony_cistatic inline uint32_t DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_DATATYPE(uint32_t val)
73862306a36Sopenharmony_ci{
73962306a36Sopenharmony_ci	return ((val) << DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_DATATYPE__SHIFT) & DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_DATATYPE__MASK;
74062306a36Sopenharmony_ci}
74162306a36Sopenharmony_ci#define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_PKT_PER_LINE__MASK	0x00c00000
74262306a36Sopenharmony_ci#define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_PKT_PER_LINE__SHIFT	22
74362306a36Sopenharmony_cistatic inline uint32_t DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_PKT_PER_LINE(uint32_t val)
74462306a36Sopenharmony_ci{
74562306a36Sopenharmony_ci	return ((val) << DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_PKT_PER_LINE__SHIFT) & DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_PKT_PER_LINE__MASK;
74662306a36Sopenharmony_ci}
74762306a36Sopenharmony_ci#define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_EOL_BYTE_NUM__MASK	0x00300000
74862306a36Sopenharmony_ci#define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_EOL_BYTE_NUM__SHIFT	20
74962306a36Sopenharmony_cistatic inline uint32_t DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_EOL_BYTE_NUM(uint32_t val)
75062306a36Sopenharmony_ci{
75162306a36Sopenharmony_ci	return ((val) << DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_EOL_BYTE_NUM__SHIFT) & DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_EOL_BYTE_NUM__MASK;
75262306a36Sopenharmony_ci}
75362306a36Sopenharmony_ci#define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM1_EN		0x00010000
75462306a36Sopenharmony_ci#define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_DATATYPE__MASK	0x00003f00
75562306a36Sopenharmony_ci#define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_DATATYPE__SHIFT	8
75662306a36Sopenharmony_cistatic inline uint32_t DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_DATATYPE(uint32_t val)
75762306a36Sopenharmony_ci{
75862306a36Sopenharmony_ci	return ((val) << DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_DATATYPE__SHIFT) & DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_DATATYPE__MASK;
75962306a36Sopenharmony_ci}
76062306a36Sopenharmony_ci#define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_PKT_PER_LINE__MASK	0x000000c0
76162306a36Sopenharmony_ci#define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_PKT_PER_LINE__SHIFT	6
76262306a36Sopenharmony_cistatic inline uint32_t DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_PKT_PER_LINE(uint32_t val)
76362306a36Sopenharmony_ci{
76462306a36Sopenharmony_ci	return ((val) << DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_PKT_PER_LINE__SHIFT) & DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_PKT_PER_LINE__MASK;
76562306a36Sopenharmony_ci}
76662306a36Sopenharmony_ci#define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_EOL_BYTE_NUM__MASK	0x00000030
76762306a36Sopenharmony_ci#define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_EOL_BYTE_NUM__SHIFT	4
76862306a36Sopenharmony_cistatic inline uint32_t DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_EOL_BYTE_NUM(uint32_t val)
76962306a36Sopenharmony_ci{
77062306a36Sopenharmony_ci	return ((val) << DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_EOL_BYTE_NUM__SHIFT) & DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_EOL_BYTE_NUM__MASK;
77162306a36Sopenharmony_ci}
77262306a36Sopenharmony_ci#define DSI_COMMAND_COMPRESSION_MODE_CTRL_STREAM0_EN		0x00000001
77362306a36Sopenharmony_ci
77462306a36Sopenharmony_ci#define REG_DSI_COMMAND_COMPRESSION_MODE_CTRL2			0x000002a8
77562306a36Sopenharmony_ci#define DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM1_SLICE_WIDTH__MASK	0xffff0000
77662306a36Sopenharmony_ci#define DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM1_SLICE_WIDTH__SHIFT	16
77762306a36Sopenharmony_cistatic inline uint32_t DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM1_SLICE_WIDTH(uint32_t val)
77862306a36Sopenharmony_ci{
77962306a36Sopenharmony_ci	return ((val) << DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM1_SLICE_WIDTH__SHIFT) & DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM1_SLICE_WIDTH__MASK;
78062306a36Sopenharmony_ci}
78162306a36Sopenharmony_ci#define DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM0_SLICE_WIDTH__MASK	0x0000ffff
78262306a36Sopenharmony_ci#define DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM0_SLICE_WIDTH__SHIFT	0
78362306a36Sopenharmony_cistatic inline uint32_t DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM0_SLICE_WIDTH(uint32_t val)
78462306a36Sopenharmony_ci{
78562306a36Sopenharmony_ci	return ((val) << DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM0_SLICE_WIDTH__SHIFT) & DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM0_SLICE_WIDTH__MASK;
78662306a36Sopenharmony_ci}
78762306a36Sopenharmony_ci
78862306a36Sopenharmony_ci
78962306a36Sopenharmony_ci#endif /* DSI_XML */
790