VSF Documented
f1c100s_reg.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Copyright(C)2009-2022 by VSF Team *
3 * *
4 * Licensed under the Apache License, Version 2.0 (the "License"); *
5 * you may not use this file except in compliance with the License. *
6 * You may obtain a copy of the License at *
7 * *
8 * http://www.apache.org/licenses/LICENSE-2.0 *
9 * *
10 * Unless required by applicable law or agreed to in writing, software *
11 * distributed under the License is distributed on an "AS IS" BASIS, *
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13 * See the License for the specific language governing permissions and *
14 * limitations under the License. *
15 * *
16 ****************************************************************************/
17
18#ifndef __F1C100S_REG_H__
19#define __F1C100S_REG_H__
20
21/*============================ INCLUDES ======================================*/
22
28#include <stdint.h>
29
30/*============================ MACROS ========================================*/
31
32// System Controller
33#define SYSCON_BASE ((syscon_reg_t *)0x01c00000)
34# define SYSCON_USB_CTRL 0x004
35# define USB_FIFO_MODE (3UL << 0)
36# define USB_FIFO_MODE_8KB (1UL << 0)
37
38// CCU
39#define CCU_BASE ((ccu_reg_t *)0x01c20000)
40# define CCU_PLL_CPU_CTRL 0x000
41# define PLL_CPU_CTRL_PLL_ENABLE (1UL << 31)
42# define PLL_CPU_CTRL_LOCK (1UL << 28)
43# define __PLL_CPU_CTRL_PLL_OUT_EVT_DIV_P(__P) (((__P) >> 1) << 16)
44# define __PLL_CPU_CTRL_PLL_FACTOR_N(__N) (((__N) - 1) << 8)
45# define __PLL_CPU_CTRL_PLL_FACTOR_K(__K) (((__K) - 1) << 4)
46# define __PLL_CPU_CTRL_PLL_FACTOR_M(__M) (((__M) - 1) << 0)
47// PLL = (24MHz * N * K) / (M * P), range [200MHz, 2.6GHz]
48// P in [1, 2, 4]
49# define PLL_CPU_CTRL_PLL_OUT_EVT_DIV_P(...) __PLL_CPU_CTRL_PLL_OUT_EVT_DIV_P((6UL, ##__VA_ARGS__))
50// N in [1 .. 32]
51# define PLL_CPU_CTRL_PLL_FACTOR_N(...) __PLL_CPU_CTRL_PLL_FACTOR_N((32UL, ##__VA_ARGS__))
52// K in [1 .. 4]
53# define PLL_CPU_CTRL_PLL_FACTOR_K(...) __PLL_CPU_CTRL_PLL_FACTOR_K((4UL, ##__VA_ARGS__))
54// M in [1 .. 4]
55# define PLL_CPU_CTRL_PLL_FACTOR_M(...) __PLL_CPU_CTRL_PLL_FACTOR_M((4UL, ##__VA_ARGS__))
56# define CCU_PLL_AUDIO_CTRL 0x008
57# define PLL_AUDIO_CTRL_PLL_ENABLE (1UL << 31)
58# define PLL_AUDIO_CTRL_LOCK (1UL << 28)
59# define PLL_AUDIO_CTRL_PLL_SDM_EN (1UL << 24)
60# define __PLL_AUDIO_CTRL_PLL_FACTOR_N(__N) (((__N) - 1) << 8)
61# define __PLL_AUDIO_CTRL_PLL_PREDIV_M(__M) (((__M) - 1) << 0)
62// PLL = (24MHz * N * 2) / M, range [20MHz, 200MHz]
63// N in [1 .. 128], if PLL_AUDIO_CTRL_PLL_SDM_EN is enabled, N in [1 .. 16]
64# define PLL_AUDIO_CTRL_PLL_FACTOR_N(...) __PLL_AUDIO_CTRL_PLL_FACTOR_N((128UL, ##__VA_ARGS__))
65// M in [1 .. 32]
66# define PLL_AUDIO_CTRL_PLL_PREDIV_M(...) __PLL_AUDIO_CTRL_PLL_PREDIV_M((32UL, ##__VA_ARGS__))
67# define CCU_PLL_VIDEO_CTRL 0x010
68# define PLL_VIDEO_CTRL_PLL_ENABLE (1UL << 31)
69# define PLL_VIDEO_CTRL_PLL_MODE (1UL << 30)
70# define PLL_VIDEO_CTRL_PLL_MODE_AUTO PLL_VIDEO_CTRL_PLL_MODE
71# define PLL_VIDEO_CTRL_PLL_MODE_MANUAL 0
72# define PLL_VIDEO_CTRL_LOCK (1UL << 28)
73# define PLL_VIDEO_CTRL_FRAC_CLK_OUT (1UL << 25)
74# define PLL_VIDEO_CTRL_PLL_MODE_SEL (1UL << 24)
75# define PLL_VIDEO_CTRL_PLL_MODE_INTEGER PLL_VIDEO_CTRL_PLL_MODE_SEL
76# define PLL_VIDEO_CTRL_PLL_MODE_FRACTIONAL 0
77# define PLL_VIDEO_CTRL_PLL_SDM_EN (1UL << 20)
78# define __PLL_VIDEO_CTRL_PLL_FACTOR_N(__N) (((__N) - 1) << 8)
79# define __PLL_VIDEO_CTRL_PLL_PREDIV_M(__M) (((__M) - 1) << 0)
80// Integer mode:
81// PLL = (24MHz * N) / M, range [30MHz, 600MHz]
82// N in [1 .. 128]
83# define PLL_VIDEO_CTRL_PLL_FACTOR_N(...) __PLL_VIDEO_CTRL_PLL_FACTOR_N((128UL, ##__VA_ARGS__))
84// M in [1 .. 16]
85# define PLL_VIDEO_CTRL_PLL_PREDIV_M(...) __PLL_VIDEO_CTRL_PLL_PREDIV_M((16UL, ##__VA_ARGS__))
86# define CCU_PLL_VE_CTRL 0x018
87# define PLL_VE_CTRL_PLL_ENABLE (1UL << 31)
88# define PLL_VE_CTRL_LOCK (1UL << 28)
89# define PLL_VE_CTRL_FRAC_CLK_OUT (1UL << 25)
90# define PLL_VE_CTRL_PLL_MODE_SEL (1UL << 24)
91# define PLL_VE_CTRL_PLL_MODE_FRACTIONAL (0UL << 24)
92# define PLL_VE_CTRL_PLL_MODE_INTEGER (1UL << 24)
93# define __PLL_VE_CTRL_PLL_FACTOR_N(__N) (((__N) - 1) << 8)
94# define __PLL_VE_CTRL_PLL_PREDIV_M(__M) (((__M) - 1) << 0)
95// Integer mode:
96// PLL = (24MHz * N) / M, range [30MHz, 600MHz]
97// N in [1 .. 128]
98# define PLL_VE_CTRL_PLL_FACTOR_N(...) __PLL_VE_CTRL_PLL_FACTOR_N((128UL, ##__VA_ARGS__))
99// M in [1 .. 16]
100# define PLL_VE_CTRL_PLL_PREDIV_M(...) __PLL_VE_CTRL_PLL_PREDIV_M((16UL, ##__VA_ARGS__))
101# define CCU_PLL_DDR_CTRL 0x020
102# define PLL_DDR_CTRL_PLL_ENABLE (1UL << 31)
103# define PLL_DDR_CTRL_LOCK (1UL << 28)
104# define PLL_DDR_CTRL_SDRAM_SIGMA_DELTA_EN (1UL << 24)
105# define PLL_DDR_CTRL_PLL_DDR_CFG_UPDATE (1UL << 20)
106# define __PLL_DDR_CTRL_PLL_FACTOR_N(__N) (((__N) - 1) << 8)
107# define __PLL_DDR_CTRL_PLL_FACTOR_K(__K) (((__K) - 1) << 4)
108# define __PLL_DDR_CTRL_PLL_FACTOR_M(__M) (((__M) - 1) << 0)
109// PLL = (24MHz * N * K) / M
110// N in [1 .. 32]
111# define PLL_DDR_CTRL_PLL_FACTOR_N(...) __PLL_DDR_CTRL_PLL_FACTOR_N((32UL, ##__VA_ARGS__))
112// K in [1 .. 4]
113# define PLL_DDR_CTRL_PLL_FACTOR_K(...) __PLL_DDR_CTRL_PLL_FACTOR_K((4UL, ##__VA_ARGS__))
114// M in [1 .. 4]
115# define PLL_DDR_CTRL_PLL_FACTOR_M(...) __PLL_DDR_CTRL_PLL_FACTOR_M((4UL, ##__VA_ARGS__))
116# define CCU_PLL_PERIPH_CTRL 0x028
117# define PLL_PERIPH_CTRL_PLL_ENABLE (1UL << 31)
118# define PLL_PERIPH_CTRL_LOCK (1UL << 28)
119# define PLL_PERIPH_CTRL_PLL_24M_OUT_EN (1UL << 18)
120# define __PLL_PERIPH_CTRL_PLL_FACTOR_N(__N) (((__N) - 1) << 8)
121# define __PLL_PERIPH_CTRL_PLL_FACTOR_K(__K) (((__K) - 1) << 4)
122// PLL = 24MHz * N * K
123// N in [1 .. 32]
124# define PLL_PERIPH_CTRL_PLL_FACTOR_N(...) __PLL_PERIPH_CTRL_PLL_FACTOR_N((32UL, ##__VA_ARGS__))
125// K in [1 .. 4]
126# define PLL_PERIPH_CTRL_PLL_FACTOR_K(...) __PLL_PERIPH_CTRL_PLL_FACTOR_K((4UL, ##__VA_ARGS__))
127# define CCU_CPU_CLK_SRC 0x050
128# define CPU_CLK_SRC_SEL (3UL << 16)
129# define CPU_CLK_SRC_SEL_LOSC (0UL << 16)
130# define CPU_CLK_SRC_SEL_OSC24M (1UL << 16)
131# define CPU_CLK_SRC_SEL_PLL_CPU (2UL << 16)
132# define CCU_AHB_APB_HCLKC_CFG 0x054
133# define __AHB_APB_HCLKC_CFG_HCLKC_DIV(__DIV) (((__DIV) - 1) << 16)
134// HCLKC_DIV in [1 .. 4]
135# define AHB_APB_HCLKC_CFG_HCLKC_DIV(...) __AHB_APB_HCLKC_CFG_HCLKC_DIV((4UL, ##__VA_ARGS__))
136# define AHB_APB_HCLKC_CFG_AHB_CLK_SRC_SEL (3UL << 12)
137# define AHB_APB_HCLKC_CFG_AHB_CLK_SRC_SEL_LOSC (0UL << 12)
138# define AHB_APB_HCLKC_CFG_AHB_CLK_SRC_SEL_OSC24M (1UL << 12)
139# define AHB_APB_HCLKC_CFG_AHB_CLK_SRC_SEL_CPUCLK (2UL << 12)
140# define AHB_APB_HCLKC_CFG_AHB_CLK_SRC_SEL_PERIPH (3UL << 12) // PLL_PERIPH/AHB_PRE_DIV
141# define __AHB_APB_HCLKC_CFG_APB_CLK_RATIO(__R) ((__R) << 8)
142# define __AHB_APB_HCLKC_CFG_AHB_PRE_DIV(__DIV) (((__DIV) - 1) << 6)
143# define __AHB_APB_HCLKC_CFG_AHB_CLK_DIV_RATIO(__R) ((__R) << 4)
144// R in [1, 2, 3], divider is 2 ^ R
145# define AHB_APB_HCLKC_CFG_APB_CLK_RATIO(...) __AHB_APB_HCLKC_CFG_APB_CLK_RATIO((3UL, ##__VA_ARGS__))
146// AHB_PRE_DIV in [1 .. 4]
147# define AHB_APB_HCLKC_CFG_AHB_PRE_DIV(...) __AHB_APB_HCLKC_CFG_AHB_PRE_DIV((4UL, ##__VA_ARGS__))
148// R in [0 .. 3], divider is 2 ^ R
149# define AHB_APB_HCLKC_CFG_AHB_CLK_DIV_RATIO(...) __AHB_APB_HCLKC_CFG_AHB_CLK_DIV_RATIO((3UL, ##__VA_ARGS__))
150# define CCU_BUS_CLK_GATINT0 0x060
151# define BUS_CLK_GATING0_USB_OTG_GATING (1UL << 24)
152# define BUS_CLK_GATING0_SPI1_GATING (1UL << 21)
153# define BUS_CLK_GATING0_SPI0_GATING (1UL << 20)
154# define BUS_CLK_GATING0_SDRAM_GATING (1UL << 14)
155# define BUS_CLK_GATING0_SD1_GATING (1UL << 9)
156# define BUS_CLK_GATING0_SD0_GATING (1UL << 8)
157# define BUS_CLK_GATING0_DMA_GATING (1UL << 6)
158# define CCU_BUS_CLK_GATE1 0x064
159# define BUS_CLK_GATING1_DEFE_GATING (1UL << 14)
160# define BUS_CLK_GATING1_DEBE_GATING (1UL << 12)
161# define BUS_CLK_GATING1_TVE_GATING (1UL << 10)
162# define BUS_CLK_GATING1_TBD_GATING (1UL << 9)
163# define BUS_CLK_GATING1_CSI_GATING (1UL << 8)
164# define BUS_CLK_GATING1_DEINTERLACE_GATING (1UL << 5)
165# define BUS_CLK_GATING1_LCD_GATING (1UL << 4)
166# define BUS_CLK_GATING1_VE_GATING (1UL << 0)
167# define CCU_BUS_CLK_GATE2 0x068
168# define BUS_CLK_GATING2_UART2_GATING (1UL << 22)
169# define BUS_CLK_GATING2_UART1_GATING (1UL << 21)
170# define BUS_CLK_GATING2_UART0_GATING (1UL << 20)
171# define BUS_CLK_GATING2_TWI2_GATING (1UL << 18)
172# define BUS_CLK_GATING2_TWI1_GATING (1UL << 17)
173# define BUS_CLK_GATING2_TWI0_GATING (1UL << 16)
174# define BUS_CLK_GATING2_RSB_GATING (1UL << 3)
175# define BUS_CLK_GATING2_CIR_GATING (1UL << 2)
176# define BUS_CLK_GATING2_OWA_GATING (1UL << 1)
177# define BUS_CLK_GATING2_AUDIO_CODEC_GATING (1UL << 0)
178# define CCU_SDMMC0_CLK 0x088
179# define SDMMC0_CLK_SCLK_GATING (1UL << 31)
180# define SDMMC0_CLK_CLK_SRC_SEL (3UL << 24)
181# define SDMMC0_CLK_CLK_SRC_SEL_OSC24M (0UL << 24)
182# define SDMMC0_CLK_CLK_SRC_SEL_PLL_PERIPH (1UL << 24)
183# define __SDMMC0_CLK_SAMPLE_CLK_PHASE_CTR(__DLY) ((__DLY) << 20)
184# define __SDMMC0_CLK_CLK_DIV_RATIO_N(__N) ((__N) << 16)
185# define __SDMMC0_CLK_OUTPUT_CLK_PHASE_CTR(__DLY) ((__DLY) << 8)
186# define __SDMMC0_CLK_CLK_DIV_RATIO_M(__M) (((__M) - 1) << 0)
187// DLY in [0 .. 7]
188# define SDMMC0_CLK_SAMPLE_CLK_PHASE_CTR(...) __SDMMC0_CLK_SAMPLE_CLK_PHASE_CTR((7UL, ##__VA_ARGS__))
189// N in [0 .. 3], divider is 2 ^ N
190# define SDMMC0_CLK_CLK_DIV_RATIO_N(...) __SDMMC0_CLK_CLK_DIV_RATIO_N((3UL, ##__VA_ARGS__))
191// DLY in [0 .. 7]
192# define SDMMC0_CLK_OUTPUT_CLK_PHASE_CTR(...) __SDMMC0_CLK_OUTPUT_CLK_PHASE_CTR((7UL, ##__VA_ARGS__))
193// M in [1 .. 16]
194# define SDMMC0_CLK_CLK_DIV_RATIO_M(...) __SDMMC0_CLK_CLK_DIV_RATIO_M((16UL, ##__VA_ARGS__))
195# define CCU_SDMMC1_CLK 0x08c
196# define SDMMC1_CLK_SCLK_GATING (1UL << 31)
197# define SDMMC1_CLK_CLK_SRC_SEL (3UL << 24)
198# define SDMMC1_CLK_CLK_SRC_SEL_OSC24M (0UL << 24)
199# define SDMMC1_CLK_CLK_SRC_SEL_PLL_PERIPH (1UL << 24)
200# define __SDMMC1_CLK_SAMPLE_CLK_PHASE_CTR(__DLY) ((__DLY) << 20)
201# define __SDMMC1_CLK_CLK_DIV_RATIO_N(__N) ((__N) << 16)
202# define __SDMMC1_CLK_OUTPUT_CLK_PHASE_CTR(__DLY) ((__DLY) << 8)
203# define __SDMMC1_CLK_CLK_DIV_RATIO_M(__M) (((__M) - 1) << 0)
204// DLY in [0 .. 7]
205# define SDMMC1_CLK_SAMPLE_CLK_PHASE_CTR(...) __SDMMC1_CLK_SAMPLE_CLK_PHASE_CTR((7UL, ##__VA_ARGS__))
206// N in [0 .. 3], divider is 2 ^ N
207# define SDMMC1_CLK_CLK_DIV_RATIO_N(...) __SDMMC1_CLK_CLK_DIV_RATIO_N((3UL, ##__VA_ARGS__))
208// DLY in [0 .. 7]
209# define SDMMC1_CLK_OUTPUT_CLK_PHASE_CTR(...) __SDMMC1_CLK_OUTPUT_CLK_PHASE_CTR((7UL, ##__VA_ARGS__))
210// M in [1 .. 16]
211# define SDMMC1_CLK_CLK_DIV_RATIO_M(...) __SDMMC1_CLK_CLK_DIV_RATIO_M((16UL, ##__VA_ARGS__))
212# define CCU_DAUDIO_CLK 0x0b0
213# define DAUDIO_CLK_SCLK_GATING (1UL << 31)
214# define DAUTIO_CLK_CLK_SRC_SEL (3UL << 16)
215# define DAUTIO_CLK_CLK_SRC_SEL_PLL_AUDIO_8X (0UL << 16)
216# define DAUTIO_CLK_CLK_SRC_SEL_PLL_AUDIO_8XD2 (1UL << 16)
217# define DAUTIO_CLK_CLK_SRC_SEL_PLL_AUDIO_8XD4 (2UL << 16)
218# define DAUTIO_CLK_CLK_SRC_SEL_PLL_AUDIO_8XD8 (3UL << 16)
219# define CCU_OWA_CLK 0x0b4
220# define OWA_CLK_SCLK_GATING (1UL << 31)
221# define OWA_CLK_CLK_SRC_SEL (3UL << 16)
222# define OWA_CLK_CLK_SRC_SEL_PLL2 (0UL << 16)
223# define OWA_CLK_CLK_SRC_SEL_PLL2D2 (1UL << 16)
224# define OWA_CLK_CLK_SRC_SEL_PLL2D4 (2UL << 16)
225# define OWA_CLK_CLK_SRC_SEL_PLL2D8 (3UL << 16)
226# define CCU_CIR_CLK 0x0b8
227# define CIR_CLK_SCLK_GATING (1UL << 31)
228# define CIR_CLK_CLK_SRC_SEL (3UL << 24)
229# define CIR_CLK_CLK_SRC_SEL_LOSC (0UL << 24)
230# define CIR_CLK_CLK_SRC_SEL_OSC24M (1UL << 24)
231# define __CIR_CLK_CLK_DIV_RATION_N(__N) ((__N) << 16)
232# define __CIR_CLK_CLK_DIV_RATION_M(__M) (((__M) - 1) << 0)
233// N in [0 .. 3], divider is 2 ^ N
234# define CIR_CLK_CLK_DIV_RATION_N(...) __CIR_CLK_CLK_DIV_RATION_N((3UL, ##__VA_ARGS__))
235// M in [1 .. 16]
236# define CIR_CLK_CLK_DIV_RATION_M(...) __CIR_CLK_CLK_DIV_RATION_M((16UL, ##__VA_ARGS__))
237# define CCU_USBPHY_CLK 0x0cc
238# define USBPHY_CLK_SCLK_GATING (1UL << 1)
239# define USBPHY_CLK_USBPHY_RST (1UL << 0)
240# define CCU_DRAM_GATING 0x100
241# define DRAM_GATING_BE_DCLK_GATING (1UL << 26)
242# define DRAM_GATING_FE_DCLK_GATING (1UL << 24)
243# define DRAM_GATING_TVD_DCLK_GATING (1UL << 3)
244# define DRAM_GATING_DEINTERLACE_DCLK_GATING (1UL << 2)
245# define DRAM_GATING_CSI_DCLK_GATING (1UL << 1)
246# define DRAM_GATING_VE_DCLK_GATING (1UL << 0)
247# define CCU_BE_CLK 0x104
248# define BE_CLK_SCLK_GATING (1UL << 31)
249# define BE_CLK_CLK_SRC_SEL (3UL << 24)
250# define BE_CLK_CLK_SRC_SEL_PLL_VIDEO (0UL << 24)
251# define BE_CLK_CLK_SRC_SEL_PLL_PERIPH (2UL << 24)
252# define __BE_CLK_CLK_DIV_RATIO_M(__M) (((__M) - 1) << 0)
253// M in [1 .. 16]
254# define BE_CLK_CLK_DIV_RATIO_M(...) __BE_CLK_CLK_DIV_RATIO_M((16, ##__VA_ARGS__))
255# define CCU_FE_CLK 0x10c
256# define FE_CLK_SCLK_GATING (1UL << 31)
257# define FE_CLK_CLK_SRC_SEL (3UL << 24)
258# define FE_CLK_CLK_SRC_SEL_PLL_VIDEO (0UL << 24)
259# define FE_CLK_CLK_SRC_SEL_PLL_PERIPH (2UL << 24)
260# define __FE_CLK_CLK_DIV_RATIO_M(__M) (((__M) - 1) << 0)
261// M in [1 .. 16]
262# define FE_CLK_CLK_DIV_RATIO_M(...) __FE_CLK_CLK_DIV_RATIO_M((16, ##__VA_ARGS__))
263# define CCU_TCON_CLK 0x118
264# define TCON_CLK_SCLK_GATING (1UL << 31)
265# define TCON_CLK_CLK_SRC_SEL (7UL << 24)
266# define TCON_CLK_CLK_SRC_SEL_PLL_VIDEO_1X (0UL << 24)
267# define TCON_CLK_CLK_SRC_SEL_PLL_VIDEO_2X (2UL << 24)
268# define CCU_DI_CLK 0x11c
269# define DI_CLK_SCLK_GATING (1UL << 31)
270# define DI_CLK_CLK_SRC_SEL (7UL << 24)
271# define DI_CLK_CLK_SRC_SEL_PLL_VIDEO_1X (0UL << 24)
272# define DI_CLK_CLK_SRC_SEL_PLL_VIDEO_2X (2UL << 24)
273# define __DI_CLK_CLK_DIV_RATIO_M(__M) (((__M) - 1) << 0)
274// M in [1 .. 16]
275# define DI_CLK_CLK_DIV_RATIO_M(...) __DI_CLK_CLK_DIV_RATIO_M((16UL, ##__VA_ARGS__))
276# define CCU_TVE_CLK 0x120
277# define TVE_CLK_SCLK2_GATING (1UL << 31)
278# define TVE_CLK_SCLK2_SRC_SEL (7UL << 24)
279# define TVE_CLK_SCLK2_SRC_SEL_PLL_VIDEO_1X (0UL << 24)
280# define TVE_CLK_SCLK2_SRC_SEL_PLL_VIDEO_2X (2UL << 24)
281# define TVE_CLK_SCLK1_GATING (1UL << 15)
282# define TVE_CLK_SCLK1_SRC_SEL (1UL << 8)
283# define TVE_CLK_SCLK1_SRC_SEL_TVE_SCLK2 (0UL << 8)
284# define TVE_CLK_SCLK1_SRC_SEL_TVE_SCLK2_D2 (1UL << 8)
285# define __TVE_CLK_CLK_DIV_RATIO_M(__M) (((__M) - 1) << 0)
286// M in [1 .. 16]
287# define TVE_CLK_CLK_DIV_RATIO_M(...) __TVE_CLK_CLK_DIV_RATIO_M((16UL, ##__VA_ARGS__))
288# define CCU_TVD_CLK 0x124
289# define TVD_CLK_SCLK_GATING (1UL << 31)
290# define TVD_CLK_CLK_SRC_SEL (7UL << 24)
291# define TVD_CLK_CLK_SRC_SEL_PLL_VIDEO_1X (0UL << 24)
292# define TVD_CLK_CLK_SRC_SEL_OSC24M (1UL << 24)
293# define TVD_CLK_CLK_SRC_SEL_PLL_VIDEO_2X (2UL << 24)
294# define __TVD_CLK_CLK_DIV_RATIO_M(__M) (((__M) - 1) << 0)
295// M in [1 .. 16]
296# define TVD_CLK_CLK_DIV_RATIO_M(...) __TVD_CLK_CLK_DIV_RATIO_M((16UL, ##__VA_ARGS__))
297# define CCU_CSI_CLK 0x134
298# define CSI_CLK_CSI_MCLK_GATING (1UL << 15)
299# define CSI_CLK_MCLK_SRC_SEL (7UL << 8)
300# define CSI_CLK_MCLK_SRC_SEL_PLL_VIDEO_1X (0UL << 8)
301# define CSI_CLK_MCLK_SRC_SEL_OSC24M (5UL << 8)
302# define __CSI_CLK_CLSI_MCLK_DIV_M(__M) (((__M( - 1) << 0)
303// M in [1 .. 16]
304# define CSI_CLK_CLSI_MCLK_DIV_M(...) __CSI_CLK_CLSI_MCLK_DIV_M((16UL, ##__VA_ARGS__))
305# define CCU_VE_CLK 0x13c
306# define VE_CLK_SCLK_GATING (1UL << 31)
307# define CCU_AUDIO_CODEC_CLK 0x140
308# define AUDIO_CODEC_CLK_SCLK_GATING (1UL << 31)
309# define CCU_AVS_CLK 0x144
310# define AVS_CLK_SCLK_GATING (1UL << 31)
311# define CCU_PLL_STABLE_TIME0 0x200
312# define __PLL_STABLE_TIME0_PLL_LOCK_TIME(__T) ((__T) << 0)
313// T in [0 .. 0xFFFF]
314# define PLL_STABLE_TIME0_PLL_LOCK_TIME(...) __PLL_STABLE_TIME0_PLL_LOCK_TIME((0xFFFFUL, ##__VA_ARGS__))
315# define CCU_PLL_STABLE_TIME1 0x204
316# define __PLL_STABLE_TIME1_PLL_LOCK_TIME(__T) ((__T) << 0)
317// T in [0 .. 0xFFFF]
318# define PLL_STABLE_TIME1_PLL_LOCK_TIME(...) __PLL_STABLE_TIME1_PLL_LOCK_TIME((0xFFFFUL, ##__VA_ARGS__))
319# define CCU_PLL_CPU_BIAS 0x220
320# define CCU_PLL_AUDIO_BIAS 0x224
321# define CCU_PLL_VIDEO_BIAS 0x228
322# define CCU_PLL_VE_BIAS 0x22c
323# define CCU_PLL_DDR0_BIAS 0x230
324# define CCU_PLL_PERIPH_BIAS 0x234
325# define CCU_PLL_CPU_TUN 0x250
326# define CCU_PLL_DDR_TUN 0x260
327# define CCU_PLL_AUDIO_PAT_CTRL 0x284
328# define CCU_PLL_VIDEO_PAT_CTRL 0x288
329# define CCU_PLL_DDR_PAT_CTRL 0x290
330# define CCU_BUS_SOFT_RST0 0x2c0
331# define BUS_SOFT_RST0_USBOTG_RST (1UL << 24)
332# define BUS_SOFT_RST0_SPI1_RST (1UL << 21)
333# define BUS_SOFT_RST0_SPI0_RST (1UL << 20)
334# define BUS_SOFT_RST0_SDRAM_RST (1UL << 14)
335# define BUS_SOFT_RST0_SD1_RST (1UL << 9)
336# define BUS_SOFT_RST0_SD0_RST (1UL << 8)
337# define BUS_SOFT_RST0_DMA_RST (1UL << 6)
338# define CCU_BUS_SOFT_RST1 0x2c4
339# define BUS_SOFT_RST1_DEFE_RST (1UL << 14)
340# define BUS_SOFT_RST1_DEBE_RST (1UL << 12)
341# define BUS_SOFT_RST1_TVE_RST (1UL << 10)
342# define BUS_SOFT_RST1_RVD_RST (1UL << 9)
343# define BUS_SOFT_RST1_CSI_RST (1UL << 8)
344# define BUS_SOFT_RST1_DEINTERLACE_RST (1UL << 5)
345# define BUS_SOFT_RST1_LCD_RST (1UL << 4)
346# define BUS_SOFT_RST1_VE_RST (1UL << 0)
347# define CCU_BUS_SOFT_RST2 0x2d0
348# define BUS_SOFT_RST2_UART2_RST (1UL << 22)
349# define BUS_SOFT_RST2_UART1_RST (1UL << 21)
350# define BUS_SOFT_RST2_UART0_RST (1UL << 20)
351# define BUS_SOFT_RST2_TWI2_RST (1UL << 18)
352# define BUS_SOFT_RST2_TWI1_RST (1UL << 17)
353# define BUS_SOFT_RST2_TWI0_RST (1UL << 16)
354# define BUS_SOFT_RST2_DAUDIO_RST (1UL << 12)
355# define BUS_SOFT_RST2_RSB_RST (1UL << 3)
356# define BUS_SOFT_RST2_CIR_RST (1UL << 2)
357# define BUS_SOFT_RST2_OWA_RST (1UL << 1)
358# define BUS_SOFT_RST2_AUDIO_CODEC_RST (1UL << 0)
359
360
361// dram
362#define DRAM_BASE ((dram_reg_t *)0x01c01000)
363# define DRAM_SCONR 0x000
364# define DRAM_STMG0R 0x004
365# define DRAM_STMG1R 0x008
366# define DRAM_SCTLR 0x00c
367# define DRAM_SREFR 0x010
368# define DRAM_SEXTMR 0x014
369# define DRAM_DDLYR 0x024
370# define DRAM_DADRR 0x028
371# define DRAM_DVALR 0x02c
372# define DRAM_DRPTR0 0x030
373# define DRAM_DRPTR1 0x034
374# define DRAM_DRPTR2 0x038
375# define DRAM_DRPTR3 0x03c
376# define DRAM_SEFR 0x040
377# define DRAM_MAE 0x044
378# define DRAM_ASPR 0x048
379# define DRAM_SDLY0 0x04C
380# define DRAM_SDLY1 0x050
381# define DRAM_SDLY2 0x054
382# define DRAM_MCR0 0x100
383# define DRAM_MCR1 0x104
384# define DRAM_MCR2 0x108
385# define DRAM_MCR3 0x10c
386# define DRAM_MCR4 0x110
387# define DRAM_MCR5 0x114
388# define DRAM_MCR6 0x118
389# define DRAM_MCR7 0x11c
390# define DRAM_MCR8 0x120
391# define DRAM_MCR9 0x124
392# define DRAM_MCR10 0x128
393# define DRAM_MCR11 0x12c
394# define DRAM_BWCR 0x140
395
396
397// PIO
398#define PIO_BASE ((pio_reg_t *)0x01c20800)
399
400
401// UART
402#define UART0_BASE ((uart_reg_t *)0x01c25000)
403#define UART1_BASE ((uart_reg_t *)0x01c25400)
404#define UART2_BASE ((uart_reg_t *)0x01c25800)
405# define UART_RBR 0x000
406# define UART_THR 0x000
407# define UART_DLL 0x000
408# define UART_DLH 0x004
409# define UART_IER 0x004
410# define IER_PTIME (1UL << 7)
411# define IER_EDSSI (1UL << 3)
412# define IER_ELSI (1UL << 2)
413# define IER_ETBEI (1UL << 1)
414# define IER_ERBFI (1UL << 0)
415# define UART_IIR 0x008
416# define UART_FCR 0x008
417# define FCR_RT (3UL << 6)
418# define FCR_RT_1 (0UL << 6)
419# define FCR_RT_QUARTER (1UL << 6)
420# define FCR_RT_HALF (2UL << 6)
421# define FCR_RT_2_LESS (3UL << 6)
422# define FCR_TFT (3UL << 4)
423# define FCR_TFT_EMPTY (0UL << 4)
424# define FCR_TFT_2 (1UL << 4)
425# define FCR_TFT_QUARTER (2UL << 4)
426# define FCR_TFT_HALF (3UL << 4)
427# define FCR_DMAM (1UL << 3)
428# define FCR_XFIFOR (1UL << 2)
429# define FCR_RFIFOR (1UL << 1)
430# define FCR_FIFOE (1UL << 0)
431# define UART_LCR 0x00c
432# define LCR_DLAB (1UL << 7)
433# define LCR_BC (1UL << 6)
434# define LCR_EPS (3UL << 4)
435# define LCR_EPS_ODD (0UL << 4)
436# define LCR_EPS_EVEN (1UL << 4)
437# define LCR_PEN (1UL << 3)
438# define LCR_STOP (1UL << 2)
439# define LCR_STOP_1 (0UL << 2)
440# define LCR_STOP_2 (1UL << 2)
441# define LCR_DLS (3UL << 0)
442# define LCR_DLS_5 (0UL << 0)
443# define LCR_DLS_6 (1UL << 0)
444# define LCR_DLS_7 (2UL << 0)
445# define LCR_DLS_8 (3UL << 0)
446# define UART_MCR 0x010
447# define MCR_SIRE (1UL << 6)
448# define MCR_AFCE (1UL << 5)
449# define MCR_LOOP (1UL << 4)
450# define MCR_RTS (1UL << 1)
451# define MCR_DTR (1UL << 0)
452
453# define UART_LSR 0x014
454# define UART_MSR 0x018
455# define UART_SCH 0x01c
456# define UART_USR 0x07c
457# define USR_RFF (1UL << 4)
458# define USR_RFNE (1UL << 3)
459# define USR_TFE (1UL << 2)
460# define USR_TFNF (1UL << 1)
461# define USR_BUSY (1UL << 0)
462# define UART_TFL 0x080
463# define UART_RFL 0x084
464# define UART_HALT 0x0a4
465
466
467// SPI
468#define SPI0_BASE ((spi_reg_t *)0x01c05000)
469#define SPI1_BASE ((spi_reg_t *)0x01c06000)
470# define SPI_GCR 0x004
471# define GCR_EN (1UL << 0)
472# define GCR_MODE (1UL << 1)
473# define GCR_MODE_MASTE (1UL << 1)
474# define GCR_MODE_SLAVE (0UL << 1)
475# define GCR_TP_EN (1UL << 7)
476# define GCR_SRST (1UL << 31)
477# define SPI_TCR 0x008
478# define __TCR_CPHA(__CPHA) ((__CPHA) << 0)
479# define __TCR_CPOL(__CPOL) (((__CPOL) ^ 1) << 1)
480# define __TCR_SPOL(__SPOL) (((__SPOL) ^ 1) << 2)
481// CPHA in [0, 1]
482# define TCR_CPHA(...) __TCR_CPHA((1, ##__VA_ARGS__))
483// CPOL in [0, 1]
484# define TCR_CPOL(...) __TCR_CPOL((0, ##__VA_ARGS__))
485// SPOL in [0, 1]
486# define TCR_SPOL(...) __TCR_SPOL((0, ##__VA_ARGS__))
487# define TCR_SSCTL (1UL << 3)
488# define __TCR_SS_SEL(__SEL) ((__SEL) << 4)
489// SEL in [0 .. 3]
490# define TCR_SS_SEL(...) __TCR_SS_SEL((3, ##__VA_ARGS__))
491# define TCR_SS_OWNER (1UL << 6)
492# define TCR_SS_OWNER_SPI (0UL << 6)
493# define TCR_SS_OWNER_SOFTWARE (1UL << 6)
494# define __TCR_SS_LEVEL(__LVL) ((__LVL) << 7)
495// LVL in [0 .. 1]
496# define TCR_SS_LEVEL(...) __TCR_SS_LEVEL((1, ##__VA_ARGS__))
497# define TCR_DHB (1UL << 8)
498# define TCR_DDB (1UL << 9)
499# define TCR_RPSM (1UL << 10)
500# define TCR_RPSM_NORMAL (0UL << 10)
501# define TCR_RPSM_RAPID (1UL << 10)
502# define TCR_SDC (1UL << 11)
503# define TCR_FBS (1UL << 12)
504# define TCR_FBS_MSB_FIRST (0UL << 12)
505# define TCR_FBS_LSB_FIRST (1UL << 12)
506# define TCR_SDM (1UL << 13)
507# define TCR_XCH (1UL << 31)
508# define SPI_IER 0x010
509# define SPI_ISR 0x014
510# define SPI_FCR 0x018
511# define FCR_RX_TRIG_LEVEL(__LVL) ((__LVL) << 0)
512# define FCR_RF_DRQ_EN (1UL << 8)
513# define FCR_RX_DMA_MODE (1UL << 9)
514# define FCR_RX_DMA_MODE_NORMAL (0UL << 9)
515# define FCR_RX_DMA_MODE_DEDICATE (1UL << 9)
516# define FCR_RX_FIFO_ACCESS_SIZE (3UL << 10)
517# define FCR_RX_FIFO_ACCESS_SIZE_BYTE (0UL << 10)
518# define FCR_RX_FIFO_ACCESS_SIZE_WORD (1UL << 10)
519# define FCR_RX_FIFO_ACCESS_SIZE_BY_BUS (3UL << 10)
520# define FCR_RF_TEST (1UL << 14)
521# define FCR_RF_RST (1UL << 15)
522# define FCR_TX_TRIG_LEVEL(__LVL) ((__LVL) << 16)
523# define FCR_TX_FIFO_ACCESS_SIZE (3UL << 26)
524# define FCR_TX_FIFO_ACCESS_SIZE_BYTE (0UL << 26)
525# define FCR_TX_FIFO_ACCESS_SIZE_WORD (1UL << 26)
526# define FCR_TX_FIFO_ACCESS_SIZE_BY_BUS (3UL << 26)
527# define FCR_TF_TEST (1UL << 30)
528# define FCR_TF_RST (1UL << 31)
529# define SPI_FSR 0x01c
530# define SPI_WCR 0x020
531# define SPI_CCR 0x024
532# define CCR_CDR2(__N) ((__N) << 0)
533# define CCR_CDR1(_N) ((__N) << 8)
534# define CCR_DRS (1UL << 12)
535# define CCR_DRS_CDR1 (0UL << 12)
536# define CCR_DRS_CDR2 (1UL << 12)
537# define SPI_MBC 0x030
538# define SPI_MTC 0x034
539# define SPI_BCC 0x038
540# define SPI_TXD 0x200
541# define SPI_RXD 0x300
542
543
544#define TCON_BASE ((tcon_reg_t *)0x01C0C000)
545# define TCON_CTRL 0x000
546# define TCON_CTRL_MODULE_EN (1UL << 31)
547# define TCON_CTRL_IO_MAP_SEL (1UL << 0)
548# define TCON_CTRL_IO_MAP_SEL_TCON0 (0UL << 0)
549# define TCON_CTRL_IO_MAP_SEL_TCON1 (1UL << 0)
550# define TCON_INT_REG0 0x004
551# define TCON_INT_REG1 0x008
552# define TCON_FRM_CTRL 0x010
553# define TCON_FRM_CTRL_TCON0_FRM_EN (1UL << 31)
554# define TCON_FRM_CTRL_TCON0_FRM_MODE_R (1UL << 6)
555# define TCON_FRM_CTRL_TCON0_FRM_MODE_R6 (0UL << 6)
556# define TCON_FRM_CTRL_TCON0_FRM_MODE_R5 (1UL << 6)
557# define TCON_FRM_CTRL_TCON0_FRM_MODE_G (1UL << 5)
558# define TCON_FRM_CTRL_TCON0_FRM_MODE_G6 (0UL << 5)
559# define TCON_FRM_CTRL_TCON0_FRM_MODE_G5 (1UL << 5)
560# define TCON_FRM_CTRL_TCON0_FRM_MODE_B (1UL << 4)
561# define TCON_FRM_CTRL_TCON0_FRM_MODE_B6 (0UL << 4)
562# define TCON_FRM_CTRL_TCON0_FRM_MODE_B5 (1UL << 4)
563# define TCON_FRM_SEED0_R 0x014
564# define TCON_FRM_SEED0_G 0x018
565# define TCON_FRM_SEED0_B 0x01c
566# define TCON_FRM_SEED1_R 0x020
567# define TCON_FRM_SEED1_G 0x024
568# define TCON_FRM_SEED1_B 0x028
569# define TCON_FRM_TBL0 0x02c
570# define TCON_FRM_TBL1 0x030
571# define TCON_FRM_TBL2 0x034
572# define TCON_FRM_TBL3 0x038
573# define TCON0_CTRL 0x040
574# define TCON0_CTRL_EN (1UL << 31)
575# define TCON0_CTRL_IF (3UL << 24)
576# define TCON0_CTRL_IF_HV (0UL << 24)
577# define TCON0_CTRL_IF_8080 (1UL << 24)
578# define TCON0_CTRL_RBG_GBR (1UL << 23)
579# define __TCON0_CTRL_STA_DLY(__DLY) ((__DLY) << 4)
580# define TCON0_CTRL_STA_DLY(...) __TCON0_CTRL_STA_DLY((0x1FUL, ##__VA_ARGS__))
581# define TCON0_CLK_CTRL 0x044
582// TODO: MAYBE ERROR
583# define TCON0_CLK_CTRL_LCKL_EN (0xFUL << 28)
584# define __TCON0_CLK_CTRL_DCLKDIV(__DIV) ((__DIV) << 0)
585// Tdclk = Tsclk * DCLKDIV
586// if DCLK1 and DCLK2 are used, DIV in (5, 96)
587// if DCLK only, DIV in [2, 4 .. 255]
588# define TCON0_CLK_CTRL_DCLKDIV(...) __TCON0_CLK_CTRL_DCLKDIV((255UL, ##__VA_ARGS__))
589# define TCON0_BASIC_TIMING0 0x048
590# define TCON0_BASIC_TIMING1 0x04c
591# define TCON0_BASIC_TIMING2 0x050
592# define TCON0_BASIC_TIMING3 0x054
593# define TCON0_HV_TIMING 0x058
594# define TCON0_CPU_IF 0x060
595# define TCON0_CPU_WR 0x064
596# define TCON0_CPU_RD 0x068
597# define TCON0_CPU_RD_NX 0x06c
598# define TCON0_IO_CTRL0 0x088
599# define TCON0_IO_CTRL0_DCLK_SEL (3UL << 28)
600# define TCON0_IO_CTRL0_DCLK_SEL_DCLK0 (0UL << 28)
601# define TCON0_IO_CTRL0_DCLK_SEL_DCLK1 (1UL << 28)
602# define TCON0_IO_CTRL0_DCLK_SEL_DCLK2 (2UL << 28)
603# define TCON0_IO_CTRL0_IO3_INV (1UL << 27) // DEN
604# define TCON0_IO_CTRL0_IO2_INV (1UL << 26) // CLK
605# define TCON0_IO_CTRL0_IO1_INV (1UL << 25) // H_SYNC
606# define TCON0_IO_CTRL0_IO0_INV (1UL << 24) // V_SYNC
607# define TCON0_IO_CTRL1 0x08c
608# define TCON1_CTRL 0x090
609# define TCON1_CTRL_EN (1UL << 31)
610# define TCON1_BASIC0 0x094
611# define TCON1_BASIC1 0x098
612# define TCON1_BASIC2 0x09c
613# define TCON1_BASIC3 0x0a0
614# define TCON1_BASIC4 0x0a4
615# define TCON1_BASIC5 0x0a8
616# define TCON1_IO_CTRL0 0x0f0
617# define TCON1_IO_CTRL1 0x0f4
618# define TCON_DEBUG_INFO 0x0fc
619
620
621#define DEBE_BASE ((debe_reg_t *)0x01E60000)
622# define DEBE_MODE_CTRL 0x800
623// LAYER in [0 .. 3]
624# define DEBE_MODE_CTRL_LAYER_EN(__LAYER) ((1UL << __LAYER) << 8)
625# define DEBE_MODE_CTRL_CHANNEL_START (1UL << 1)
626# define DEBE_MODE_CTRL_DEBE_EN (1UL << 0)
627# define DEBE_BACKCOLOR 0x804
628# define DEBE_DISP_SIZE 0x808
629// W: 11-bit
630# define DEBE_DISP_SIZE_WIDTH(__W) (((__W) - 1) << 0)
631// H: 11-bit
632# define DEBE_DISP_SIZE_HEIGHT(__H) (((__H) - 1) << 16)
633# define DEBE_LAY0_SIZE 0x810
634# define DEBE_LAY1_SIZE 0x814
635# define DEBE_LAY2_SIZE 0x818
636# define DEBE_LAY3_SIZE 0x81c
637// W: 11-bit
638# define DEBE_LAY_SIZE_WIDTH(__W) (((__W) - 1) << 0)
639// H: 11-bit
640# define DEBE_LAY_SIZE_HEIGHT(__H) (((__H) - 1) << 16)
641# define DEBE_LAY0_CODNT 0x820
642# define DEBE_LAY1_CODNT 0x824
643# define DEBE_LAY2_CODNT 0x828
644# define DEBE_LAY3_CODNT 0x82c
645# define DEBE_LAY_CODNT_X(__X) ((__X) << 0)
646# define DEBE_LAY_CODNT_Y(__Y) ((__Y) << 16)
647# define DEBE_LAY0_LINEWIDTH 0x840
648# define DEBE_LAY1_LINEWIDTH 0x844
649# define DEBE_LAY2_LINEWIDTH 0x848
650# define DEBE_LAY3_LINEWIDTH 0x84c
651# define DEBE_LAY_LINEWIDTH_BIT(__W) (__W)
652# define DEBE_LAY_LINEWIDTH_BYTE(__W) ((__W) << 3)
653# define DEBE_LAY_LINEWIDTH_HWORD(__W) ((__W) << 4)
654# define DEBE_LAY_LINEWIDTH_WORD(__W) ((__W) << 5)
655# define DEBE_LAY0_FB_ADDR0 0x850
656# define DEBE_LAY1_FB_ADDR0 0x854
657# define DEBE_LAY2_FB_ADDR0 0x858
658# define DEBE_LAY3_FB_ADDR0 0x85c
659# define DEBE_LAY0_FB_ADDR1 0x860
660# define DEBE_LAY1_FB_ADDR1 0x864
661# define DEBE_LAY2_FB_ADDR1 0x868
662# define DEBE_LAY3_FB_ADDR1 0x86c
663# define DEBE_REGBUFF_CTRL 0x870
664# define DEBE_REGBUFF_CTRL_DIABLE_AUTO_RELOAD (1UL << 1)
665# define DEBE_REGBUFF_CTRL_RELOAD (1UL << 0)
666# define DEBE_CK_MAX 0x880
667# define DEBE_CK_MIN 0x884
668# define DEBE_CK_CFG 0x888
669# define DEBE_LAY0_ATT_CTRL0 0x890
670# define DEBE_LAY1_ATT_CTRL0 0x894
671# define DEBE_LAY2_ATT_CTRL0 0x898
672# define DEBE_LAY3_ATT_CTRL0 0x89c
673# define DEBE_LAY0_ATT_CTRL1 0x8a0
674# define DEBE_LAY1_ATT_CTRL1 0x8a4
675# define DEBE_LAY2_ATT_CTRL1 0x8a8
676# define DEBE_LAY3_ATT_CTRL1 0x8ac
677# define DEBE_HWC_CTRL 0x8d8
678# define DEBE_HWCFB_CTRL 0x8e0
679# define DEBE_WB_CTRL 0x8f0
680# define DEBE_WB_ADDR 0x8f4
681# define DEBE_WB_LW 0x8f8
682# define DEBE_IYUV_CH_CTRL 0x920
683# define DEBE_CH0_YUV_FB_ADDR 0x930
684# define DEBE_CH1_YUV_FB_ADDR 0x934
685# define DEBE_CH2_YUV_FB_ADDR 0x938
686# define DEBE_CH0_YUV_BLW 0x940
687# define DEBE_CH1_YUV_BLW 0x944
688# define DEBE_CH2_YUV_BLW 0x948
689# define DEBE_COEF00 0x950
690# define DEBE_COEF01 0x954
691# define DEBE_COEF02 0x958
692# define DEBE_COEF03 0x95c
693# define DEBE_COEF10 0x960
694# define DEBE_COEF11 0x964
695# define DEBE_COEF12 0x968
696# define DEBE_COEF13 0x96c
697# define DEBE_COEF20 0x970
698# define DEBE_COEF21 0x974
699# define DEBE_COEF22 0x978
700# define DEBE_COEF23 0x97c
701
702
703#define TVE_BASE ((tve_reg_t *)0x01c0a000)
704# define TVE_ENABLE 0x000
705# define __TVE_ENABLE_DAC_MAP(__DAC, __OUT) ((__OUT) << (((__DAC) + 1) << 2))
706# define TVE_ENABLE_DAC_MAP(__DAC, ...) __TVE_ENABLE_DAC_MAP(_DAC, (0xF, ##__VA_ARGS__))
707# define TVE_ENABLE_EN (1UL << 0)
708# define TVE_CFG0 0x004
709# define TVE_CFG0_YC_EN (1UL << 17)
710# define TVE_CFG0_CVBS_EN (1UL << 16)
711# define TVE_CFG0_TVMODE_SELECT(...) ((0xF, ##__VA_ARGS__) << 0)
712# define TVE_DAC1 0x008
713# define TVE_DAC1_CLOCK_INVERT (1UL << 24)
714# define TVE_DAC1_DAC_EN(__DAC) (1UL << (__DAC))
715# define TVE_NOTCH 0x00c
716# define TVE_CHROMA_FREQUENCY 0x010
717# define TVE_PORCH 0x014
718# define TVE_LINE 0x01c
719# define TVE_LEVEL 0x020
720# define TVE_DAC2 0x024
721# define TVE_DETECT_STATUS 0x038
722# define TVE_CBCR_LEVEL 0x10c
723# define TVE_BURST_WIDTH 0x114
724# define TVE_CBCR_GAIN 0x118
725# define TVE_SYNC_VBI 0x11c
726# define TVE_ACTIVE_LINE 0x124
727# define TVE_CHROMA 0x128
728# define TVE_ENCODER 0x12c
729# define TVE_RESYNC 0x130
730# define TVE_SLAVE 0x134
731
732
733#define TIMER_BASE ((timer_reg_t *)0x01c20c00)
734# define TMR_IRQ_EN 0x000
735# define TMR_IRQ_STA 0x004
736# define TMR0_CTRL 0x010
737# define TMR0_INTV_VALUE 0x014
738# define TMR0_CUR_VALUE 0x018
739# define TMR1_CTRL 0x020
740# define TMR1_INTV_VALUE 0x024
741# define TMR1_CUR_VALUE 0x028
742# define TMR2_CTRL 0x030
743# define TMR2_INTV_VALUE 0x034
744# define TMR2_CUR_VALUE 0x038
745# define TMR_CTRL_MODE (1UL << 7)
746# define TMR_CTRL_MODE_CONTINUOUS (0UL << 7)
747# define TMR_CTRL_MODE_SINGLE (1UL << 7)
748# define TMR_CTRL_CLK_SRC (3UL << 2)
749# define TMR_CTRL_CLK_SRC_LOSC (0UL << 2)
750# define TMR_CTRL_CLK_SRC_OSC24M (1UL << 2)
751# define TMR_CTRL_RELOAD (1UL << 1)
752# define TMR_CTRL_EN (1UL << 0)
753# define AVS_CNT_CTL 0x080
754# define AVS_CNT0 0x084
755# define AVS_CNT1 0x088
756# define AVS_CNT_DIV 0x08c
757# define WDOG_IRQ_EN 0x0a0
758# define WDOG_IRQ_STA 0x0a4
759# define WDOG_CTRL 0x0b0
760# define WDOG_CFG 0x0b4
761# define WDOG_MODE 0x0b8
762
763
764#define MUSB_BASE ((musb_reg_t *)0x01c13000)
765// use naming spec form musbmhdrc document
766# define MUSB_FAddr 0x0098
767# define MUSB_Power 0x0040
768# define MUSBD_Power_ISOUpdate (1UL << 7)
769# define MUSBD_Power_SoftConn (1UL << 6)
770# define MUSBD_Power_HSEnab (1UL << 5)
771# define MUSB_Power_HSMode (1UL << 4)
772# define MUSB_Power_Reset (1UL << 3)
773# define MUSB_Power_Resume (1UL << 2)
774# define MUSB_Power_SuspendMode (1UL << 1)
775# define MUSB_Power_EnableSuspendM (1UL << 0)
776# define MUSB_IntrTx 0x0044
777# define MUSB_IntrRx 0x0046
778# define MUSB_IntrTxE 0x0048
779# define MUSB_IntrRxE 0x004a
780# define MUSB_IntrUSB 0x004c
781# define MUSBD_IntrUSB_VBusError (1UL << 7)
782# define MUSB_IntrUSB_SessReq (1UL << 6)
783# define MUSB_IntrUSB_Discon (1UL << 5)
784# define MUSBH_IntrUSB_Conn (1UL << 4)
785# define MUSB_IntrUSB_SOF (1UL << 3)
786# define MUSBD_IntrUSB_Reset (1UL << 2)
787# define MUSBH_IntrUSB_Babble (1UL << 2)
788# define MUSB_IntrUSB_Resume (1UL << 1)
789# define MUSBD_IntrUSB_Suspend (1UL << 0)
790# define MUSB_IntrUSBE 0x0050
791# define MUSBD_IntrUSBE_VBusError (1UL << 7)
792# define MUSB_IntrUSBE_SessReq (1UL << 6)
793# define MUSB_IntrUSBE_Discon (1UL << 5)
794# define MUSBH_IntrUSBE_Conn (1UL << 4)
795# define MUSB_IntrUSBE_SOF (1UL << 3)
796# define MUSBD_IntrUSBE_Reset (1UL << 2)
797# define MUSBH_IntrUSBE_Babble (1UL << 2)
798# define MUSB_IntrUSBE_Resume (1UL << 1)
799# define MUSBD_IntrUSBE_Suspend (1UL << 0)
800# define MUSB_Frame 0x0054
801# define MUSB_Index 0x0042
802# define MUSB_Testmode 0x007c
803
804# define MUSB_TxMaxP 0x0080
805# define MUSB_CSR0 0x0082
806# define MUSBD_CSR0_FlushFIFO (1UL << 8)
807# define MUSBD_CSR0_ServicedSetupEnd (1UL << 7)
808# define MUSBD_CSR0_ServicedRxPktRdy (1UL << 6)
809# define MUSBD_CSR0_SendStall (1UL << 5)
810# define MUSBD_CSR0_SetupEnd (1UL << 4)
811# define MUSBD_CSR0_DataEnd (1UL << 3)
812# define MUSBD_CSR0_SentStall (1UL << 2)
813# define MUSBD_CSR0_TxPktRdy (1UL << 1)
814# define MUSBD_CSR0_RxPktRdy (1UL << 0)
815
816# define MUSBH_CSR0_DisPing (1UL << 11)
817# define MUSBH_CSR0_DataToggleWrEnable (1UL << 10)
818# define MUSBH_CSR0_DataToggle (1UL << 9)
819# define MUSBH_CSR0_FlushFIFO (1UL << 8)
820# define MUSBH_CSR0_NAKTimeout (1UL << 7)
821# define MUSBH_CSR0_StatusPkt (1UL << 6)
822# define MUSBH_CSR0_ReqPkt (1UL << 5)
823# define MUSBH_CSR0_Error (1UL << 4)
824# define MUSBH_CSR0_SetupPkt (1UL << 3)
825# define MUSBH_CSR0_RxStall (1UL << 2)
826# define MUSBH_CSR0_TxPktRdy (1UL << 1)
827# define MUSBH_CSR0_RxPktRdy (1UL << 0)
828# define MUSB_TxCSR 0x0082
829# define MUSBD_TxCSRL_IncompTx (1UL << 7)
830# define MUSBD_TxCSRL_ClrDataTog (1UL << 6)
831# define MUSBD_TxCSRL_SentStall (1UL << 5)
832# define MUSBD_TxCSRL_SendStall (1UL << 4)
833# define MUSBD_TxCSRL_FlushFIFO (1UL << 3)
834# define MUSBD_TxCSRL_UnderRun (1UL << 2)
835# define MUSBD_TxCSRL_FIFONotEmpty (1UL << 1)
836# define MUSBD_TxCSRL_TxPktRdy (1UL << 0)
837# define MUSBD_TxCSRH_NAKTimeout (1UL << 7)
838# define MUSBD_TxCSRH_AutoSet (1UL << 7)
839# define MUSBD_TxCSRH_ISO (1UL << 6)
840# define MUSBD_TxCSRH_Mode (1UL << 5)
841# define MUSBD_TxCSRH_Mode_Tx (1UL << 5)
842# define MUSBD_TxCSRH_Mode_Rx (0UL << 5)
843# define MUSBD_TxCSRH_DMAReqEnab (1UL << 4)
844# define MUSBD_TxCSRH_FrcDataTog (1UL << 3)
845# define MUSBD_TxCSRH_DMAReqMode (1UL << 2)
846
847# define MUSBH_TxCSRL_NAKTimeout (1UL << 7)
848# define MUSBH_TxCSRL_IncomTx (1UL << 7)
849# define MUSBH_TxCSRL_ClrDataTog (1UL << 6)
850# define MUSBH_TxCSRL_RxStall (1UL << 5)
851# define MUSBH_TxCSRL_SetupPkt (1UL << 4)
852# define MUSBH_TxCSRL_FlushFIFO (1UL << 3)
853# define MUSBH_TxCSRL_Error (1UL << 2)
854# define MUSBH_TxCSRL_FIFONotEmpty (1UL << 1)
855# define MUSBH_TxCSRL_TxPktRdy (1UL << 0)
856# define MUSBH_TxCSRH_AutoSet (1UL << 7)
857# define MUSBH_TxCSRH_Mode (1UL << 6)
858# define MUSBH_TxCSRH_Mode_Tx (1UL << 5)
859# define MUSBH_TxCSRH_Mode_Rx (0UL << 5)
860# define MUSBH_TxCSRH_DMAReqEnab (1UL << 4)
861# define MUSBH_TxCSRH_FrcDataTog (1UL << 3)
862# define MUSBH_TxCSRH_DMAReqMode (1UL << 2)
863# define MUSBH_TxCSRH_DataToggleWrEnable (1UL << 1)
864# define MUSBH_TxCSRH_DataToggle (1UL << 0)
865# define MUSB_RxMaxP 0x0084
866# define MUSB_RxCSR 0x0086
867# define MUSBD_RxCSRL_ClrDataTog (1UL << 7)
868# define MUSBD_RxCSRL_SentStall (1UL << 6)
869# define MUSBD_RxCSRL_SendStall (1UL << 5)
870# define MUSBD_RxCSRL_FlushFIFO (1UL << 4)
871# define MUSBD_RxCSRL_DataError (1UL << 3)
872# define MUSBD_RxCSRL_OverRun (1UL << 2)
873# define MUSBD_RxCSRL_FIFOFull (1UL << 1)
874# define MUSBD_RxCSRL_RxPktRdy (1UL << 0)
875# define MUSBD_RxCSRH_AutoClear (1UL << 7)
876# define MUSBD_RxCSRH_ISO (1UL << 6)
877# define MUSBD_RxCSRH_DMAReqEnab (1UL << 5)
878# define MUSBD_RxCSRH_DisNyet (1UL << 4)
879# define MUSBD_RxCSRH_PIDError (1UL << 4)
880# define MUSBD_RxCSRH_DMAReqMode (1UL << 3)
881# define MUSBD_RxCSRH_IncompRx (1UL << 0)
882
883# define MUSBH_RxCSRL_ClrDataTog (1UL << 7)
884# define MUSBH_RxCSRL_RxStall (1UL << 6)
885# define MUSBH_RxCSRL_ReqPkt (1UL << 5)
886# define MUSBH_RxCSRL_FlushFIFO (1UL << 4)
887# define MUSBH_RxCSRL_DataError (1UL << 3)
888# define MUSBH_RxCSRL_NAKTimeout (1UL << 3)
889# define MUSBH_RxCSRL_Error (1UL << 2)
890# define MUSBH_RxCSRL_FIFOFull (1UL << 1)
891# define MUSBH_RxCSRL_RxPktRdy (1UL << 0)
892# define MUSBH_RxCSRH_AutoClear (1UL << 7)
893# define MUSBH_RxCSRH_AutoReq (1UL << 6)
894# define MUSBH_RxCSRH_DMAReqEnab (1UL << 5)
895# define MUSBH_RxCSRH_PIDError (1UL << 4)
896# define MUSBH_RxCSRH_DMAReqMode (1UL << 3)
897# define MUSBH_RxCSRH_DataToggleWrEnable (1UL << 2)
898# define MUSBH_RxCSRH_DataToggle (1UL << 1)
899# define MUSBH_RxCSRH_IncompRx (1UL << 0)
900# define MUSB_Count0 0x0088
901# define MUSB_RxCount 0x0088
902# define MUSB_Type0 0x008c
903# define MUSB_TxType 0x008c
904# define MUSB_NAKLimit0 0x008d
905# define MUSB_TxInterval 0x008d
906# define MUSB_RxType 0x008e
907# define MUSB_RxInterval 0x008f
908# define MUSB_ConfigData 0x001f
909
910# define MUSB_FIFO0 0x0000
911# define MUSB_FIFO1 0x0004
912# define MUSB_FIFO2 0x0008
913# define MUSB_FIFO3 0x000c
914# define MUSB_FIFO4 0x0010
915# define MUSB_FIFO5 0x0014
916
917# define MUSB_DevCtl 0x0041
918# define MUSB_DevCtl_FSDev (1UL << 6)
919# define MUSB_DevCtl_LSDev (1UL << 5)
920# define MUSB_DevCtl_HostMode (1UL << 2)
921# define MUSB_DevCtl_Session (1UL << 0)
922# define MUSB_MISC
923# define MUSB_TxFIFOsz 0x0090
924# define MUSB_RxFIFOsz 0x0094
925# define MUSB_TxFIFOadd 0x0092
926# define MUSB_RxFIFOadd 0x0096
927# define MUSB_TxFuncAddr 0x0098
928# define MUSB_TxHubAddr 0x009a
929# define MUSB_TxHubPort 0x009b
930# define MUSB_RxFuncAddr 0x009c
931# define MUSB_RxHubAddr 0x009e
932# define MUSB_RxHubPort 0x009f
933
934# define MUSB_Vendor0 0x0043
935# define MUSB_Vendor1 0x007d
936# define MUSB_Vendor2 0x007e
937# define MUSB_HWVers
938# define MUSB_EPInfo 0x0078
939# define MUSB_RAMInfo 0x0079
940# define MUSB_LinkInfo 0x007a
941# define MUSB_VPLen 0x007b
942# define MUSB_HS_EOF1 0x007c
943# define MUSB_FS_EOF1 0x007d
944# define MUSB_LS_EOF1 0x007e
945# define MUSB_SOFT_RST
946
947# define MUSB_ISCR 0x0400
948# define MUSB_ISCR_VBUS_VALID_FROM_DATA (1UL << 30)
949# define MUSB_ISCR_VBUS_VALID_FROM_VBUS (1UL << 29)
950# define MUSB_ISCR_EXT_ID_STATUS (1UL << 28)
951# define MUSB_ISCR_EXT_DM_STATUS (1UL << 27)
952# define MUSB_ISCR_EXT_DP_STATUS (1UL << 26)
953# define MUSB_ISCR_MERGED_VBUS_STATUS (1UL << 25)
954# define MUSB_ISCR_MERGED_ID_STATUS (1UL << 24)
955# define MUSB_ISCR_ID_PULLUP_EN (1UL << 17)
956# define MUSB_ISCR_DPDM_PULLUP_EN (1UL << 16)
957# define MUSB_ISCR_FORCE_ID (3UL << 14)
958# define MUSB_ISCR_FORCE_ID_DEVICE (3UL << 14)
959# define MUSB_ISCR_FORCE_ID_HOST (2UL << 14)
960# define MUSB_ISCR_FORCE_VBUS_VALID (3UL << 12)
961# define MUSB_ISCR_FORCE_VBUS_VALID_HIGH (3UL << 12)
962# define MUSB_ISCR_FORCE_VBUS_VALID_LOW (2UL << 12)
963# define MUSB_ISCR_VBUS_VALID_SRC (1UL << 10)
964# define MUSB_ISCR_HOSC_EN (1UL << 7)
965# define MUSB_ISCR_VBUS_CHANGE_DETECT (1UL << 6)
966# define MUSB_ISCR_ID_CHANGE_DETECT (1UL << 5)
967# define MUSB_ISCR_DPDM_CHANGE_DETECT (1UL << 4)
968# define MUSB_ISCR_IRQ_ENABLE (1UL << 3)
969# define MUSB_ISCR_VBUS_CHANGE_DETECT_EN (1UL << 2)
970# define MUSB_ISCR_ID_CHANGE_DETECT_EN (1UL << 1)
971# define MUSB_ISCR_DPDM_CHANGE_DETECT_EN (1UL << 0)
972
973
974#define TP_BASE ((tp_reg_t *)0x01c24800)
975# define TP_CTRL0 0x00
976 #define ADC_FIRST_DLY(__DLY) ((__DLY) << 24) /* 8 bits */
977 #define ADC_FIRST_DLY_MODE(__DLY_MODE) ((__DLY_MODE) << 23)
978 #define ADC_CLK_SEL(__CLK_SEL) ((__CLK_SEL) << 22)
979 #define ADC_CLK_DIV(__CLK_DIV) ((__CLK_DIV) << 20) /* 3 bits */
980 #define FS_DIV(x) ((x) << 16) /* 4 bits */
981 #define T_ACQ(x) ((x) << 0) /* 16 bits */
982# define TP_CTRL1 0x04
983 #define STYLUS_UP_DEBOUN(x) ((x) << 12) /* 8 bits */
984 #define STYLUS_UP_DEBOUN_EN(x) ((x) << 9)
985 #define TOUCH_PAN_CALI_EN(x) ((x) << 6)
986 #define TP_DUAL_EN(x) ((x) << 5)
987 #define TP_MODE_EN(x) ((x) << 4)
988 #define TP_ADC_SELECT(x) ((x) << 3)
989 #define ADC_CHAN_SELECT(x) ((x) << 0) /* 3 bits */
990# define TP_CTRL2 0x08
991 #define TP_SENSITIVE_ADJUST(x) ((x) << 28) /* 4 bits */
992 #define TP_MODE_SELECT(x) ((x) << 26) /* 2 bits */
993 #define PRE_MEA_EN(x) ((x) << 24)
994 #define PRE_MEA_THRE_CNT(x) ((x) << 0) /* 24 bits */
995# define TP_CTRL3 0x0c
996 #define FILTER_EN(x) ((x) << 2)
997 #define FILTER_TYPE(x) ((x) << 0) /* 2 bits */
998# define TP_INT_FIFOC 0x10
999 #define TEMP_IRQ_EN(x) ((x) << 18)
1000 #define OVERRUN_IRQ_EN(x) ((x) << 17)
1001 #define DATA_IRQ_EN(x) ((x) << 16)
1002 #define TP_DATA_XY_CHANGE(x) ((x) << 13)
1003 #define FIFO_TRIG(x) ((x) << 8) /* 5 bits */
1004 #define DATA_DRQ_EN(x) ((x) << 7)
1005 #define FIFO_FLUSH(x) ((x) << 4)
1006 #define TP_UP_IRQ_EN(x) ((x) << 1)
1007 #define TP_DOWN_IRQ_EN(x) ((x) << 0)
1008# define TP_INT_FIFOS 0x14
1009 #define TEMP_DATA_PENDING (1 << 18)
1010 #define FIFO_OVERRUN_PENDING (1 << 17)
1011 #define FIFO_DATA_PENDING (1 << 16)
1012 #define TP_IDLE_FLG (1 << 2)
1013 #define TP_UP_PENDING (1 << 1)
1014 #define TP_DOWN_PENDING (1 << 0)
1015# define TP_TPR 0x18
1016 #define TEMP_ENABLE(x) ((x) << 16)
1017 #define TEMP_PERIOD(x) ((x) << 0) /* t = x * 256 * 16 / clkin */
1018# define TP_CDAT 0x1c
1019# define TP_TEMP_DATA 0x20
1020# define TP_DATA 0x24
1021
1022/*============================ MACROFIED FUNCTIONS ===========================*/
1023
1024#define read_reg8(__base, __reg) (*(volatile uint8_t *)((uint32_t)(__base) + (__reg)))
1025#define read_reg16(__base, __reg) (*(volatile uint16_t *)((uint32_t)(__base) + (__reg)))
1026#define read_reg32(__base, __reg) (*(volatile uint32_t *)((uint32_t)(__base) + (__reg)))
1027#define write_reg8(__base, __reg, __value) (*(volatile uint8_t *)((uint32_t)(__base) + (__reg)) = (uint8_t)(__value))
1028#define write_reg16(__base, __reg, __value) (*(volatile uint16_t *)((uint32_t)(__base) + (__reg)) = (uint16_t)(__value))
1029#define write_reg32(__base, __reg, __value) (*(volatile uint32_t *)((uint32_t)(__base) + (__reg)) = (uint32_t)(__value))
1030
1031/*============================ TYPES =========================================*/
1032
1033// copied from utilities/compiler/__common/__type.h
1034#ifndef __REG_TYPE__
1035#define __REG_TYPE__
1036
1037typedef volatile uint8_t reg8_t;
1038typedef volatile uint16_t reg16_t;
1039typedef volatile uint32_t reg32_t;
1040
1041#define __REG_CONNECT(__A, __B) __A##__B
1042#define __REG_RSVD_NAME(__NAME) __REG_CONNECT(__unused_, __NAME)
1043
1044#define ____REG_RSVD(__NAME, __BIT) \
1045 reg##__BIT##_t __NAME : __BIT;
1046#define ____REG_RSVD_N(__NAME, __BIT, __N) \
1047 reg##__BIT##_t __NAME[__N];
1048#define __REG_RSVD(__BIT) ____REG_RSVD(REG_RSVD_NAME, __BIT)
1049#define __REG_RSVD_N(__BIT, __N) ____REG_RSVD_N(REG_RSVD_NAME, __BIT, (__N))
1050
1051#define REG_RSVD_NAME __REG_RSVD_NAME(__LINE__)
1052#define REG_RSVD(__BIT) __REG_RSVD(__BIT)
1053#define REG_RSVD_N(__BIT, __N) __REG_RSVD_N(__BIT, (__N))
1054
1055#define REG_RSVD_U8 REG_RSVD(8)
1056#define REG_RSVD_U16 REG_RSVD(16)
1057#define REG_RSVD_U32 REG_RSVD(32)
1058
1059#define REG_RSVD_U8N(__N) REG_RSVD_N(8, (__N))
1060#define REG_RSVD_U16N(__N) REG_RSVD_N(16, (__N))
1061#define REG_RSVD_U32N(__N) REG_RSVD_N(32, (__N))
1062
1063#define REG8_RSVD_N(__N) REG_RSVD_U8N(__N)
1064#define REG8_RSVD_B(__BYTE_CNT) REG8_RSVD_N(__BYTE_CNT)
1065#define REG8_RSVD_8B REG8_RSVD_B(8)
1066#define REG8_RSVD_16B REG8_RSVD_B(16)
1067#define REG8_RSVD_32B REG8_RSVD_B(32)
1068#define REG8_RSVD_64B REG8_RSVD_B(64)
1069#define REG8_RSVD_128B REG8_RSVD_B(128)
1070#define REG8_RSVD_256B REG8_RSVD_B(256)
1071#define REG8_RSVD_512B REG8_RSVD_B(512)
1072#define REG8_RSVD_1K REG8_RSVD_B(1024)
1073#define REG8_RSVD_2K REG8_RSVD_B(2048)
1074#define REG8_RSVD_4K REG8_RSVD_B(4096)
1075#define REG8_RSVD_8K REG8_RSVD_B(8192)
1076#define REG8_RSVD_16K REG8_RSVD_B(16 * 1024)
1077#define REG8_RSVD_32K REG8_RSVD_B(32 * 1024)
1078#define REG8_RSVD_64K REG8_RSVD_B(64 * 1024)
1079#define REG8_RSVD_128K REG8_RSVD_B(128 * 1024)
1080#define REG8_RSVD_256K REG8_RSVD_B(256 * 1024)
1081#define REG8_RSVD_512K REG8_RSVD_B(512 * 1024)
1082#define REG8_RSVD_1M REG8_RSVD_B(1024 * 1024)
1083
1084#define REG16_RSVD_N(__N) REG_RSVD_U16N(__N)
1085// __BYTE_CNT MUST be multiple of 2
1086#define REG16_RSVD_B(__BYTE_CNT) REG16_RSVD_N(__BYTE_CNT >> 1)
1087#define REG16_RSVD_8B REG16_RSVD_B(8)
1088#define REG16_RSVD_16B REG16_RSVD_B(16)
1089#define REG16_RSVD_32B REG16_RSVD_B(32)
1090#define REG16_RSVD_64B REG16_RSVD_B(64)
1091#define REG16_RSVD_128B REG16_RSVD_B(128)
1092#define REG16_RSVD_256B REG16_RSVD_B(256)
1093#define REG16_RSVD_512B REG16_RSVD_B(512)
1094#define REG16_RSVD_1K REG16_RSVD_B(1024)
1095#define REG16_RSVD_2K REG16_RSVD_B(2048)
1096#define REG16_RSVD_4K REG16_RSVD_B(4096)
1097#define REG16_RSVD_8K REG16_RSVD_B(8192)
1098#define REG16_RSVD_16K REG16_RSVD_B(16 * 1024)
1099#define REG16_RSVD_32K REG16_RSVD_B(32 * 1024)
1100#define REG16_RSVD_64K REG16_RSVD_B(64 * 1024)
1101#define REG16_RSVD_128K REG16_RSVD_B(128 * 1024)
1102#define REG16_RSVD_256K REG16_RSVD_B(256 * 1024)
1103#define REG16_RSVD_512K REG16_RSVD_B(512 * 1024)
1104#define REG16_RSVD_1M REG16_RSVD_B(1024 * 1024)
1105
1106#define REG32_RSVD_N(__N) REG_RSVD_U32N(__N)
1107// __BYTE_CNT MUST be multiple of 4
1108#define REG32_RSVD_B(__BYTE_CNT) REG_RSVD_U32N(__BYTE_CNT >> 2)
1109#define REG32_RSVD_8B REG32_RSVD_B(8)
1110#define REG32_RSVD_16B REG32_RSVD_B(16)
1111#define REG32_RSVD_32B REG32_RSVD_B(32)
1112#define REG32_RSVD_64B REG32_RSVD_B(64)
1113#define REG32_RSVD_128B REG32_RSVD_B(128)
1114#define REG32_RSVD_256B REG32_RSVD_B(256)
1115#define REG32_RSVD_512B REG32_RSVD_B(512)
1116#define REG32_RSVD_1K REG32_RSVD_B(1024)
1117#define REG32_RSVD_2K REG32_RSVD_B(2048)
1118#define REG32_RSVD_4K REG32_RSVD_B(4096)
1119#define REG32_RSVD_8K REG32_RSVD_B(8192)
1120#define REG32_RSVD_16K REG32_RSVD_B(16 * 1024)
1121#define REG32_RSVD_32K REG32_RSVD_B(32 * 1024)
1122#define REG32_RSVD_64K REG32_RSVD_B(64 * 1024)
1123#define REG32_RSVD_128K REG32_RSVD_B(128 * 1024)
1124#define REG32_RSVD_256K REG32_RSVD_B(256 * 1024)
1125#define REG32_RSVD_512K REG32_RSVD_B(512 * 1024)
1126#define REG32_RSVD_1M REG32_RSVD_B(1024 * 1024)
1127
1128#endif // __REG_TYPE__
1129
1130typedef enum IRQn
1131{
1141 SPI1_IRQn,
1149
1166
1176
1177
1178
1179typedef struct syscon_reg_t {
1180 REG_RSVD_U32N(1)
1183
1184typedef struct ccu_reg_t {
1186 REG_RSVD_U32N(1)
1187 reg32_t PLL_AUDIO_CTRL; // 0x008
1188 REG_RSVD_U32N(1)
1189 reg32_t PLL_VIDEO_CTRL; // 0x010
1190 REG_RSVD_U32N(1)
1191 reg32_t PLL_VE_CTRL; // 0x018
1192 REG_RSVD_U32N(1)
1193 reg32_t PLL_DDR_CTRL; // 0x020
1194 REG_RSVD_U32N(1)
1195 reg32_t PLL_PERIPH_CTRL; // 0x028
1196 REG_RSVD_U32N(9)
1197 reg32_t CPU_CLK_SRC; // 0x050
1198 reg32_t AHB_APB_HCLKC_CFG; // 0x054
1199 REG_RSVD_U32N(2)
1200 reg32_t BUS_CLK_GATING0; // 0x060
1201 reg32_t BUS_CLK_GATING1; // 0x064
1202 reg32_t BUS_CLK_GATING2; // 0x068
1203 REG_RSVD_U32N(7)
1204 reg32_t SDMMC0_CLK; // 0x088
1205 reg32_t SDMMC1_CLK; // 0x08c
1206 REG_RSVD_U32N(8)
1207 reg32_t DAUDIO_CLK; // 0x0b0
1208 reg32_t OWA_CLK; // 0x0b4
1209 reg32_t CIR_CLK; // 0x0b8
1210 REG_RSVD_U32N(4)
1211 reg32_t USBPHY_CLK; // 0x0cc
1212 REG_RSVD_U32N(12)
1213 reg32_t DRAM_GATING; // 0x100
1214 reg32_t BE_CLK; // 0x104
1215 REG_RSVD_U32N(1)
1216 reg32_t FE_CLK; // 0x10c
1217 REG_RSVD_U32N(2)
1218 reg32_t TCON_CLK; // 0x118
1219 reg32_t DI_CLK; // 0x11c
1220 reg32_t TVE_CLK; // 0x120
1221 reg32_t TVD_CLK; // 0x124
1222 REG_RSVD_U32N(3)
1223 reg32_t CSI_CLK; // 0x134
1224 REG_RSVD_U32N(1)
1225 reg32_t VE_CLK; // 0x13c
1226 reg32_t AUDIO_CODEC_CLK; // 0x140
1227 reg32_t AVS_CLK; // 0x144
1228 REG_RSVD_U32N(46)
1229 reg32_t PLL_STABLE_TIME0; // 0x200
1230 reg32_t PLL_STABLE_TIME1; // 0x204
1231 REG_RSVD_U32N(6)
1232 reg32_t PLL_CPU_BIAS; // 0x220
1233 reg32_t PLL_AUDIO_BIAS; // 0x224
1234 reg32_t PLL_VIDEO_BIAS; // 0x228
1235 reg32_t PLL_VE_BIAS; // 0x22c
1236 reg32_t PLL_DDR0_BIAS; // 0x230
1237 reg32_t PLL_PERIPH_BIAS; // 0x234
1238 REG_RSVD_U32N(6)
1239 reg32_t PLL_CPU_TUN; // 0x250
1240 REG_RSVD_U32N(3)
1241 reg32_t PLL_DDR_TUN; // 0x260
1242 REG_RSVD_U32N(8)
1243 reg32_t PLL_AUDIO_PAT_CTRL; // 0x284
1244 reg32_t PLL_VIDEO_PAT_CTRL; // 0x288
1245 REG_RSVD_U32N(1)
1246 reg32_t PLL_DDR0_PAT_CTRL; // 0x290
1247 REG_RSVD_U32N(11)
1248 reg32_t BUS_SOFT_RST0; // 0x2c0
1249 reg32_t BUS_SOFT_RST1; // 0x2c4
1250 REG_RSVD_U32N(2)
1251 reg32_t BUS_SOFT_RST2; // 0x2d0
1253
1254typedef struct dram_reg_t {
1255 reg32_t SCONR; // 0x000
1256 reg32_t STMG0R; // 0x004
1257 reg32_t STMG1R; // 0x008
1258 reg32_t SCTLR; // 0x00c
1259 reg32_t SREFR; // 0x010
1260 reg32_t SEXTMR; // 0x014
1261 REG_RSVD_U32N(3)
1262 reg32_t DDLYR; // 0x024
1263 reg32_t DADRR; // 0x028
1264 reg32_t DVALR; // 0x02c
1265 reg32_t DRPTR0; // 0x030
1266 reg32_t DRPTR1; // 0x034
1267 reg32_t DRPTR2; // 0x038
1268 reg32_t DRPTR3; // 0x03c
1269 reg32_t SEFR; // 0x040
1270 reg32_t MAE; // 0x044
1271 reg32_t ASPR; // 0x048
1272 reg32_t SDLY0; // 0x04C
1273 reg32_t SDLY1; // 0x050
1274 reg32_t SDLY2; // 0x054
1275 REG_RSVD_U32N(42)
1276 reg32_t MCR0; // 0x100
1277 reg32_t MCR1; // 0x104
1278 reg32_t MCR2; // 0x108
1279 reg32_t MCR3; // 0x10c
1280 reg32_t MCR4; // 0x110
1281 reg32_t MCR5; // 0x114
1282 reg32_t MCR6; // 0x118
1283 reg32_t MCR7; // 0x11c
1284 reg32_t MCR8; // 0x120
1285 reg32_t MCR9; // 0x124
1286 reg32_t MCR10; // 0x128
1287 reg32_t MCR11; // 0x12c
1288 REG_RSVD_U32N(4)
1289 reg32_t BWCR; // 0x140
1291
1292typedef struct pio_port_t {
1303
1304typedef struct pio_port_int_t {
1312 REG_RSVD_U32N(1)
1314
1315typedef struct pio_reg_t {
1316 union {
1317 pio_port_t PORT[6];
1318 struct {
1325 };
1326 };
1327 REG_RSVD_U32N(74)
1328 pio_port_int_t PORT_INT[3];
1329 REG_RSVD_U32N(24)
1330 reg32_t SDR_PAD_DRV;
1331 reg32_t SDR_PAD_PUL;
1333
1334typedef struct uart_reg_t {
1335 union {
1336 reg32_t RBR; // 0x000
1337 reg32_t THR; // 0x000
1338 reg32_t DLL; // 0x000
1339 };
1340 union {
1341 reg32_t DLH; // 0x004
1342 reg32_t IER; // 0x004
1343 };
1344 union {
1345 reg32_t IIR; // 0x008
1346 reg32_t FCR; // 0x008
1347 };
1348 reg32_t LCR; // 0x00c
1349 reg32_t MCR; // 0x010
1350 reg32_t LSR; // 0x014
1351 reg32_t MSR; // 0x018
1352 reg32_t SCH; // 0x01c
1353 REG_RSVD_U32N(23)
1354 reg32_t USR; // 0x07c
1355 reg32_t TFL; // 0x080
1356 reg32_t RFL; // 0x084
1357 REG_RSVD_U32N(7)
1358 reg32_t HALT; // 0x0a4
1360
1361typedef struct spi_reg_t {
1362 REG_RSVD_U32N(1)
1363 reg32_t GCR; // 0x004
1364 reg32_t TCR; // 0x008
1365 REG_RSVD_U32N(1)
1366 reg32_t IER; // 0x010
1367 reg32_t ISR; // 0x014
1368 reg32_t FCR; // 0x018
1369 reg32_t FSR; // 0x01c
1370 reg32_t WCR; // 0x020
1371 reg32_t CCR; // 0x024
1372 REG_RSVD_U32N(2)
1373 reg32_t MBC; // 0x030
1374 reg32_t MTC; // 0x034
1375 reg32_t BCC; // 0x038
1376 REG_RSVD_U32N(113)
1377 union {
1380 };
1381 REG_RSVD_U32N(63)
1382 union {
1385 };
1387
1388typedef struct tcon_reg_t {
1389 reg32_t CTRL; // 0x000
1392 REG_RSVD_U32N(1)
1393 reg32_t FRM_CTRL; // 0x010
1394 union {
1395 struct {
1402 };
1403 reg32_t FRM_SEED[6];
1404 };
1405 union {
1406 struct {
1411 };
1412 reg32_t FRM_TBL[4];
1413 };
1414 REG_RSVD_U32N(1)
1415 struct {
1416 reg32_t CTRL; // 0x040
1418 reg32_t BASIC_TIMING0; // 0x048: ACTIVE
1419 reg32_t BASIC_TIMING1; // 0x04c: HORIZONTAL
1420 reg32_t BASIC_TIMING2; // 0x050: VERTICAL
1421 reg32_t BASIC_TIMING3; // 0x054: SYNC
1423 REG_RSVD_U32N(1)
1424 reg32_t CPU_IF; // 0x060
1425 reg32_t CPU_WR; // 0x064
1426 reg32_t CPU_RD; // 0x068
1427 reg32_t CPU_RD_NX; // 0x06c
1428 REG_RSVD_U32N(6)
1429 reg32_t IO_CTRL0; // 0x088: PLORITY
1430 reg32_t IO_CTRL1; // 0x08c: TRISTATE
1431 } TCON0;
1432 struct {
1433 reg32_t CTRL; // 0x090
1434 reg32_t BASIC0; // 0x094
1435 reg32_t BASIC1; // 0x098
1436 reg32_t BASIC2; // 0x09c
1437 reg32_t BASIC3; // 0x0a0
1438 reg32_t BASIC4; // 0x0a4
1439 reg32_t BASIC5; // 0x0a8
1440 REG_RSVD_U32N(17)
1441 reg32_t IO_CTRL0; // 0x0f0: PLORITY
1442 reg32_t IO_CTRL1; // 0x0f4: TRISATE
1443 } TCON1;
1444 REG_RSVD_U32N(1)
1445 reg32_t DEBUG_INFO; // 0x0fc
1447
1448typedef struct debe_reg_t {
1449 REG_RSVD_U32N(512)
1450 reg32_t MODE_CTRL; // 0x800
1451 reg32_t BACKCOLOR; // 0x804
1452 reg32_t DISP_SIZE; // 0x808
1453 REG_RSVD_U32N(1)
1454 reg32_t LAY_SIZE[4]; // 0x810
1455 reg32_t LAY_CODNT[4]; // 0x820
1456 REG_RSVD_U32N(4)
1457 reg32_t LAY_LINEWIDTH[4]; // 0x840
1458 reg32_t LAY_FB_ADDR0[4]; // 0x850
1459 reg32_t LAY_FB_ADDR1[4]; // 0x860
1460 reg32_t REGBUFF_CTRL; // 0x870
1461 REG_RSVD_U32N(3)
1462 reg32_t CK_MAX; // 0x880
1463 reg32_t CK_MIN; // 0x884
1464 reg32_t CK_CFG; // 0x888
1465 REG_RSVD_U32N(1)
1466 reg32_t LAY_ATT_CTRL0[4]; // 0x890
1467 reg32_t LAY_ATT_CTRL1[4]; // 0x8a0
1468 REG_RSVD_U32N(10)
1469 reg32_t HWC_CTRL; // 0x8d8
1470 REG_RSVD_U32N(1)
1471 reg32_t HWCFB_CTRL; // 0x8e0
1472 REG_RSVD_U32N(3)
1473 reg32_t WB_CTRL; // 0x8f0
1474 reg32_t WB_ADDR; // 0x8f4
1475 reg32_t WB_LW; // 0x8f8
1476 REG_RSVD_U32N(9)
1477 // YUV
1478 reg32_t IYUV_CH_CTRL; // 0x920
1479 REG_RSVD_U32N(3)
1480 reg32_t CH0_YUV_FB_ADDR; // 0x930
1481 reg32_t CH1_YUV_FB_ADDR; // 0x934
1482 reg32_t CH2_YUV_FB_ADDR; // 0x938
1483 REG_RSVD_U32N(1)
1484 reg32_t CH0_YUV_BLW; // 0x940
1485 reg32_t CH1_YUV_BLW; // 0x944
1486 reg32_t CH2_YUV_BLW; // 0x948
1487 REG_RSVD_U32N(1)
1488 reg32_t COEF00; // 0x950
1489 reg32_t COEF01; // 0x954
1490 reg32_t COEF02; // 0x958
1491 reg32_t COEF03; // 0x95c
1492 reg32_t COEF10; // 0x960
1493 reg32_t COEF11; // 0x964
1494 reg32_t COEF12; // 0x968
1495 reg32_t COEF13; // 0x96c
1496 reg32_t COEF20; // 0x970
1497 reg32_t COEF21; // 0x974
1498 reg32_t COEF22; // 0x978
1499 reg32_t COEF23; // 0x97c
1500 // TODO: add cursor buffer and platte
1502
1503typedef struct tve_reg_t {
1504 reg32_t ENABLE; // 0x000
1505 reg32_t CFG0; // 0x004
1506 reg32_t DAC1; // 0x008
1507 reg32_t NOTCH; // 0x00c
1509 reg32_t PORCH; // 0x014
1510 REG_RSVD_U32N(1)
1511 reg32_t LINE; // 0x01c
1512 reg32_t LEVEL; // 0x020
1513 reg32_t DAC2; // 0x024
1514 REG_RSVD_U32N(4)
1515 reg32_t DETECT_STATUS; // 0x038
1516 REG_RSVD_U32N(52)
1517 reg32_t CBCR_LEVEL; // 0x10c
1518 REG_RSVD_U32N(1)
1519 reg32_t BURST_WIDTH; // 0x114
1520 reg32_t CBCR_GAIN; // 0x118
1521 reg32_t SYNC_VBI; // 0x11c
1522 REG_RSVD_U32N(1)
1523 reg32_t ACTIVE_LINE; // 0x124
1524 reg32_t CHROMA; // 0x128
1525 reg32_t ENCODER; // 0x12c
1526 reg32_t RESYNC; // 0x130
1527 reg32_t SLAVE; // 0x134
1529
1530typedef struct timer_reg_t {
1531 reg32_t IRQ_EN; // 0x000
1533 REG_RSVD_U32N(2)
1534
1535 struct { // 0x010
1539 REG_RSVD_U32N(1)
1540 } TMR[3];
1541
1542 REG_RSVD_U32N(16)
1543
1544 struct {
1546 reg32_t CNT0; // 0x084
1547 reg32_t CNT1; // 0x088
1549 } AVS;
1550
1551 REG_RSVD_U32N(4)
1552
1553 struct {
1554 reg32_t IRQ_EN; // 0x0a0
1555 reg32_t IRQ_STA; // 0x0a4
1556 REG_RSVD_U32N(2)
1557 reg32_t CTRL; // 0x0b0
1558 reg32_t CFG; // 0x0b4
1559 reg32_t MODE; // 0x0b8
1560 } WDOG;
1562
1563typedef struct musb_reg_t {
1564 // use naming spec form musbmhdrc document
1565 union {
1566 struct {
1567 reg32_t FIFO0; // 0x0000
1568 reg32_t FIFO1; // 0x0004
1569 reg32_t FIFO2; // 0x0008
1570 reg32_t FIFO3; // 0x000c
1571 reg32_t FIFO4; // 0x0010
1572 reg32_t FIFO5; // 0x0014
1573 };
1575 };
1576 // unused FIFO registers
1577 REG_RSVD_U32N(10)
1578
1579 struct {
1580 reg8_t Power; // 0x0040
1581 reg8_t DevCtl; // 0x0041
1582 reg8_t Index; // 0x0042
1583 reg8_t Vendor0; // 0x0043
1584 reg16_t IntrTx; // 0x0044
1585 reg16_t IntrRx; // 0x0046
1586 reg16_t IntrTxE; // 0x0048
1587 reg16_t IntrRxE; // 0x004a
1588 reg8_t IntrUSB; // 0x004c
1589 REG_RSVD_U8N(3)
1590 reg8_t IntrUSBE; // 0x0050
1591 REG_RSVD_U8N(3)
1592 reg16_t Frame; // 0x0054
1593 REG_RSVD_U8N(34)
1594 reg8_t EPInfo; // 0x0078
1595 reg8_t RAMInfo; // 0x0079
1596 reg8_t LinkInfo; // 0x007a
1597 reg8_t VPLen; // 0x007b
1598 reg8_t Testmode; // 0x007c
1599 reg8_t Vendor1; // 0x007d
1600 reg8_t Vendor2; // 0x007e
1601 REG_RSVD_U8N(1)
1602 } Common;
1603
1604 struct {
1605 union {
1606 struct {
1607 union {
1608 struct {
1609 REG_RSVD_U16N(1)
1610 reg16_t CSR0; // 0x0082
1611 REG_RSVD_U16N(2)
1612 reg16_t Count0; // 0x0088
1613 REG_RSVD_U16N(3)
1614 } EP0;
1615 struct {
1616 reg16_t TxMaxP; // 0x0080
1617 reg8_t TxCSRL; // 0x0082
1618 reg8_t TxCSRH; // 0x0083
1619 reg16_t RxMaxP; // 0x0084
1620 reg8_t RxCSRL; // 0x0086
1621 reg8_t RxCSRH; // 0x0087
1622 reg16_t RxCount; // 0x0088
1623 REG_RSVD_U16N(3)
1624 } EPN;
1625 };
1626 } DC;
1627 struct {
1628 union {
1629 struct {
1630 REG_RSVD_U16N(1)
1631 reg16_t CSR0; // 0x0082
1632 REG_RSVD_U16N(2)
1633 reg16_t Count0; // 0x0088
1634 REG_RSVD_U16N(1)
1635 reg8_t Type0; // 0x008c
1636 reg8_t NAKLimit0; // 0x008d
1637 REG_RSVD_U16N(1)
1638 } EP0;
1639 struct {
1640 reg16_t TxMaxP; // 0x0080
1641 reg8_t TxCSRL; // 0x0082
1642 reg8_t TxCSRH; // 0x0083
1643 reg16_t RxMaxP; // 0x0084
1644 reg8_t RxCSRL; // 0x0086
1645 reg8_t RxCSRH; // 0x0087
1646 reg16_t RxCount; // 0x0088
1647 REG_RSVD_U16N(1)
1648 reg8_t TxType; // 0x008c
1649 reg8_t TxInterval; // 0x008d
1650 reg8_t RxType; // 0x008e
1651 reg8_t RxInterval; // 0x008f
1652 } EPN;
1653 };
1654 } HC;
1655 };
1656
1657 reg8_t TxFIFOsz; // 0x0090
1658 REG_RSVD_U8N(1)
1659 reg16_t TxFIFOadd; // 0x0092
1660 reg8_t RxFIFOsz; // 0x0094
1661 REG_RSVD_U8N(1)
1662 reg16_t RxFIFOadd; // 0x0096
1663 reg8_t TxFuncAddr; // 0x0098
1664 REG_RSVD_U8N(1)
1665 reg8_t TxHubAddr; // 0x009a
1666 reg8_t TxHubPort; // 0x009b
1667 reg8_t RxFuncAddr; // 0x009c
1668 REG_RSVD_U8N(1)
1669 reg8_t RxHubAddr; // 0x009e
1670 reg8_t RxHubPort; // 0x009f
1671 } Index;
1672
1673 REG_RSVD_U32N(216)
1674 struct {
1675 reg32_t ISCR; // 0x0400
1676 reg32_t PHYCTL; // 0x0404
1677 reg32_t PHYBIST; // 0x0408
1678 reg32_t PHYTUNE; // 0x040c
1679 } Vendor;
1681
1682typedef struct tp_reg_t {
1689 reg32_t TPR; // 0x18
1690 reg32_t CDAT; // 0x1c
1692 reg32_t DATA; // 0x24
1694
1695/*============================ GLOBAL VARIABLES ==============================*/
1696/*============================ LOCAL VARIABLES ===============================*/
1697/*============================ PROTOTYPES ====================================*/
1698
1699#endif
1700/* EOF */
volatile uint32_t reg32_t
Definition f1c100s_reg.h:1039
volatile uint16_t reg16_t
Definition f1c100s_reg.h:1038
enum IRQn IRQn_Type
IRQn
Definition f1c100s_reg.h:1131
@ SWI0_IRQn
Definition f1c100s_reg.h:1171
@ TVD_IRQn
Definition f1c100s_reg.h:1157
@ RSB_IRQn
Definition f1c100s_reg.h:1147
@ PIOF_IRQn
Definition f1c100s_reg.h:1169
@ USBOTG_IRQn
Definition f1c100s_reg.h:1156
@ DEFE_IRQn
Definition f1c100s_reg.h:1160
@ WatchDog_IRQn
Definition f1c100s_reg.h:1146
@ SWI1_IRQn
Definition f1c100s_reg.h:1172
@ DEInterlacer_IRQn
Definition f1c100s_reg.h:1163
@ TWI2_IRQn
Definition f1c100s_reg.h:1139
@ DMA_IRQn
Definition f1c100s_reg.h:1148
@ TVE_IRQn
Definition f1c100s_reg.h:1158
@ CSI_IRQn
Definition f1c100s_reg.h:1162
@ DEBE_IRQn
Definition f1c100s_reg.h:1161
@ KEYADC_IRQn
Definition f1c100s_reg.h:1152
@ PIOE_IRQn
Definition f1c100s_reg.h:1168
@ Timer2_IRQn
Definition f1c100s_reg.h:1145
@ UART1_IRQn
Definition f1c100s_reg.h:1133
@ AudioCodec_IRQn
Definition f1c100s_reg.h:1151
@ TouchPanel_IRQn
Definition f1c100s_reg.h:1150
@ OWA_IRQn
Definition f1c100s_reg.h:1135
@ PIOD_IRQn
Definition f1c100s_reg.h:1167
@ SPI1_IRQn
Definition f1c100s_reg.h:1141
@ TWI0_IRQn
Definition f1c100s_reg.h:1137
@ UART2_IRQn
Definition f1c100s_reg.h:1134
@ TCON_IRQn
Definition f1c100s_reg.h:1159
@ SWI2_IRQn
Definition f1c100s_reg.h:1173
@ TWI1_IRQn
Definition f1c100s_reg.h:1138
@ SDC0_IRQn
Definition f1c100s_reg.h:1153
@ Timer1_IRQn
Definition f1c100s_reg.h:1144
@ SDC1_IRQn
Definition f1c100s_reg.h:1154
@ VE_IRQn
Definition f1c100s_reg.h:1164
@ Timer0_IRQn
Definition f1c100s_reg.h:1143
@ UART0_IRQn
Definition f1c100s_reg.h:1132
@ SWI3_IRQn
Definition f1c100s_reg.h:1174
@ DAUDIO_IRQn
Definition f1c100s_reg.h:1165
@ CIR_IRQn
Definition f1c100s_reg.h:1136
@ SPI0_IRQn
Definition f1c100s_reg.h:1140
volatile uint8_t reg8_t
Definition f1c100s_reg.h:1037
#define REG_RSVD_U32N(__N)
Definition f1c100s_reg.h:1061
volatile uint32_t reg32_t
Definition i_io_systick.h:120
volatile uint16_t reg16_t
Definition i_io_systick.h:119
#define REG_RSVD_U16N(__N)
Definition i_io_systick.h:141
#define REG_RSVD_U8N(__N)
Definition i_io_systick.h:140
#define REG_RSVD_U32N(__N)
Definition i_io_systick.h:142
struct @505 FIFO
unsigned short uint16_t
Definition stdint.h:7
unsigned uint32_t
Definition stdint.h:9
unsigned char uint8_t
Definition stdint.h:5
Definition f1c100s_reg.h:1184
reg32_t PLL_CPU_CTRL
Definition f1c100s_reg.h:1185
Definition f1c100s_reg.h:1448
Definition f1c100s_reg.h:1254
reg32_t SEXTMR
Definition f1c100s_reg.h:1260
reg32_t SCTLR
Definition f1c100s_reg.h:1258
reg32_t SREFR
Definition f1c100s_reg.h:1259
reg32_t SCONR
Definition f1c100s_reg.h:1255
reg32_t STMG0R
Definition f1c100s_reg.h:1256
reg32_t STMG1R
Definition f1c100s_reg.h:1257
Definition f1c100s_reg.h:1563
reg32_t FIFO5
Definition f1c100s_reg.h:1572
reg8_t IntrUSB
Definition f1c100s_reg.h:1588
reg8_t RxCSRL
Definition f1c100s_reg.h:1620
reg8_t RxCSRH
Definition f1c100s_reg.h:1621
reg32_t PHYBIST
Definition f1c100s_reg.h:1677
reg8_t Vendor0
Definition f1c100s_reg.h:1583
reg8_t Power
Definition f1c100s_reg.h:1580
reg16_t TxMaxP
Definition f1c100s_reg.h:1616
reg16_t IntrTxE
Definition f1c100s_reg.h:1586
reg16_t IntrRx
Definition f1c100s_reg.h:1585
reg32_t ISCR
Definition f1c100s_reg.h:1675
reg32_t FIFO4
Definition f1c100s_reg.h:1571
reg8_t Index
Definition f1c100s_reg.h:1582
reg32_t FIFO1
Definition f1c100s_reg.h:1568
reg32_t PHYCTL
Definition f1c100s_reg.h:1676
reg16_t RxMaxP
Definition f1c100s_reg.h:1619
reg16_t IntrRxE
Definition f1c100s_reg.h:1587
reg16_t IntrTx
Definition f1c100s_reg.h:1584
reg8_t TxCSRL
Definition f1c100s_reg.h:1617
reg32_t PHYTUNE
Definition f1c100s_reg.h:1678
reg16_t RxCount
Definition f1c100s_reg.h:1622
reg8_t TxCSRH
Definition f1c100s_reg.h:1618
reg32_t FIFO2
Definition f1c100s_reg.h:1569
reg32_t FIFO0
Definition f1c100s_reg.h:1567
reg8_t DevCtl
Definition f1c100s_reg.h:1581
reg32_t FIFO3
Definition f1c100s_reg.h:1570
Definition f1c100s_reg.h:1304
reg32_t INT_DEB
Definition f1c100s_reg.h:1311
reg32_t INT_CTRL
Definition f1c100s_reg.h:1309
reg32_t INT_STA
Definition f1c100s_reg.h:1310
reg32_t INT_CFG3
Definition f1c100s_reg.h:1308
reg32_t INT_CFG2
Definition f1c100s_reg.h:1307
reg32_t INT_CFG0
Definition f1c100s_reg.h:1305
reg32_t INT_CFG1
Definition f1c100s_reg.h:1306
Definition f1c100s_reg.h:1292
reg32_t CFG3
Definition f1c100s_reg.h:1296
reg32_t DRV1
Definition f1c100s_reg.h:1299
reg32_t PUL1
Definition f1c100s_reg.h:1301
reg32_t DRV0
Definition f1c100s_reg.h:1298
reg32_t PUL0
Definition f1c100s_reg.h:1300
reg32_t CFG1
Definition f1c100s_reg.h:1294
reg32_t CFG2
Definition f1c100s_reg.h:1295
reg32_t DATA
Definition f1c100s_reg.h:1297
reg32_t CFG0
Definition f1c100s_reg.h:1293
Definition f1c100s_reg.h:1315
pio_port_t PORTA
Definition f1c100s_reg.h:1319
pio_port_t PORTC
Definition f1c100s_reg.h:1321
pio_port_t PORTD
Definition f1c100s_reg.h:1322
pio_port_t PORTE
Definition f1c100s_reg.h:1323
pio_port_t PORTB
Definition f1c100s_reg.h:1320
pio_port_t PORTF
Definition f1c100s_reg.h:1324
Definition f1c100s_reg.h:1361
reg8_t TXD_BYTE
Definition f1c100s_reg.h:1379
reg8_t RXD_BYTE
Definition f1c100s_reg.h:1384
reg32_t TXD_WORD
Definition f1c100s_reg.h:1378
reg32_t RXD_WORD
Definition f1c100s_reg.h:1383
Definition f1c100s_reg.h:1179
reg32_t USB_CTRL
Definition f1c100s_reg.h:1181
Definition f1c100s_reg.h:1388
reg32_t FRM_SEED1_B
Definition f1c100s_reg.h:1401
reg32_t FRM_SEED0_R
Definition f1c100s_reg.h:1396
reg32_t BASIC_TIMING2
Definition f1c100s_reg.h:1420
reg32_t FRM_SEED1_G
Definition f1c100s_reg.h:1400
reg32_t INT_REG1
Definition f1c100s_reg.h:1391
reg32_t BASIC4
Definition f1c100s_reg.h:1438
reg32_t BASIC5
Definition f1c100s_reg.h:1439
reg32_t FRM_TBL2
Definition f1c100s_reg.h:1409
reg32_t BASIC_TIMING3
Definition f1c100s_reg.h:1421
reg32_t FRM_TBL3
Definition f1c100s_reg.h:1410
reg32_t BASIC_TIMING1
Definition f1c100s_reg.h:1419
reg32_t BASIC3
Definition f1c100s_reg.h:1437
reg32_t BASIC1
Definition f1c100s_reg.h:1435
reg32_t FRM_TBL0
Definition f1c100s_reg.h:1407
reg32_t CLK_CTRL
Definition f1c100s_reg.h:1417
reg32_t FRM_SEED0_B
Definition f1c100s_reg.h:1398
reg32_t BASIC_TIMING0
Definition f1c100s_reg.h:1418
reg32_t FRM_SEED1_R
Definition f1c100s_reg.h:1399
reg32_t BASIC2
Definition f1c100s_reg.h:1436
reg32_t FRM_TBL1
Definition f1c100s_reg.h:1408
reg32_t FRM_SEED0_G
Definition f1c100s_reg.h:1397
reg32_t HV_TIMING
Definition f1c100s_reg.h:1422
reg32_t INT_REG0
Definition f1c100s_reg.h:1390
reg32_t CTRL
Definition f1c100s_reg.h:1389
reg32_t BASIC0
Definition f1c100s_reg.h:1434
Definition f1c100s_reg.h:1530
reg32_t CFG
Definition f1c100s_reg.h:1558
reg32_t CUR_VALUE
Definition f1c100s_reg.h:1538
reg32_t MODE
Definition f1c100s_reg.h:1559
reg32_t INTV_VALUE
Definition f1c100s_reg.h:1537
reg32_t CTRL
Definition f1c100s_reg.h:1536
reg32_t IRQ_STA
Definition f1c100s_reg.h:1532
reg32_t CNT_DIV
Definition f1c100s_reg.h:1548
reg32_t IRQ_EN
Definition f1c100s_reg.h:1531
reg32_t CNT_CTL
Definition f1c100s_reg.h:1545
reg32_t CNT1
Definition f1c100s_reg.h:1547
reg32_t CNT0
Definition f1c100s_reg.h:1546
Definition f1c100s_reg.h:1682
reg32_t CTRL2
Definition f1c100s_reg.h:1685
reg32_t CDAT
Definition f1c100s_reg.h:1690
reg32_t DATA
Definition f1c100s_reg.h:1692
reg32_t CTRL0
Definition f1c100s_reg.h:1683
reg32_t TEMP_DATA
Definition f1c100s_reg.h:1691
reg32_t TPR
Definition f1c100s_reg.h:1689
reg32_t CTRL3
Definition f1c100s_reg.h:1686
reg32_t CTRL1
Definition f1c100s_reg.h:1684
reg32_t INT_FIFOC
Definition f1c100s_reg.h:1687
reg32_t INT_FIFOS
Definition f1c100s_reg.h:1688
Definition f1c100s_reg.h:1503
reg32_t CHROMA_FREQUENCY
Definition f1c100s_reg.h:1508
reg32_t ENABLE
Definition f1c100s_reg.h:1504
reg32_t DAC1
Definition f1c100s_reg.h:1506
reg32_t CFG0
Definition f1c100s_reg.h:1505
reg32_t PORCH
Definition f1c100s_reg.h:1509
reg32_t NOTCH
Definition f1c100s_reg.h:1507
Definition i_reg_uart.h:245
reg32_t RBR
Definition f1c100s_reg.h:1336
reg32_t MCR
Definition f1c100s_reg.h:1349
reg32_t FCR
Definition f1c100s_reg.h:1346
reg32_t DLL
Definition f1c100s_reg.h:1338
reg32_t THR
Definition f1c100s_reg.h:1337
reg32_t IER
Definition f1c100s_reg.h:1342
reg32_t IIR
Definition f1c100s_reg.h:1345
reg32_t DLH
Definition f1c100s_reg.h:1341
reg32_t LCR
Definition f1c100s_reg.h:1348
reg32_t LSR
Definition f1c100s_reg.h:1350
reg32_t SCH
Definition f1c100s_reg.h:1352
reg32_t MSR
Definition f1c100s_reg.h:1351