3 #ifndef __COREBOOT_SRC_SOC_ROCKCHIP_COMMON_INCLUDE_SOC_SPI_H
4 #define __COREBOOT_SRC_SOC_ROCKCHIP_COMMON_INCLUDE_SOC_SPI_H
35 #define SF_READ_DATA_CMD 0x3
39 #define SPI_DFS_OFFSET 0
40 #define SPI_DFS_MASK 0x3
41 #define SPI_DFS_4BIT 0x00
42 #define SPI_DFS_8BIT 0x01
43 #define SPI_DFS_16BIT 0x02
44 #define SPI_DFS_RESV 0x03
47 #define SPI_CFS_OFFSET 2
48 #define SPI_CFS_MASK 0xF
51 #define SPI_SCPH_OFFSET 6
52 #define SPI_SCPH_MASK 0x1
55 #define SPI_SCPH_TOGMID 0
58 #define SPI_SCPH_TOGSTA 1
61 #define SPI_SCOL_OFFSET 7
62 #define SPI_SCOL_MASK 0x1
65 #define SPI_SCOL_LOW 0
68 #define SPI_SCOL_HIGH 1
71 #define SPI_CSM_OFFSET 8
72 #define SPI_CSM_MASK 0x3
75 #define SPI_CSM_KEEP 0x00
81 #define SPI_CSM_HALF 0x01
84 #define SPI_CSM_ONE 0x02
85 #define SPI_CSM_RESV 0x03
88 #define SPI_SSN_DELAY_OFFSET 10
89 #define SPI_SSN_DELAY_MASK 0x1
91 #define SPI_SSN_DELAY_HALF 0x00
93 #define SPI_SSN_DELAY_ONE 0x01
96 #define SPI_SEM_OFFSET 11
97 #define SPI_SEM_MASK 0x1
99 #define SPI_SEM_LITTLE 0x00
101 #define SPI_SEM_BIG 0x01
104 #define SPI_FBM_OFFSET 12
105 #define SPI_FBM_MASK 0x1
107 #define SPI_FBM_MSB 0x00
109 #define SPI_FBM_LSB 0x01
112 #define SPI_HALF_WORLD_TX_OFFSET 13
113 #define SPI_HALF_WORLD_MASK 0x1
115 #define SPI_APB_16BIT 0x00
117 #define SPI_APB_8BIT 0x01
120 #define SPI_RXDSD_OFFSET 14
121 #define SPI_RXDSD_MASK 0x3
124 #define SPI_FRF_OFFSET 16
125 #define SPI_FRF_MASK 0x3
127 #define SPI_FRF_SPI 0x00
129 #define SPI_FRF_SSP 0x01
131 #define SPI_FRF_MICROWIRE 0x02
132 #define SPI_FRF_RESV 0x03
135 #define SPI_TMOD_OFFSET 18
136 #define SPI_TMOD_MASK 0x3
138 #define SPI_TMOD_TR 0x00
140 #define SPI_TMOD_TO 0x01
142 #define SPI_TMOD_RO 0x02
143 #define SPI_TMOD_RESV 0x03
146 #define SPI_OMOD_OFFSET 20
147 #define SPI_OMOD_MASK 0x1
149 #define SPI_OMOD_MASTER 0x00
151 #define SPI_OMOD_SLAVE 0x01
156 #define TXFLR_LEVEL_MASK 0x3f
159 #define RXFLR_LEVEL_MASK 0x3f
163 #define SR_BUSY (1 << 0)
164 #define SR_TF_FULL (1 << 1)
165 #define SR_TF_EMPT (1 << 2)
166 #define SR_RF_EMPT (1 << 3)
167 #define SR_RF_FULL (1 << 4)
170 #define SPI_INT_TXEI (1 << 0)
171 #define SPI_INT_TXOI (1 << 1)
172 #define SPI_INT_RXUI (1 << 2)
173 #define SPI_INT_RXOI (1 << 3)
174 #define SPI_INT_RXFI (1 << 4)
177 #define SPI_DMACR_TX_ENABLE (1 << 1)
178 #define SPI_DMACR_RX_ENABLE (1 << 0)
181 #define SPI_CLEAR_INT_ALL (1 << 0)
182 #define SPI_CLEAR_INT_RXUI (1 << 1)
183 #define SPI_CLEAR_INT_RXOI (1 << 2)
184 #define SPI_CLEAR_INT_TXOI (1 << 3)
check_member(tegra_spi_regs, spare_ctl, 0x18c)
void rockchip_spi_set_sample_delay(unsigned int bus, unsigned int delay_ns)
void rockchip_spi_init(unsigned int bus, unsigned int speed_hz)
u32 reserved[(0x400-0x48)/4]