Go to the documentation of this file.
17 #ifndef CH_ASIC_SHASTA_H_
18 #define CH_ASIC_SHASTA_H_
24 #define SHASTA_CPU_ID_VALUE (0x2041)
26 #define SHASTA_DATA_MEM_SIZE 0x1000
27 #define SHASTA_DATA_MEM_ADDR 0x1000
28 #define SHASTA_PROG_MEM_SIZE 0x1800
29 #define SHASTA_PROG_MEM_ADDR 0xE800
30 #define SHASTA_PROG_MEM_BASE_ADDR 0xE000
32 #define SHASTA_CONFIG_PTR_ADDR SHASTA_DATA_MEM_ADDR
33 #define SHASTA_ALGO_INFO_PTR_ADDR (SHASTA_CONFIG_PTR_ADDR + 2)
35 #define SHASTA_CPU_TRIM_MAX (63)
37 #define SHASTA_SMCLK_CYCLES_PER_PMUT (16)
39 #define SHASTA_FCOUNT_CYCLES (128)
40 #define SHASTA_CPU_TRIM_DEFAULT (0x1E)
41 #define SHASTA_PMUT_TRIM_DEFAULT (0x4028)
44 #define SHASTA_REG_SYS_CTRL (0xA000)
46 #define SYS_CTRL_RESET_N (0x0001)
47 #define SYS_CTRL_DEBUG (0x0002)
48 #define SYS_CTRL_DUMMY_BYTES_BM (0x001C)
49 #define SYS_CTRL_POR_N (0x0020)
50 #define SYS_CTRL_SCAN_MODE_BM (0x0060)
53 #define SHASTA_DBG_REG_CPU_ID_LO (0x00)
54 #define SHASTA_DBG_REG_CPU_ID_HI (0x01)
55 #define SHASTA_DBG_REG_MEM_ADDR (0x02)
56 #define SHASTA_DBG_REG_MEM_DATA (0x03)
57 #define SHASTA_DBG_REG_CPU_CTL (0x04)
58 #define SHASTA_DBG_REG_CPU_STAT (0x05)
59 #define SHASTA_DBG_REG_MEM_CTL (0x06)
61 #define SHASTA_LAST_16BIT_DBG_REG SHASTA_DBG_REG_MEM_DATA
64 #define CPU_ID_LO_CHIP_VERSION_BM (0x00FF)
65 #define CPU_ID_LO_CHIP_ID_BM (0xFF00)
67 #define CPU_ID_HI_MPY (0x0001)
68 #define CPU_ID_HI_DMEM_SIZE_BM (0x03FE)
69 #define CPU_ID_HI_PMEM_SIZE_BM (0xFC00)
71 #define CPU_CTL_HALT (0x01)
72 #define CPU_CTL_RUN (0x02)
73 #define CPU_CTL_ISTEP (0x04)
74 #define CPU_CTL_SW_BRK_EN (0x08)
75 #define CPU_CTL_FRZ_BRK_EN (0x10)
76 #define CPU_CTL_RST_BRK_EN (0x20)
77 #define CPU_CTL_CPU_RST (0x40)
79 #define CPU_STAT_HALT_RUN (0x01)
80 #define CPU_STAT_PUC_PND (0x04)
81 #define CPU_STAT_SWBRK_PND (0x08)
83 #define MEM_CTL_START (0x01)
84 #define MEM_CTL_RDWR (0x02)
85 #define MEM_CTL_MEM_REG (0x04)
86 #define MEM_CTL_SW_BW (0x08)
88 #define SHASTA_CPU_ID_HI_VALUE \
94 #define SHASTA_REG_LPWKUP_PERIOD (0x0190)
95 #define SHASTA_REG_LPWKUP_CTRL (0x0192)
96 #define SHASTA_REG_LPWKUP_STATUS (0x0194)
97 #define SHASTA_REG_LPWKUP_COUNT (0x0196)
98 #define SHASTA_REG_PMUT_CONFIG (0x01A0)
99 #define SHASTA_REG_PMUT_CHPUMP (0x01A2)
100 #define SHASTA_REG_PMUT_STATUS (0x01A4)
101 #define SHASTA_REG_PMUT_IP (0x01A6)
102 #define SHASTA_REG_PMUT_CTRL (0x01A8)
103 #define SHASTA_REG_PMUT_NEXT_WRT_PTR (0x01AA)
104 #define SHASTA_REG_PMUT_CAP_VAL (0x01AC)
105 #define SHASTA_REG_PMUT_DMA_WRT_PTR (0x01AE)
106 #define SHASTA_REG_PMUT_DMA_END_PTR (0x01B0)
107 #define SHASTA_REG_ATP_TPEN (0x01C0)
108 #define SHASTA_REG_ATP_TPSEL (0x01C1)
109 #define SHASTA_REG_FCOUNT_CTRL (0x01D0)
110 #define SHASTA_REG_FCOUNT_RESULT (0x01D2)
111 #define SHASTA_REG_FCOUNT_STATUS (0x01D4)
112 #define SHASTA_REG_PT_CTRL (0x01D8)
113 #define SHASTA_REG_PT_SELECT (0x01D9)
114 #define SHASTA_REG_PT_RESULT (0x01DA)
115 #define SHASTA_REG_GPIO_0_PCFG (0x01E0)
116 #define SHASTA_REG_GPIO_0_PDIN (0x01E1)
117 #define SHASTA_REG_GPIO_0_PDOUT (0x01E2)
118 #define SHASTA_REG_GPIO_0_PDIR (0x01E3)
119 #define SHASTA_REG_GPIO_1_PCFG (0x01E4)
120 #define SHASTA_REG_GPIO_1_PDIN (0x01E5)
121 #define SHASTA_REG_GPIO_1_PDOUT (0x01E6)
122 #define SHASTA_REG_GPIO_1_PDIR (0x01E7)
123 #define SHASTA_REG_OTP_ADDR (0x01E8)
124 #define SHASTA_REG_OTP_CTRL (0x01E9)
125 #define SHASTA_REG_OTP_DATA (0x01EA)
126 #define SHASTA_REG_SCM_PMUT_CLK (0x01F0)
127 #define SHASTA_REG_SCM_RTC_CLK (0x01F2)
128 #define SHASTA_REG_SCM_CPU_CLK (0x01F3)
129 #define SHASTA_REG_SCM_PASSWORD (0x01F4)
130 #define SHASTA_REG_SPI_WR_ADDR (0x0200)
131 #define SHASTA_REG_SPI_WR_MASK (0x0202)
132 #define SHASTA_REG_SPI_CTRL (0x0204)
133 #define SHASTA_REG_SPI_DMA_PTR (0x0206)
134 #define SHASTA_REG_SPI_START_ADDR (0x0208)
139 #define LPWKUP_CTRL_IEN (0x0001)
140 #define LPWKUP_CTRL_CLK_EN (0x0002)
141 #define LPWKUP_CTRL_RESET_N (0x0004)
144 #define LPWKUP_STATUS_PERIOD_RDY (0x0001)
145 #define LPWKUP_STATUS_CTRL_RDY (0x0002)
146 #define LPWKUP_STATUS_COUNT_SYNC (0x0004)
149 #define PMUT_CONFIG_VREF_CTRL (0x0001)
150 #define PMUT_CONFIG_SINGLE_ENDED_TX (0x0002)
151 #define PMUT_CONFIG_CP_ACTIVE_DISCHARGE (0x0004)
152 #define PMUT_CONFIG_TX0_ENABLE (0x0008)
153 #define PMUT_CONFIG_TX1_ENABLE (0x0010)
154 #define PMUT_CONFIG_TX2_ENABLE (0x0020)
155 #define PMUT_CONFIG_TX3_ENABLE (0x0040)
156 #define PMUT_CONFIG_CIC_ODR_BM (0x0700)
157 #define PMUT_CONFIG_CIC_ODR_32 (0x0200)
158 #define PMUT_CONFIG_CIC_ODR_16 (0x0300)
159 #define PMUT_CONFIG_CIC_ODR_8 (0x0400)
160 #define PMUT_CONFIG_CIC_ODR_4 (0x0500)
161 #define PMUT_CONFIG_CIC_ODR_2 (0x0600)
162 #define PMUT_CONFIG_RX_PWR_OVERRIDE (0x1000)
163 #define PMUT_CONFIG_AFE_BIAS_EN (0x2000)
164 #define PMUT_CONFIG_ADC_LF_EN (0x4000)
167 #define PMUT_CHPUMP_HVVDD_CYCLES_BM (0x0007)
168 #define PMUT_CHPUMP_SMCLK_DIV_BM (0x0030)
169 #define PMUT_CHPUMP_SMCLK_DIV_1 (0x0000)
170 #define PMUT_CHPUMP_SMCLK_DIV_2 (0x0010)
171 #define PMUT_CHPUMP_SMCLK_DIV_4 (0x0020)
172 #define PMUT_CHPUMP_SMCLK_DIV_8 (0x0030)
173 #define PMUT_CHPUMP_HVVDD_FON (0x0200)
174 #define PMUT_CHPUMP_CP_CLK_SEL (0x1000)
175 #define PMUT_CHPUMP_RUN_CP_IN_RX (0x2000)
178 #define PMUT_STATUS_EOF_IFG (0x0004)
179 #define PMUT_STATUS_ERROR_IFG (0x0008)
180 #define PMUT_STATUS_ACTIVE (0x0010)
181 #define PMUT_STATUS_RDY_NEXT_WR_PTR (0x0020)
182 #define PMUT_STATUS_RDY_CONFIG_WRITE (0x0040)
185 #define PMUT_CTRL_ENABLE (0x0001)
186 #define PMUT_CTRL_RESET (0x0002)
187 #define PMUT_CTRL_EOF_IEN (0x0004)
188 #define PMUT_CTRL_ERROR_IEN (0x0008)
191 #define PMUT_CAP_VAL_VALUE_BM (0x003F)
192 #define PMUT_CAP_VAL_CONNECT (0x0040)
195 #define ATP_TPEN_NONE (0x00)
196 #define ATP_TPEN_ADC0 (0x01)
197 #define ATP_TPEN_ADC1 (0x02)
198 #define ATP_TPEN_AFE (0x03)
199 #define ATP_TPEN_BIAS (0x04)
200 #define ATP_TPEN_TIMING (0x05)
201 #define ATP_TPEN_TX (0x06)
202 #define ATP_TPEN_CP (0x07)
205 #define FCOUNT_STATUS_RESULT_RDY (0x0001)
208 #define PT_CTRL_IEN (0x01)
209 #define PT_CTRL_RST (0x02)
212 #define PT_SELECT_SOURCE_BM (0x01)
213 #define PT_SELECT_SOURCE_PIN_0 (0x00)
214 #define PT_SELECT_SOURCE_PIN_1 (0x01)
217 #define GPIO_PCFG_IEN (0x0001)
218 #define GPIO_PCFG_PU (0x0002)
219 #define GPIO_PCFG_IRQ_FLAG (0x0004)
222 #define GPIO_PDIR_INPUT (0x00)
223 #define GPIO_PDIR_OUTPUT (0x01)
226 #define OTP_CTRL_OTP_EN (0x01)
227 #define OTP_CTRL_PRD (0x02)
228 #define OTP_CTRL_PWE (0x04)
229 #define OTP_CTRL_PPROG (0x08)
230 #define OTP_CTRL_PTM_BM (0x30)
231 #define OTP_CTRL_PPROG_IO_EN (0x40)
232 #define OTP_CTRL_VPP_RDY (0x80)
235 #define SCM_PMUT_CLK_FREQ_TRIM_BM (0x01FF)
236 #define SCM_PMUT_CLK_PAD_MODE_BM (0x0600)
237 #define SCM_PMUT_CLK_PAD_MODE_NONE (0x0000)
238 #define SCM_PMUT_CLK_PAD_MODE_PMUT (0x0200)
239 #define SCM_PMUT_CLK_PAD_MODE_AT (0x0400)
240 #define SCM_PMUT_CLK_PAD_MODE_INPUT (0x0600)
241 #define SCM_PMUT_CLK_EXT_EN (0x0800)
242 #define SCM_PMUT_CLK_DIV_BM (0x3000)
243 #define SCM_PMUT_CLK_DIV_1 (0x0000)
244 #define SCM_PMUT_CLK_DIV_2 (0x1000)
245 #define SCM_PMUT_CLK_DIV_4 (0x2000)
246 #define SCM_PMUT_CLK_DIV_8 (0x3000)
247 #define SCM_PMUT_CLK_BIAS_TRIM_BM (0xC000)
248 #define SCM_PMUT_CLK_BIAS_TRIM_BS (14)
249 #define PMUT_CLK_BIAS_0_MAX_FREQ (65938)
250 #define PMUT_CLK_BIAS_1_MAX_FREQ (102500)
251 #define PMUT_CLK_BIAS_2_MAX_FREQ (153125)
252 #define PMUT_CLK_BIAS_3_MAX_FREQ (212500)
253 #define PMUT_CLK_FREQ_TRIM_MAX_BIAS_0 (300)
254 #define PMUT_CLK_FREQ_TRIM_MAX_BIAS_1 (400)
257 #define SCM_RTC_CLK_PAD_MODE_BM (0x03)
258 #define SCM_RTC_CLK_PAD_MODE_NONE (0x00)
259 #define SCM_RTC_CLK_PAD_MODE_RTC (0x01)
260 #define SCM_RTC_CLK_PAD_MODE_AT (0x02)
261 #define SCM_RTC_CLK_PAD_MODE_INPUT (0x03)
262 #define SCM_RTC_CLK_EXT_EN (0x04)
265 #define SCM_CPU_CLK_FREQ_TRIM_BM (0x3F)
266 #define SCM_CPU_CLK_STANDBY (0x40)
269 #define SCM_PASSWORD_VALUE (0x00A5)
272 #define SPI_CTRL_IEN_EN_WR (0x0001)
273 #define SPI_CTRL_IEN_EN_RD (0x0002)
274 #define SPI_CTRL_WR_FLAG (0x0004)
275 #define SPI_CTRL_RD_FLAG (0x0008)
279 #define SPI_CMD_MEM_ACCESS (0x0000)
280 #define SPI_CMD_DBG_REG_ACCESS (0x8000)
281 #define SPI_CMD_SYS_CTRL_ACCESS (0xA000)
282 #define SPI_CMD_READ (0x0000)
283 #define SPI_CMD_WRITE (0x4000)
284 #define SPI_CMD_DATA_MEM (0x0000)
285 #define SPI_CMD_PROG_MEM (0x2000)
287 #define SPI_CMD_SYS_CTRL_READ \
288 (SPI_CMD_SYS_CTRL_ACCESS | SPI_CMD_READ)
289 #define SPI_CMD_SYS_CTRL_WRITE \
290 (SPI_CMD_SYS_CTRL_ACCESS | SPI_CMD_WRITE)
291 #define SPI_CMD_DBG_REG_READ (SPI_CMD_DBG_REG_ACCESS | SPI_CMD_READ)
292 #define SPI_CMD_DBG_REG_WRITE (SPI_CMD_DBG_REG_ACCESS | SPI_CMD_WRITE)
293 #define SPI_CMD_MEM_READ (SPI_CMD_MEM_ACCESS | SPI_CMD_READ)
294 #define SPI_CMD_MEM_WRITE (SPI_CMD_MEM_ACCESS | SPI_CMD_WRITE)