11 #include <soc/pci_devs.h>
24 #define PCI_DEV(SEGBUS, DEV, FN) ( \
25 (((SEGBUS) & 0xFFF) << 20) | \
26 (((DEV) & 0x1F) << 15) | \
27 (((FN) & 0x07) << 12))
29 #define IOSF_PCI_DEV PCI_DEV(0, SOC_DEV, SOC_FUNC)
32 #define IOSF_OPCODE(x) ((x) << 24)
33 #define IOSF_PORT(x) ((0xff & (x)) << 16)
34 #define IOSF_REG(x) ((0xff & (x)) << 8)
35 #define IOSF_REG_UPPER(x) (((~0xff) & (x)))
36 #define IOSF_BYTE_EN_0 0x10
37 #define IOSF_BYTE_EN_1 0x20
38 #define IOSF_BYTE_EN_2 0x40
39 #define IOSF_BYTE_EN_3 0x80
40 #define IOSF_BYTE_EN \
41 (IOSF_BYTE_EN_0 | IOSF_BYTE_EN_1 | IOSF_BYTE_EN_2 | IOSF_BYTE_EN_3)
66 #define IOSF_PORT_AUNIT 0x00
67 #define IOSF_PORT_CPU_BUS 0x02
68 #define IOSF_PORT_BUNIT 0x03
69 #define IOSF_PORT_PMC 0x04
70 #define IOSF_PORT_SEC 0x44
71 #define IOSF_PORT_0x45 0x45
72 #define IOSF_PORT_0x46 0x46
73 #define IOSF_PORT_0x47 0x47
74 #define IOSF_PORT_SCORE 0x48
75 #define IOSF_PORT_0x55 0x55
76 #define IOSF_PORT_0x58 0x58
77 #define IOSF_PORT_0x59 0x59
78 #define IOSF_PORT_0x5a 0x5a
79 #define IOSF_PORT_USHPHY 0x61
80 #define IOSF_PORT_SCC 0x63
81 #define IOSF_PORT_USBPHY 0x43
82 #define IOSF_PORT_LPSS 0xa0
83 #define IOSF_PORT_0xa2 0xa2
84 #define IOSF_PORT_SSUS 0xa8
85 #define IOSF_PORT_CCU 0xa9
88 #define IOSF_OP_READ_BUNIT 0x10
89 #define IOSF_OP_WRITE_BUNIT (IOSF_OP_READ_BUNIT | 1)
90 #define IOSF_OP_READ_PMC 0x06
91 #define IOSF_OP_WRITE_PMC (IOSF_OP_READ_PMC | 1)
92 #define IOSF_OP_READ_SCORE 0x06
93 #define IOSF_OP_WRITE_SCORE (IOSF_OP_READ_SCORE | 1)
94 #define IOSF_OP_READ_LPSS 0x06
95 #define IOSF_OP_WRITE_LPSS (IOSF_OP_READ_LPSS | 1)
96 #define IOSF_OP_READ_0x58 0x06
97 #define IOSF_OP_WRITE_0x58 (IOSF_OP_READ_0x58 | 1)
98 #define IOSF_OP_READ_SCC 0x06
99 #define IOSF_OP_WRITE_SCC (IOSF_OP_READ_SCC | 1)
100 #define IOSF_OP_READ_USBPHY 0x06
101 #define IOSF_OP_WRITE_USBPHY (IOSF_OP_READ_USBPHY | 1)
108 #define BUNIT_BMBOUND 0x25
116 #define BUNIT_BMBOUND_HI 0x26
117 #define BUNIT_MMCONF_REG 0x27
118 #define BUNIT_BMISC 0x28
120 #define BUNIT_SMRWAC 0x2d
121 #define BUNIT_SMRRL 0x2e
122 #define BUNIT_SMRRH 0x2f
125 #define SAI_IA_UNTRUSTED (1 << 0)
126 #define SAI_IA_SMM (1 << 2)
127 #define SAI_IA_BOOT (1 << 4)
132 #define LPSS_SIO_DMA1_CTL 0x280
133 #define LPSS_I2C1_CTL 0x288
134 #define LPSS_I2C2_CTL 0x290
135 #define LPSS_I2C3_CTL 0x298
136 #define LPSS_I2C4_CTL 0x2a0
137 #define LPSS_I2C5_CTL 0x2a8
138 #define LPSS_I2C6_CTL 0x2b0
139 #define LPSS_I2C7_CTL 0x2b8
140 #define LPSS_SIO_DMA2_CTL 0x240
141 #define LPSS_PWM1_CTL 0x248
142 #define LPSS_PWM2_CTL 0x250
143 #define LPSS_HSUART1_CTL 0x258
144 #define LPSS_HSUART2_CTL 0x260
145 #define LPSS_SPI_CTL 0x268
146 # define LPSS_CTL_ACPI_INT_EN (1 << 21)
147 # define LPSS_CTL_PCI_CFG_DIS (1 << 20)
148 # define LPSS_CTL_SNOOP (1 << 18)
149 # define LPSS_CTL_NOSNOOP (1 << 19)
150 # define LPSS_CTL_PM_CAP_PRSNT (1 << 1)
155 #define SCC_SD_CTL 0x504
156 #define SCC_SDIO_CTL 0x508
157 #define SCC_MMC_CTL 0x500
158 # define SCC_CTL_PCI_CFG_DIS (1 << 0)
159 # define SCC_CTL_ACPI_INT_EN (1 << 1)
164 #define LPE_PCICFGCTR1 0x0500
165 # define LPE_PCICFGCTR1_PCI_CFG_DIS (1 << 0)
166 # define LPE_PCICFGCTR1_ACPI_INT_EN (1 << 1)
171 #define USBPHY_COMPBG 0x7f04
178 #define REG_SCRIPT_IOSF(cmd_, unit_, reg_, mask_, value_, timeout_) \
179 _REG_SCRIPT_ENCODE_RAW(REG_SCRIPT_COMMAND_##cmd_, \
180 REG_SCRIPT_TYPE_IOSF, \
181 REG_SCRIPT_SIZE_32, \
182 reg_, mask_, value_, timeout_, unit_)
183 #define REG_IOSF_READ(unit_, reg_) \
184 REG_SCRIPT_IOSF(READ, unit_, reg_, 0, 0, 0)
185 #define REG_IOSF_WRITE(unit_, reg_, value_) \
186 REG_SCRIPT_IOSF(WRITE, unit_, reg_, 0, value_, 0)
187 #define REG_IOSF_RMW(unit_, reg_, mask_, value_) \
188 REG_SCRIPT_IOSF(RMW, unit_, reg_, mask_, value_, 0)
189 #define REG_IOSF_OR(unit_, reg_, value_) \
190 REG_IOSF_RMW(unit_, reg_, 0xffffffff, value_)
191 #define REG_IOSF_POLL(unit_, reg_, mask_, value_, timeout_) \
192 REG_SCRIPT_IOSF(POLL, unit_, reg_, mask_, value_, timeout_)
uint32_t iosf_score_read(int reg)
uint32_t iosf_lpss_read(int reg)
void iosf_lpss_write(int reg, uint32_t val)
void iosf_punit_write(int reg, uint32_t val)
uint32_t iosf_punit_read(int reg)
uint32_t iosf_scc_read(int reg)
uint32_t iosf_bunit_read(int reg)
uint32_t iosf_usbphy_read(int reg)
void iosf_usbphy_write(int reg, uint32_t val)
void iosf_port58_write(int reg, uint32_t val)
void iosf_score_write(int reg, uint32_t val)
void iosf_scc_write(int reg, uint32_t val)
void iosf_bunit_write(int reg, uint32_t val)
uint32_t iosf_port58_read(int reg)
unsigned long long uint64_t