coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
dsi.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef _DSI_REG_H_
4 #define _DSI_REG_H_
5 
6 #include <soc/dsi_common.h>
7 #include <types.h>
8 
9 /* DSI features */
10 #define MTK_DSI_MIPI_RATIO_NUMERATOR 102
11 #define MTK_DSI_MIPI_RATIO_DENOMINATOR 100
12 #define MTK_DSI_DATA_RATE_MIN_MHZ 50
13 #define MTK_DSI_HAVE_SIZE_CON 0
14 #define PIXEL_STREAM_CUSTOM_HEADER 0
15 
16 /* MIPITX is SOC specific and cannot live in common. */
17 
18 /* MIPITX_REG */
19 struct mipi_tx_regs {
46 };
47 
48 check_member(mipi_tx_regs, dsi_top_con, 0x40);
49 check_member(mipi_tx_regs, dsi_pll_pwr, 0x68);
50 
51 static struct mipi_tx_regs *const mipi_tx0 = (void *)MIPI_TX0_BASE;
52 static struct mipi_tx_regs *const mipi_tx1 = (void *)MIPI_TX0_BASE;
53 
54 /* MIPITX_DSI0_CON */
55 enum {
58  RG_DSI0_BCLK_SEL = (3 << 2),
59  RG_DSI0_LD_IDX_SEL = (7 << 4),
60  RG_DSI0_PHYCLK_SEL = (2 << 8),
63 };
64 
65 /* MIPITX_DSI0_CLOCK_LANE */
66 enum {
67  LDOOUT_EN = BIT(0),
68  CKLANE_EN = BIT(1),
69  IPLUS1 = BIT(2),
74  RT_CODE = (0xf << 8)
75 };
76 
77 /* MIPITX_DSI_TOP_CON */
78 enum {
84  RG_DSI_LNT_AIO_SEL = (7 << 8),
87  RG_DSI_PRESERVE = (7 << 13)
88 };
89 
90 /* MIPITX_DSI_BG_CON */
91 enum {
94  RG_DSI_BG_DIV = (0x3 << 2),
96  RG_DSI_V12_SEL = (7 << 5),
97  RG_DSI_V10_SEL = (7 << 8),
98  RG_DSI_V072_SEL = (7 << 11),
99  RG_DSI_V04_SEL = (7 << 14),
100  RG_DSI_V032_SEL = (7 << 17),
101  RG_DSI_V02_SEL = (7 << 20),
102  rsv_23 = BIT(23),
103  RG_DSI_BG_R1_TRIM = (0xf << 24),
104  RG_DSI_BG_R2_TRIM = (0xf << 28)
105 };
106 
107 /* MIPITX_DSI_PLL_CON0 */
108 enum {
117 };
118 
119 /* MIPITX_DSI_PLL_CON1 */
120 enum {
124  RG_DSI0_MPPLL_SDM_SSC_PRD = (0xffff << 16)
125 };
126 
127 /* MIPITX_DSI_PLL_PWR */
128 enum {
132 };
133 
134 /* LVDS_TX1_REG */
144 };
145 
146 static struct lvds_tx1_regs *const lvds_tx1 = (void *)(MIPI_TX0_BASE + 0x800);
147 static struct lvds_tx1_regs *const lvds_tx2 = (void *)(MIPI_TX1_BASE + 0x800);
148 
149 /* LVDS_VOPLL_CTRL3 */
150 enum {
158 };
159 
160 /* SOC specific functions */
161 void mtk_dsi_pin_drv_ctrl(void);
162 
163 #endif
#define BIT(nr)
Definition: ec_commands.h:45
@ MIPI_TX0_BASE
Definition: addressmap.h:33
@ MIPI_TX1_BASE
Definition: addressmap.h:34
@ RG_DSI0_MPPLL_PREDIV
Definition: dsi.h:110
@ RG_DSI0_MPPLL_TXDIV0
Definition: dsi.h:111
@ RG_DSI0_MPPLL_VOD_EN
Definition: dsi.h:116
@ RG_DSI0_MPPLL_PLL_EN
Definition: dsi.h:109
@ RG_DSI0_MPPLL_MONVC_EN
Definition: dsi.h:114
@ RG_DSI0_MPPLL_MONREF_EN
Definition: dsi.h:115
@ RG_DSI0_MPPLL_POSDIV
Definition: dsi.h:113
@ RG_DSI0_MPPLL_TXDIV1
Definition: dsi.h:112
@ RG_DSI0_MPPLL_SDM_SSC_PH_INIT
Definition: dsi.h:122
@ RG_DSI0_MPPLL_SDM_SSC_EN
Definition: dsi.h:123
@ RG_DSI0_MPPLL_SDM_SSC_PRD
Definition: dsi.h:124
@ RG_DSI0_MPPLL_SDM_FRA_EN
Definition: dsi.h:121
@ rsv_23
Definition: dsi.h:102
@ RG_DSI_BG_CKEN
Definition: dsi.h:93
@ RG_DSI_BG_R1_TRIM
Definition: dsi.h:103
@ RG_DSI_BG_CORE_EN
Definition: dsi.h:92
@ RG_DSI_V04_SEL
Definition: dsi.h:99
@ RG_DSI_V10_SEL
Definition: dsi.h:97
@ RG_DSI_V072_SEL
Definition: dsi.h:98
@ RG_DSI_BG_R2_TRIM
Definition: dsi.h:104
@ RG_DSI_V032_SEL
Definition: dsi.h:100
@ RG_DSI_BG_DIV
Definition: dsi.h:94
@ RG_DSI_V12_SEL
Definition: dsi.h:96
@ RG_DSI_BG_FAST_CHARGE
Definition: dsi.h:95
@ RG_DSI_V02_SEL
Definition: dsi.h:101
@ RG_DSI_MPPLL_SDM_PWR_ACK
Definition: dsi.h:131
@ RG_DSI_MPPLL_SDM_PWR_ON
Definition: dsi.h:129
@ RG_DSI_MPPLL_SDM_ISO_EN
Definition: dsi.h:130
@ RG_DSI_LNT_INTR_EN
Definition: dsi.h:79
@ RG_DSI_LNT_IMP_CAL_EN
Definition: dsi.h:81
@ RG_DSI_LNT_HS_BIAS_EN
Definition: dsi.h:80
@ RG_DSI_LNT_TESTMODE_EN
Definition: dsi.h:82
@ RG_DSI_PAD_TIE_LOW_EN
Definition: dsi.h:85
@ RG_DSI_PRESERVE
Definition: dsi.h:87
@ RG_DSI_LNT_AIO_SEL
Definition: dsi.h:84
@ RG_DSI_LNT_IMP_CAL_CODE
Definition: dsi.h:83
@ RG_DSI_DEBUG_INPUT_EN
Definition: dsi.h:86
static struct mipi_tx_regs *const mipi_tx1
Definition: dsi.h:52
@ RG_LVDSTX_21LEV
Definition: dsi.h:152
@ RG_DA_LVDSTX_PWR_ON
Definition: dsi.h:157
@ RG_DA_LVDS_ISO_EN
Definition: dsi.h:156
@ RG_LVDSTX_21EDG
Definition: dsi.h:151
@ RG_AD_LVDSTX_PWR_ACK
Definition: dsi.h:155
@ RG_LVDSTX_51EDG
Definition: dsi.h:153
@ RG_LVDSTX_51LEV
Definition: dsi.h:154
static struct mipi_tx_regs *const mipi_tx0
Definition: dsi.h:51
static struct lvds_tx1_regs *const lvds_tx1
Definition: dsi.h:146
static struct lvds_tx1_regs *const lvds_tx2
Definition: dsi.h:147
void mtk_dsi_pin_drv_ctrl(void)
Definition: dsi.c:116
check_member(mipi_tx_regs, dsi_top_con, 0x40)
@ LPCD_IMLUS
Definition: dsi.h:73
@ LPTX_IPLUS2
Definition: dsi.h:70
@ LPCD_IPLUS
Definition: dsi.h:72
@ CKLANE_EN
Definition: dsi.h:68
@ IPLUS1
Definition: dsi.h:69
@ RT_CODE
Definition: dsi.h:74
@ LDOOUT_EN
Definition: dsi.h:67
@ LPTX_IMINUS
Definition: dsi.h:71
@ RG_DSI0_BCLK_SEL
Definition: dsi.h:58
@ RG_DSI0_DSICLK_FREQ_SEL
Definition: dsi.h:61
@ RG_DSI0_LDOCORE_EN
Definition: dsi.h:56
@ RG_DSI0_CKG_LDOOUT_EN
Definition: dsi.h:57
@ RG_DSI0_LPTX_CLMP_EN
Definition: dsi.h:62
@ RG_DSI0_LD_IDX_SEL
Definition: dsi.h:59
@ RG_DSI0_PHYCLK_SEL
Definition: dsi.h:60
uint32_t u32
Definition: stdint.h:51
uint8_t u8
Definition: stdint.h:45
u32 vopll_ctl3
Definition: dsi.h:143
u32 vopll_ctl2
Definition: dsi.h:142
u32 lvdstx1_ctl2
Definition: dsi.h:137
u32 lvdstx1_ctl1
Definition: dsi.h:136
u32 lvdstx1_ctl4
Definition: dsi.h:139
u32 lvdstx1_ctl3
Definition: dsi.h:138
u32 lvdstx1_ctl5
Definition: dsi.h:140
u32 vopll_ctl1
Definition: dsi.h:141
u32 dsi_data_lane[4]
Definition: dsi.h:22
u32 dsi_sw_ctrl_con2
Definition: dsi.h:42
u8 reserved0[40]
Definition: dsi.h:23
u32 dsi_gpi_en
Definition: dsi.h:36
u32 dsi_pll_con2
Definition: dsi.h:29
u32 dsi_bg_con
Definition: dsi.h:25
u32 dsi_pll_con3
Definition: dsi.h:30
u32 dsi_gpi_pull
Definition: dsi.h:37
u32 dsi_pll_top
Definition: dsi.h:32
u32 dsi_rgs
Definition: dsi.h:35
u32 dsi_dbg_con
Definition: dsi.h:43
u32 dsi_pll_chg
Definition: dsi.h:31
u32 dsi_pll_con0
Definition: dsi.h:27
u8 reserved1[8]
Definition: dsi.h:26
u32 dsi_pll_con1
Definition: dsi.h:28
u32 dsi_pll_pwr
Definition: dsi.h:33
u32 dsi_phy_sel
Definition: dsi.h:38
u32 dsi_top_con
Definition: dsi.h:24
u32 dsi_con
Definition: dsi.h:20
u8 reserved2[4]
Definition: dsi.h:34
u32 dsi_clock_lane
Definition: dsi.h:21
u32 dsi_sw_ctrl_con1
Definition: dsi.h:41
u32 dsi_dbg_out
Definition: dsi.h:44
u32 dsi_sw_ctrl_en
Definition: dsi.h:39
u32 dsi_sw_ctrl_con0
Definition: dsi.h:40
u32 dsi_apb_async_sta
Definition: dsi.h:45