coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
mt6359p.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef __SOC_MEDIATEK_MT6359P_H__
4 #define __SOC_MEDIATEK_MT6359P_H__
5 
6 #include <types.h>
7 
8 enum {
9  PMIC_HWCID = 0x0008,
10  PMIC_SWCID = 0x000a,
15  PMIC_OTP_CON0 = 0x038a,
16  PMIC_OTP_CON8 = 0x039a,
17  PMIC_OTP_CON11 = 0x03a0,
18  PMIC_OTP_CON12 = 0x03a2,
19  PMIC_OTP_CON13 = 0x03a4,
20  PMIC_PWRHOLD = 0x0a08,
21  PMIC_VCORE_DBG0 = 0x1526,
22  PMIC_VCORE_ELR0 = 0x152c,
23  PMIC_VGPU11_DBG0 = 0x15a6,
24  PMIC_VGPU11_ELR0 = 0x15b4,
25  PMIC_VS2_VOTER = 0x18aa,
27  PMIC_VS2_ELR0 = 0x18b4,
35 };
36 
37 struct pmic_setting {
38  unsigned short addr;
39  unsigned short val;
40  unsigned short mask;
41  unsigned char shift;
42 };
43 
44 struct pmic_efuse {
45  unsigned short efuse_bit;
46  unsigned short addr;
47  unsigned short mask;
48  unsigned char shift;
49 };
50 
51 enum {
57 };
58 
59 #define VM18_VOL_REG_SHIFT 8
60 #define VM18_VOL_OFFSET 600
61 
62 #define EFUSE_WAIT_US 5000
63 #define EFUSE_BUSY 1
64 
65 #define EFUSE_RG_VPA_OC_FT 78
66 
67 void mt6359p_init(void);
68 void mt6359p_buck_set_voltage(u32 buck_id, u32 buck_uv);
70 void mt6359p_set_vm18_voltage(u32 vm18_uv);
72 void mt6359p_write_field(u32 reg, u32 val, u32 mask, u32 shift);
73 void pmic_init_setting(void);
74 void pmic_lp_setting(void);
75 #endif /* __SOC_MEDIATEK_MT6359P_H__ */
void mt6359p_set_vm18_voltage(u32 vm18_uv)
Definition: mt6359p.c:230
void pmic_lp_setting(void)
Definition: mt6359p.c:293
@ MT6359P_SRAM_PROC2
Definition: mt6359p.h:54
@ MT6359P_SRAM_PROC1
Definition: mt6359p.h:53
@ MT6359P_MAX
Definition: mt6359p.h:56
@ MT6359P_CORE
Definition: mt6359p.h:55
@ MT6359P_GPU11
Definition: mt6359p.h:52
@ PMIC_TOP_RST_MISC_CLR
Definition: mt6359p.h:14
@ PMIC_BUCK_VPA_DLC_CON0
Definition: mt6359p.h:28
@ PMIC_TOP_CKPDN_CON0
Definition: mt6359p.h:11
@ PMIC_TOP_RST_MISC_SET
Definition: mt6359p.h:13
@ PMIC_BUCK_VPA_DLC_CON1
Definition: mt6359p.h:29
@ PMIC_VSRAM_PROC1_VOSEL1
Definition: mt6359p.h:32
@ PMIC_OTP_CON13
Definition: mt6359p.h:19
@ PMIC_SWCID
Definition: mt6359p.h:10
@ PMIC_OTP_CON0
Definition: mt6359p.h:15
@ PMIC_PWRHOLD
Definition: mt6359p.h:20
@ PMIC_VCORE_ELR0
Definition: mt6359p.h:22
@ PMIC_VSRAM_PROC2_VOSEL1
Definition: mt6359p.h:33
@ PMIC_VS2_ELR0
Definition: mt6359p.h:27
@ PMIC_VS2_VOTER_CFG
Definition: mt6359p.h:26
@ PMIC_VGPU11_DBG0
Definition: mt6359p.h:23
@ PMIC_VS2_VOTER
Definition: mt6359p.h:25
@ PMIC_VSRAM_PROC2_ELR
Definition: mt6359p.h:31
@ PMIC_VM18_ANA_CON0
Definition: mt6359p.h:34
@ PMIC_VSRAM_PROC1_ELR
Definition: mt6359p.h:30
@ PMIC_OTP_CON11
Definition: mt6359p.h:17
@ PMIC_VGPU11_ELR0
Definition: mt6359p.h:24
@ PMIC_HWCID
Definition: mt6359p.h:9
@ PMIC_TOP_CKHWEN_CON0
Definition: mt6359p.h:12
@ PMIC_VCORE_DBG0
Definition: mt6359p.h:21
@ PMIC_OTP_CON8
Definition: mt6359p.h:16
@ PMIC_OTP_CON12
Definition: mt6359p.h:18
void mt6359p_write_field(u32 reg, u32 val, u32 mask, u32 shift)
Definition: mt6359p.c:58
u32 mt6359p_buck_get_voltage(u32 buck_id)
Definition: mt6359p.c:193
void pmic_init_setting(void)
Definition: mt6359p.c:286
void mt6359p_init(void)
Definition: mt6359p.c:269
void mt6359p_buck_set_voltage(u32 buck_id, u32 buck_uv)
Definition: mt6359p.c:160
u32 mt6359p_get_vm18_voltage(void)
Definition: mt6359p.c:245
static const int mask[4]
Definition: gpio.c:308
uint32_t u32
Definition: stdint.h:51
unsigned short efuse_bit
Definition: mt6359p.h:45
unsigned short mask
Definition: mt6359p.h:47
unsigned short addr
Definition: mt6359p.h:46
unsigned char shift
Definition: mt6359p.h:48
unsigned short addr
Definition: mt6359p.h:38
unsigned short mask
Definition: mt6359p.h:40
unsigned char shift
Definition: mt6359p.h:41
unsigned short val
Definition: mt6359p.h:39
u8 val
Definition: sys.c:300