coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
mt6391.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef __SOC_MEDIATEK_MT8173_MT6391_H__
4 #define __SOC_MEDIATEK_MT8173_MT6391_H__
5 
6 #include <types.h>
7 
8 /*
9  * PMIC definition
10  */
11 enum {
17  PMIC6397_E4_CID_CODE = 0x4097
18 };
19 
20 /*
21  * PMIC Register Index
22  */
23 
24 /* PCHR Register Definition */
25 enum {
26  PMIC_RG_CHR_CON1 = 0x0002,
27  PMIC_RG_CHR_CON6 = 0x000C,
32 };
33 
34 /* TOP Register Definition */
35 enum{
36  PMIC_RG_CID = 0x0100,
47  PMIC_RG_OC_CTL1 = 0x0134,
53  PMIC_RG_TOP_CKCON3 = 0x01D4
54 };
55 
56 /* INT Register Definition */
57 enum{
58  PMIC_RG_INT_CON0 = 0x0178,
59  PMIC_RG_INT_CON1 = 0x017E,
60 };
61 
62 /* FQMTR Register Definition */
63 enum{
66  PMIC_RG_FQMTR_CON2 = 0x018C
67 };
68 
69 /* EFUSE Register Definition */
70 enum{
75 };
76 
77 /* BUCK Register Definition */
78 enum{
133  PMIC_RG_BUCK_K_CON0 = 0x039E
134 };
135 
136 /* ANALDO Register Definition */
137 enum{
141 };
142 
143 /* DIGLDO Register Definition */
144 enum{
155  PMIC_RG_DIGLDO_CON33 = 0x045A
156 };
157 
158 /* STRUP Register Definition */
159 enum{
164  PMIC_RG_STRUP_CON10 = 0x0512
165 };
166 
167 /* AUXADC Register Definition */
168 enum{
169  PMIC_RG_AUXADC_CON14 = 0x055E
170 };
171 
172 /* Driver Register Definition */
173 enum{
175  PMIC_RG_KPLED_CON0 = 0x0566
176 };
177 
178 /* SPK Register Definition */
179 enum{
184  PMIC_RG_SPK_CON9 = 0x0612
185 };
186 
187 /* FGADC Register Definition */
188 enum{
192  PMIC_RG_FGADC_CON18 = 0x063C
193 };
194 
195 /* AUDDAC Register Definition */
196 enum{
198  PMIC_RG_AUD_NCP0 = 0x071A
199 };
200 
201 /* DCXO Register Definition */
202 enum{
208  PMIC_RG_DCXO_POR2_CON3 = 0x85c
209 };
210 
211 /* TOP MASK and SHIFT Definition */
212 enum{
228 };
229 
230 /* ANALDO MASK and SHIFT Definition */
231 enum{
236 };
237 
238 /* DCXO MASK and SHIFT Definition */
239 enum{
250 };
251 
252 enum ldo_power {
253  LDO_VCAMD = 0, /* VGP1 */
254  LDO_VGP2 = 1, /* VGP2 */
255  LDO_VCAMAF = 2, /* VGP3 */
256  LDO_VGP4 = 3,
257  LDO_VGP5 = 4,
258  LDO_VGP6 = 5,
259  /* special, not part of main register set */
261 };
262 
264  LDO_1P2 = 0,
265  LDO_1P3 = 1,
266  LDO_1P5 = 2,
267  LDO_1P8 = 3,
268  LDO_2P5 = 4,
269  LDO_2P8 = 5,
270  LDO_3P0 = 6,
271  LDO_3P3 = 7,
273 
274  LDO_1P22, /* only VCAMD */
275  LDO_1P0, /* only VCAMIO */
276  LDO_2P0, /* only VGP5 */
277 };
278 
279 /*
280  * PMIC Exported Function
281  */
283 void mt6391_configure_ldo(enum ldo_power ldo, enum ldo_voltage vsel);
285 void mt6391_init(void);
286 
287 /*
288  * PMIC GPIO REGISTER DEFINITION
289  */
290 enum {
297 };
298 
302 };
303 
307 };
308 
309 enum {
351 };
352 
353 /*
354  * PMIC GPIO Exported Function
355  */
357 void mt6391_gpio_set(u32 gpio, int value);
361 void mt6391_gpio_output(u32 gpio, int value);
363  enum mt6391_pull_select select);
364 void mt6391_gpio_set_mode(u32 gpio, int mode);
365 
366 #endif /* __SOC_MEDIATEK_MT8173_MT6391_H__ */
pte_t value
Definition: mmu.c:91
@ MT6391_GPIO_PULLSEL_BASE
Definition: mt6391.h:293
@ MT6391_GPIO_DIR_BASE
Definition: mt6391.h:291
@ MT6391_GPIO_PULLEN_BASE
Definition: mt6391.h:292
@ MT6391_GPIO_DOUT_BASE
Definition: mt6391.h:294
@ MT6391_GPIO_DIN_BASE
Definition: mt6391.h:295
@ MT6391_GPIO_MODE_BASE
Definition: mt6391.h:296
@ PMIC_RG_DCXO_LDO_BB_V_SHIFT
Definition: mt6391.h:249
@ PMIC_RG_DCXO_ATTEN_BB_SHIFT
Definition: mt6391.h:247
@ PMIC_RG_DCXO_MANUAL_SYNC_EN_SHIFT
Definition: mt6391.h:245
@ PMIC_RG_DCXO_MANUAL_SYNC_EN_MASK
Definition: mt6391.h:244
@ PMIC_RG_DCXO_MANUAL_C1C2_SYNC_EN_SHIFT
Definition: mt6391.h:243
@ PMIC_RG_DCXO_C2_UNTRIM_MASK
Definition: mt6391.h:240
@ PMIC_RG_DCXO_ATTEN_BB_MASK
Definition: mt6391.h:246
@ PMIC_RG_DCXO_LDO_BB_V_MASK
Definition: mt6391.h:248
@ PMIC_RG_DCXO_C2_UNTRIM_SHIFT
Definition: mt6391.h:241
@ PMIC_RG_DCXO_MANUAL_C1C2_SYNC_EN_MASK
Definition: mt6391.h:242
@ PMIC_RG_VCAMA_VOSEL_SHIFT
Definition: mt6391.h:233
@ PMIC_RG_VCAMA_EN_SHIFT
Definition: mt6391.h:235
@ PMIC_RG_VCAMA_VOSEL_MASK
Definition: mt6391.h:232
@ PMIC_RG_VCAMA_EN_MASK
Definition: mt6391.h:234
mt6391_pull_select
Definition: mt6391.h:304
@ MT6391_GPIO_PULL_DOWN
Definition: mt6391.h:305
@ MT6391_GPIO_PULL_UP
Definition: mt6391.h:306
@ PMIC_RG_SPK_CON5
Definition: mt6391.h:183
@ PMIC_RG_SPK_CON0
Definition: mt6391.h:180
@ PMIC_RG_SPK_CON2
Definition: mt6391.h:181
@ PMIC_RG_SPK_CON9
Definition: mt6391.h:184
@ PMIC_RG_SPK_CON3
Definition: mt6391.h:182
void mt6391_enable_reset_when_ap_resets(void)
Definition: mt6391.c:84
@ PMIC_RG_INT_CON0
Definition: mt6391.h:58
@ PMIC_RG_INT_CON1
Definition: mt6391.h:59
@ PMIC_RG_DIGLDO_CON24
Definition: mt6391.h:152
@ PMIC_RG_DIGLDO_CON5
Definition: mt6391.h:145
@ PMIC_RG_DIGLDO_CON33
Definition: mt6391.h:155
@ PMIC_RG_DIGLDO_CON6
Definition: mt6391.h:146
@ PMIC_RG_DIGLDO_CON10
Definition: mt6391.h:148
@ PMIC_RG_DIGLDO_CON27
Definition: mt6391.h:153
@ PMIC_RG_DIGLDO_CON19
Definition: mt6391.h:149
@ PMIC_RG_DIGLDO_CON22
Definition: mt6391.h:151
@ PMIC_RG_DIGLDO_CON8
Definition: mt6391.h:147
@ PMIC_RG_DIGLDO_CON20
Definition: mt6391.h:150
@ PMIC_RG_DIGLDO_CON30
Definition: mt6391.h:154
@ PMIC6397_E4_CID_CODE
Definition: mt6391.h:17
@ PMIC6397_E1_CID_CODE
Definition: mt6391.h:14
@ PMIC6397_E3_CID_CODE
Definition: mt6391.h:16
@ PMIC6397_E2_CID_CODE
Definition: mt6391.h:15
@ PMIC6391_E1_CID_CODE
Definition: mt6391.h:12
@ PMIC6391_E2_CID_CODE
Definition: mt6391.h:13
void mt6391_configure_ldo(enum ldo_power ldo, enum ldo_voltage vsel)
Definition: mt6391.c:46
void mt6391_gpio_set_pull(u32 gpio, enum mt6391_pull_enable enable, enum mt6391_pull_select select)
Definition: mt6391.c:480
@ PMIC_RG_SYSRSTB_EN_MASK
Definition: mt6391.h:222
@ PMIC_RG_PWRKEY_DEB_SHIFT
Definition: mt6391.h:225
@ PMIC_RG_AP_RST_DIS_SHIFT
Definition: mt6391.h:215
@ PMIC_RG_STRUP_MAN_RST_EN_MASK
Definition: mt6391.h:220
@ PMIC_RG_TOP_RST_MISC_RSV_3_SHIFT
Definition: mt6391.h:219
@ PMIC_RG_SYSRSTB_EN_SHIFT
Definition: mt6391.h:223
@ PMIC_RG_RST_PART_SEL_SHIFT
Definition: mt6391.h:217
@ PMIC_RG_TOP_RST_MISC_RSV_3_MASK
Definition: mt6391.h:218
@ PMIC_RG_AP_RST_DIS_MASK
Definition: mt6391.h:214
@ PMIC_RG_STRUP_MAN_RST_EN_SHIFT
Definition: mt6391.h:221
@ PMIC_RG_RST_PART_SEL_MASK
Definition: mt6391.h:216
@ PMIC_RG_HOMEKEY_DEB_MASK
Definition: mt6391.h:226
@ PMIC_RG_HOMEKEY_DEB_SHIFT
Definition: mt6391.h:227
@ PMIC_RG_PWRKEY_DEB_MASK
Definition: mt6391.h:224
@ PMIC_RG_FQMTR_PDN_SHIFT
Definition: mt6391.h:213
@ PMIC_RG_VSRMCA15_CON8
Definition: mt6391.h:93
@ PMIC_RG_VSRMCA7_CON11
Definition: mt6391.h:125
@ PMIC_RG_BUCK_CON8
Definition: mt6391.h:80
@ PMIC_RG_VSRMCA15_CON18
Definition: mt6391.h:97
@ PMIC_RG_VCORE_CON18
Definition: mt6391.h:107
@ PMIC_RG_VCA15_CON11
Definition: mt6391.h:87
@ PMIC_RG_VPCA7_CON5
Definition: mt6391.h:112
@ PMIC_RG_VCORE_CON6
Definition: mt6391.h:102
@ PMIC_RG_VSRMCA15_CON21
Definition: mt6391.h:100
@ PMIC_RG_VCORE_CON10
Definition: mt6391.h:105
@ PMIC_RG_VSRMCA15_CON5
Definition: mt6391.h:90
@ PMIC_RG_VDRM_CON10
Definition: mt6391.h:131
@ PMIC_RG_VCORE_CON9
Definition: mt6391.h:104
@ PMIC_RG_BUCK_K_CON0
Definition: mt6391.h:133
@ PMIC_RG_VDRM_CON18
Definition: mt6391.h:132
@ PMIC_RG_VGPU_CON8
Definition: mt6391.h:109
@ PMIC_RG_VCA15_CON12
Definition: mt6391.h:88
@ PMIC_RG_VDRM_CON9
Definition: mt6391.h:130
@ PMIC_RG_VSRMCA15_CON19
Definition: mt6391.h:98
@ PMIC_RG_VCA15_CON9
Definition: mt6391.h:85
@ PMIC_RG_VPCA7_CON6
Definition: mt6391.h:113
@ PMIC_RG_VPCA7_CON7
Definition: mt6391.h:114
@ PMIC_RG_VSRMCA15_CON9
Definition: mt6391.h:94
@ PMIC_RG_VSRMCA7_CON6
Definition: mt6391.h:121
@ PMIC_RG_VCA15_CON10
Definition: mt6391.h:86
@ PMIC_RG_VGPU_CON18
Definition: mt6391.h:110
@ PMIC_RG_VSRMCA15_CON11
Definition: mt6391.h:96
@ PMIC_RG_VCA15_CON5
Definition: mt6391.h:82
@ PMIC_RG_VSRMCA7_CON8
Definition: mt6391.h:122
@ PMIC_RG_VSRMCA7_CON21
Definition: mt6391.h:129
@ PMIC_RG_VCORE_CON8
Definition: mt6391.h:103
@ PMIC_RG_VSRMCA15_CON20
Definition: mt6391.h:99
@ PMIC_RG_VCORE_CON11
Definition: mt6391.h:106
@ PMIC_RG_VSRMCA7_CON9
Definition: mt6391.h:123
@ PMIC_RG_VPCA7_CON11
Definition: mt6391.h:118
@ PMIC_RG_VCORE_CON5
Definition: mt6391.h:101
@ PMIC_RG_VPCA7_CON10
Definition: mt6391.h:117
@ PMIC_RG_VIO18_CON18
Definition: mt6391.h:111
@ PMIC_RG_VCA15_CON1
Definition: mt6391.h:81
@ PMIC_RG_VCA15_CON8
Definition: mt6391.h:84
@ PMIC_RG_VCA15_CON7
Definition: mt6391.h:83
@ PMIC_RG_VPCA7_CON8
Definition: mt6391.h:115
@ PMIC_RG_VPCA7_CON18
Definition: mt6391.h:119
@ PMIC_RG_BUCK_CON3
Definition: mt6391.h:79
@ PMIC_RG_VCA15_CON18
Definition: mt6391.h:89
@ PMIC_RG_VSRMCA15_CON6
Definition: mt6391.h:91
@ PMIC_RG_VPCA7_CON9
Definition: mt6391.h:116
@ PMIC_RG_VSRMCA7_CON18
Definition: mt6391.h:126
@ PMIC_RG_VSRMCA15_CON10
Definition: mt6391.h:95
@ PMIC_RG_VSRMCA7_CON19
Definition: mt6391.h:127
@ PMIC_RG_VSRMCA15_CON7
Definition: mt6391.h:92
@ PMIC_RG_VSRMCA7_CON20
Definition: mt6391.h:128
@ PMIC_RG_VSRMCA7_CON10
Definition: mt6391.h:124
@ PMIC_RG_VGPU_CON1
Definition: mt6391.h:108
@ PMIC_RG_VSRMCA7_CON5
Definition: mt6391.h:120
void mt6391_gpio_input_pullup(u32 gpio)
Definition: mt6391.c:558
void mt6391_gpio_set_mode(u32 gpio, int mode)
Definition: mt6391.c:538
int mt6391_configure_ca53_voltage(int uv)
Definition: mt6391.c:16
mt6391_pull_enable
Definition: mt6391.h:299
@ MT6391_GPIO_PULL_ENABLE
Definition: mt6391.h:301
@ MT6391_GPIO_PULL_DISABLE
Definition: mt6391.h:300
@ PMIC_RG_FLASH_CON0
Definition: mt6391.h:174
@ PMIC_RG_KPLED_CON0
Definition: mt6391.h:175
void mt6391_init(void)
Definition: mt6391.c:416
@ MT6391_KP_ROW2
Definition: mt6391.h:332
@ MT6391_KP_COL1
Definition: mt6391.h:323
@ MT6391_KP_COL0
Definition: mt6391.h:322
@ MT6391_SPI_CLK
Definition: mt6391.h:315
@ MT6391_KP_COL4
Definition: mt6391.h:326
@ MT6391_AUD_DAT_MISO
Definition: mt6391.h:320
@ MT6391_KP_COL7
Definition: mt6391.h:329
@ MT6391_HDMISCK
Definition: mt6391.h:348
@ MT6391_KP_ROW1
Definition: mt6391.h:331
@ MT6391_KP_ROW0
Definition: mt6391.h:330
@ MT6391_KP_ROW7
Definition: mt6391.h:337
@ MT6391_AUD_DAT_MOSI
Definition: mt6391.h:321
@ MT6391_WRAP_EVENT
Definition: mt6391.h:314
@ MT6391_PWM
Definition: mt6391.h:340
@ MT6391_SRCLKEN_PERI
Definition: mt6391.h:312
@ MT6391_RTC32K_1V8
Definition: mt6391.h:313
@ MT6391_HTPLG
Definition: mt6391.h:349
@ MT6391_SCL1
Definition: mt6391.h:343
@ MT6391_SPI_MOSI
Definition: mt6391.h:317
@ MT6391_KP_ROW4
Definition: mt6391.h:334
@ MT6391_KP_COL5
Definition: mt6391.h:327
@ MT6391_SCL0
Definition: mt6391.h:341
@ MT6391_SPI_CSN
Definition: mt6391.h:316
@ MT6391_KP_ROW3
Definition: mt6391.h:333
@ MT6391_SCL2
Definition: mt6391.h:345
@ MT6391_KP_ROW5
Definition: mt6391.h:335
@ MT6391_KP_COL2
Definition: mt6391.h:324
@ MT6391_AUD_CLK_MOSI
Definition: mt6391.h:319
@ MT6391_KP_COL3
Definition: mt6391.h:325
@ MT6391_VMSEL1
Definition: mt6391.h:338
@ MT6391_SDA2
Definition: mt6391.h:346
@ MT6391_SDA1
Definition: mt6391.h:344
@ MT6391_KP_ROW6
Definition: mt6391.h:336
@ MT6391_SRCVOLTEN
Definition: mt6391.h:311
@ MT6391_KP_COL6
Definition: mt6391.h:328
@ MT6391_SDA0
Definition: mt6391.h:342
@ MT6391_SPI_MISO
Definition: mt6391.h:318
@ MT6391_PMU_INT
Definition: mt6391.h:310
@ MT6391_HDMISD
Definition: mt6391.h:347
@ MT6391_VMSEL2
Definition: mt6391.h:339
@ MT6391_CEC
Definition: mt6391.h:350
ldo_voltage
Definition: mt6391.h:263
@ LDO_2P5
Definition: mt6391.h:268
@ LDO_1P2
Definition: mt6391.h:264
@ LDO_1P3
Definition: mt6391.h:265
@ LDO_3P0
Definition: mt6391.h:270
@ LDO_2P0
Definition: mt6391.h:276
@ LDO_1P8
Definition: mt6391.h:267
@ LDO_3P3
Definition: mt6391.h:271
@ LDO_1P5
Definition: mt6391.h:266
@ LDO_1P0
Definition: mt6391.h:275
@ LDO_2P8
Definition: mt6391.h:269
@ LDO_NUM_VOLTAGES
Definition: mt6391.h:272
@ LDO_1P22
Definition: mt6391.h:274
@ PMIC_RG_EFUSE_DOUT_304_319
Definition: mt6391.h:74
@ PMIC_RG_EFUSE_DOUT_256_271
Definition: mt6391.h:71
@ PMIC_RG_EFUSE_DOUT_288_303
Definition: mt6391.h:73
@ PMIC_RG_EFUSE_DOUT_272_287
Definition: mt6391.h:72
@ PMIC_RG_OCSTATUS0
Definition: mt6391.h:49
@ PMIC_RG_TOP_CKTST2
Definition: mt6391.h:45
@ PMIC_RG_CHRSTATUS
Definition: mt6391.h:48
@ PMIC_RG_TOP_CKPDN2
Definition: mt6391.h:38
@ PMIC_RG_TOP_CKPDN3
Definition: mt6391.h:52
@ PMIC_RG_TOP_CKPDN
Definition: mt6391.h:37
@ PMIC_RG_OC_DEG_EN
Definition: mt6391.h:46
@ PMIC_RG_TOP_CKCON2
Definition: mt6391.h:43
@ PMIC_RG_OCSTATUS2
Definition: mt6391.h:51
@ PMIC_RG_TOP_CKTST1
Definition: mt6391.h:44
@ PMIC_RG_CID
Definition: mt6391.h:36
@ PMIC_RG_OCSTATUS1
Definition: mt6391.h:50
@ PMIC_RG_WRP_CKPDN
Definition: mt6391.h:40
@ PMIC_RG_TOP_RST_CON
Definition: mt6391.h:39
@ PMIC_RG_OC_CTL1
Definition: mt6391.h:47
@ PMIC_RG_TOP_RST_MISC
Definition: mt6391.h:41
@ PMIC_RG_TOP_CKCON1
Definition: mt6391.h:42
@ PMIC_RG_TOP_CKCON3
Definition: mt6391.h:53
@ PMIC_RG_STRUP_CON10
Definition: mt6391.h:164
@ PMIC_RG_STRUP_CON0
Definition: mt6391.h:160
@ PMIC_RG_STRUP_CON5
Definition: mt6391.h:162
@ PMIC_RG_STRUP_CON2
Definition: mt6391.h:161
@ PMIC_RG_STRUP_CON7
Definition: mt6391.h:163
void mt6391_gpio_set(u32 gpio, int value)
Definition: mt6391.c:520
@ PMIC_RG_ANALDO_CON0
Definition: mt6391.h:138
@ PMIC_RG_ANALDO_CON6
Definition: mt6391.h:140
@ PMIC_RG_ANALDO_CON2
Definition: mt6391.h:139
@ PMIC_RG_FGADC_CON17
Definition: mt6391.h:191
@ PMIC_RG_FGADC_CON16
Definition: mt6391.h:190
@ PMIC_RG_FGADC_CON18
Definition: mt6391.h:192
@ PMIC_RG_FGADC_CON13
Definition: mt6391.h:189
@ PMIC_RG_FQMTR_CON0
Definition: mt6391.h:64
@ PMIC_RG_FQMTR_CON2
Definition: mt6391.h:66
@ PMIC_RG_FQMTR_CON1
Definition: mt6391.h:65
@ PMIC_RG_AUXADC_CON14
Definition: mt6391.h:169
void mt6391_gpio_output(u32 gpio, int value)
Definition: mt6391.c:574
int mt6391_gpio_get(u32 gpio)
Definition: mt6391.c:503
@ PMIC_RG_AUD_NCP0
Definition: mt6391.h:198
@ PMIC_RG_AUDLDO_CFG0
Definition: mt6391.h:197
@ PMIC_RG_CHR_CON23
Definition: mt6391.h:31
@ PMIC_RG_CHR_CON18
Definition: mt6391.h:29
@ PMIC_RG_CHR_CON1
Definition: mt6391.h:26
@ PMIC_RG_CHR_CON21
Definition: mt6391.h:30
@ PMIC_RG_CHR_CON6
Definition: mt6391.h:27
@ PMIC_RG_CHR_CON13
Definition: mt6391.h:28
void mt6391_gpio_input(u32 gpio)
Definition: mt6391.c:566
ldo_power
Definition: mt6391.h:252
@ LDO_VCAMD
Definition: mt6391.h:253
@ LDO_VCAMA
Definition: mt6391.h:260
@ LDO_VGP5
Definition: mt6391.h:257
@ LDO_VGP4
Definition: mt6391.h:256
@ LDO_VGP2
Definition: mt6391.h:254
@ LDO_VCAMAF
Definition: mt6391.h:255
@ LDO_VGP6
Definition: mt6391.h:258
void mt6391_gpio_input_pulldown(u32 gpio)
Definition: mt6391.c:550
@ PMIC_RG_DCXO_POR2_CON3
Definition: mt6391.h:208
@ PMIC_RG_DCXO_MANUAL_CON1
Definition: mt6391.h:205
@ PMIC_RG_DCXO_FORCE_MODE1
Definition: mt6391.h:207
@ PMIC_RG_DCXO_ANALOG_CON1
Definition: mt6391.h:206
@ PMIC_RG_PMIC_RG_RG_DCXO_CON0
Definition: mt6391.h:203
@ PMIC_RG_DCXO_CON2
Definition: mt6391.h:204
uint32_t u32
Definition: stdint.h:51
Definition: pinmux.c:36