coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
pmif_spi.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef __SOC_MEDIATEK_PMIF_SPI_H__
4 #define __SOC_MEDIATEK_PMIF_SPI_H__
5 
6 #include <soc/addressmap.h>
7 #include <soc/pmif.h>
8 #include <types.h>
9 
29 };
30 
31 check_member(mtk_pmicspi_mst_regs, other_busy_sta_0, 0x10);
35 
36 static struct mtk_pmicspi_mst_regs * const mtk_pmicspi_mst = (void *)PMICSPI_MST_BASE;
37 
38 /* PMIC registers */
39 enum {
40  PMIC_BASE = 0x0000,
54  PMIC_INT_STA = PMIC_BASE + 0x0452,
58 };
59 
60 #define PMIF_SPI_HW_INF 0x307F
61 #define PMIF_SPI_MD BIT(8)
62 #define PMIF_SPI_AP_SECURE BIT(9)
63 #define PMIF_SPI_AP BIT(10)
64 #define PMIF_SPI_STAUPD BIT(14)
65 #define PMIF_SPI_TSX_HW BIT(19)
66 #define PMIF_SPI_DCXO_HW BIT(20)
67 
68 #define DEFAULT_SLVID 0
69 
70 #define PMIF_CMD_STA BIT(2)
71 #define SPIMST_STA BIT(9)
72 
73 enum {
74  SPI_CLK = 0x1,
75  SPI_CSN = 0x1 << 1,
76  SPI_MOSI = 0x1 << 2,
77  SPI_MISO = 0x1 << 3,
81 };
82 
83 enum {
84  SLV_IO_4_MA = 0x8,
85 };
86 
87 enum {
94 };
95 
96 enum {
97  OP_WR = 0x1,
98  OP_CSH = 0x0,
99  OP_CSL = 0x1,
100  OP_OUTS = 0x8,
101 };
102 
103 enum {
106 };
107 
108 enum {
110 };
111 
112 enum {
115 };
116 
117 int pmif_spi_init(struct pmif *arb);
118 void pmif_spi_iocfg(void);
119 #endif /* __SOC_MEDIATEK_PMIF_SPI_H__ */
@ PMIC_DEW_CRC_EN
Definition: pmif_spi.h:49
@ PMIC_DEW_READ_TEST
Definition: pmif_spi.h:47
@ PMIC_DEW_DIO_EN
Definition: pmif_spi.h:46
@ PMIC_DEW_WRITE_TEST
Definition: pmif_spi.h:48
@ PMIC_AUXADC_ADC7
Definition: pmif_spi.h:55
@ PMIC_INT_STA
Definition: pmif_spi.h:54
@ PMIC_DEW_RDDMY_NO
Definition: pmif_spi.h:51
@ PMIC_AUXADC_RQST0
Definition: pmif_spi.h:57
@ PMIC_FILTER_CON0
Definition: pmif_spi.h:43
@ PMIC_GPIO_PULLEN0_CLR
Definition: pmif_spi.h:44
@ PMIC_SMT_CON1
Definition: pmif_spi.h:41
@ PMIC_DEW_CRC_VAL
Definition: pmif_spi.h:50
@ PMIC_AUXADC_ADC10
Definition: pmif_spi.h:56
@ PMIC_RG_SPI_CON2
Definition: pmif_spi.h:52
@ PMIC_DRV_CON1
Definition: pmif_spi.h:42
@ PMIC_SPISLV_KEY
Definition: pmif_spi.h:53
@ PMIC_BASE
Definition: pmif_spi.h:40
@ PMIC_RG_SPI_CON0
Definition: pmif_spi.h:45
int pmif_spi_init(struct pmif *arb)
Definition: pmif_spi.c:275
@ SLV_IO_4_MA
Definition: pmif_spi.h:84
check_member(mtk_pmicspi_mst_regs, other_busy_sta_0, 0x10)
void pmif_spi_iocfg(void)
Definition: pmif_spi.c:10
@ DUMMY_READ_CYCLES
Definition: pmif_spi.h:109
@ OP_OUTS
Definition: pmif_spi.h:100
@ OP_WR
Definition: pmif_spi.h:97
@ OP_CSH
Definition: pmif_spi.h:98
@ OP_CSL
Definition: pmif_spi.h:99
@ SPI_MISO_SHIFT
Definition: pmif_spi.h:91
@ SPI_DRIVING
Definition: pmif_spi.h:92
@ SPI_MOSI_SHIFT
Definition: pmif_spi.h:90
@ SPI_CLK_SHIFT
Definition: pmif_spi.h:88
@ SPI_CSN_SHIFT
Definition: pmif_spi.h:89
@ SPI_SMT
Definition: pmif_spi.h:79
@ SPI_MISO
Definition: pmif_spi.h:77
@ SPI_FILTER
Definition: pmif_spi.h:78
@ SPI_PULL_DISABLE
Definition: pmif_spi.h:80
@ SPI_CLK
Definition: pmif_spi.h:74
@ SPI_CSN
Definition: pmif_spi.h:75
@ SPI_MOSI
Definition: pmif_spi.h:76
@ WRITE_TEST_VALUE
Definition: pmif_spi.h:105
@ DEFAULT_VALUE_READ_TEST
Definition: pmif_spi.h:104
static struct mtk_pmicspi_mst_regs *const mtk_pmicspi_mst
Definition: pmif_spi.h:36
@ E_CLK_EDGE
Definition: pmif_spi.h:113
@ E_CLK_LAST_SETTING
Definition: pmif_spi.h:114
@ PMICSPI_MST_BASE
Definition: addressmap.h:32
uint32_t u32
Definition: stdint.h:51
Definition: pll.c:115