SyterKit 0.4.0.x
SyterKit is a bare-metal framework
Loading...
Searching...
No Matches
reg-ccu.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: GPL-2.0+ */
2
3#ifndef __SUN20IW1_REG_CCU_H__
4#define __SUN20IW1_REG_CCU_H__
5
6#include <reg-ncat.h>
7
8#define CCU_BASE (0x02001000)
9
10#define CCU_PLL_CPU_CTRL_REG (0x000)
11#define CCU_PLL_DDR_CTRL_REG (0x010)
12#define CCU_PLL_PERI0_CTRL_REG (0x020)
13#define CCU_PLL_PERI1_CTRL_REG (0x028)
14#define CCU_PLL_GPU_CTRL_REG (0x030)
15#define CCU_PLL_VIDEO0_CTRL_REG (0x040)
16#define CCU_PLL_VIDEO1_CTRL_REG (0x048)
17#define CCU_PLL_VE_CTRL (0x058)
18#define CCU_PLL_DE_CTRL (0x060)
19#define CCU_PLL_HSIC_CTRL (0x070)
20#define CCU_PLL_AUDIO0_CTRL_REG (0x078)
21#define CCU_PLL_AUDIO1_CTRL_REG (0x080)
22#define CCU_PLL_DDR_PAT0_CTRL_REG (0x110)
23#define CCU_PLL_DDR_PAT1_CTRL_REG (0x114)
24#define CCU_PLL_PERI0_PAT0_CTRL_REG (0x120)
25#define CCU_PLL_PERI0_PAT1_CTRL_REG (0x124)
26#define CCU_PLL_PERI1_PAT0_CTRL_REG (0x128)
27#define CCU_PLL_PERI1_PAT1_CTRL_REG (0x12c)
28#define CCU_PLL_GPU_PAT0_CTRL_REG (0x130)
29#define CCU_PLL_GPU_PAT1_CTRL_REG (0x134)
30#define CCU_PLL_VIDEO0_PAT0_CTRL_REG (0x140)
31#define CCU_PLL_VIDEO0_PAT1_CTRL_REG (0x144)
32#define CCU_PLL_VIDEO1_PAT0_CTRL_REG (0x148)
33#define CCU_PLL_VIDEO1_PAT1_CTRL_REG (0x14c)
34#define CCU_PLL_VE_PAT0_CTRL_REG (0x158)
35#define CCU_PLL_VE_PAT1_CTRL_REG (0x15c)
36#define CCU_PLL_DE_PAT0_CTRL_REG (0x160)
37#define CCU_PLL_DE_PAT1_CTRL_REG (0x164)
38#define CCU_PLL_HSIC_PAT0_CTRL_REG (0x170)
39#define CCU_PLL_HSIC_PAT1_CTRL_REG (0x174)
40#define CCU_PLL_AUDIO0_PAT0_CTRL_REG (0x178)
41#define CCU_PLL_AUDIO0_PAT1_CTRL_REG (0x17c)
42#define CCU_PLL_AUDIO1_PAT0_CTRL_REG (0x180)
43#define CCU_PLL_AUDIO1_PAT1_CTRL_REG (0x184)
44#define CCU_PLL_CPU_BIAS_REG (0x300)
45#define CCU_PLL_DDR_BIAS_REG (0x310)
46#define CCU_PLL_PERI0_BIAS_REG (0x320)
47#define CCU_PLL_PERI1_BIAS_REG (0x328)
48#define CCU_PLL_GPU_BIAS_REG (0x330)
49#define CCU_PLL_VIDEO0_BIAS_REG (0x340)
50#define CCU_PLL_VIDEO1_BIAS_REG (0x348)
51#define CCU_PLL_VE_BIAS_REG (0x358)
52#define CCU_PLL_DE_BIAS_REG (0x360)
53#define CCU_PLL_HSIC_BIAS_REG (0x370)
54#define CCU_PLL_AUDIO0_BIAS_REG (0x378)
55#define CCU_PLL_AUDIO1_BIAS_REG (0x380)
56#define CCU_PLL_CPU_TUN_REG (0x400)
57#define CCU_CPU_AXI_CFG_REG (0x500)
58#define CCU_CPU_GATING_REG (0x504)
59#define CCU_PSI_CLK_REG (0x510)
60#define CCU_AHB3_CLK_REG (0x51c)
61#define CCU_APB0_CLK_REG (0x520)
62#define CCU_APB1_CLK_REG (0x524)
63#define CCU_MBUS_CLK_REG (0x540)
64#define CCU_DMA_BGR_REG (0x70c)
65#define CCU_DRAM_CLK_REG (0x800)
66#define CCU_MBUS_MAT_CLK_GATING_REG (0x804)
67#define CCU_DRAM_BGR_REG (0x80c)
68#define CCU_SMHC0_CLK_REG (0x830)
69#define CCU_SMHC_BGR_REG (0x84c)
70#define CCU_UART_BGR_REG (0x90c)
71#define CCU_TWI_BGR_REG (0x91c)
72#define CCU_SCR_BGR_REG (0x93C)
73#define CCU_SPI0_CLK_REG (0x940)
74#define CCU_SPI_BGR_REG (0x96c)
75#define CCU_RISCV_GATING_REG (0xd04)
76
77/* MMC clock bit field */
78#define CCU_MMC_CTRL_M(x) ((x) -1)
79#define CCU_MMC_CTRL_N(x) ((x) << 8)
80#define CCU_MMC_CTRL_OSCM24 (0x0 << 24)
81#define CCU_MMC_CTRL_PLL6X1 (0x1 << 24)
82#define CCU_MMC_CTRL_PLL6X2 (0x2 << 24)
83#define CCU_MMC_CTRL_PLL_PERIPH1X CCU_MMC_CTRL_PLL6X1
84#define CCU_MMC_CTRL_PLL_PERIPH2X CCU_MMC_CTRL_PLL6X2
85#define CCU_MMC_CTRL_ENABLE (0x1 << 31)
86/* if doesn't have these delays */
87#define CCU_MMC_CTRL_OCLK_DLY(a) ((void) (a), 0)
88#define CCU_MMC_CTRL_SCLK_DLY(a) ((void) (a), 0)
89
90#define CCU_MMC_BGR_SMHC0_GATE (1 << 0)
91#define CCU_MMC_BGR_SMHC1_GATE (1 << 1)
92#define CCU_MMC_BGR_SMHC2_GATE (1 << 2)
93
94#define CCU_MMC_BGR_SMHC0_RST (1 << 16)
95#define CCU_MMC_BGR_SMHC1_RST (1 << 17)
96#define CCU_MMC_BGR_SMHC2_RST (1 << 18)
97
98/* DSP base */
99#define CCU_DSP_CLK_REG (0xc70)
100#define CCU_BIT_DSP_SCLK_GATING (31)
101#define CCU_DSP_CLK_M_MASK (0x1f << 0)
102#define CCU_DSP_CLK_SRC_MASK (0x7 << 24)
103#define CCU_DSP_CLK_SRC_HOSC (0)
104#define CCU_DSP_CLK_SRC_32K (0x1 << 24)
105#define CCU_DSP_CLK_SRC_16M (0x2 << 24)
106#define CCU_DSP_CLK_SRC_PERI2X (0x3 << 24)
107#define CCU_DSP_CLK_SRC_AUDIO1_DIV2 (0x4 << 24)
108/* x must be 1 - 32 */
109#define CCU_DSP_CLK_FACTOR_M(x) (((x) -1) << 0)
110
111#define CCU_DSP_BGR_REG (0xc7c)
112#define CCU_BIT_DSP0_CFG_GATING (1)
113#define CCU_BIT_DSP0_RST (16)
114#define CCU_BIT_DSP0_CFG_RST (17)
115#define CCU_BIT_DSP0_DBG_RST (18)
116
117/* RISC-V base */
118#define CCU_RISCV_GATING_RST_REG (CCU_BASE + 0x0d04)
119#define CCU_RISCV_CLK_GATING (0x1 << 31)
120#define CCU_RISCV_GATING_FIELD (0x16aa << 0)
121
122#define CCU_RISCV_RST_REG (CCU_BASE + 0x0f20)
123#define CCU_RISCV_RST_KEY_FIELD (0x16aa << 16)
124#define CCU_RISCV_RST_SOFT_RSTN (0x1 << 0)
125
126#define CCU_RISCV_CLK_REG (CCU_BASE + 0x0d00)
127#define CCU_RISCV_CLK_MASK (0x7 << 24)
128#define CCU_RISCV_CLK_HOSC (0x0 << 24)
129#define CCU_RISCV_CLK_32K (0x1 << 24)
130#define CCU_RISCV_CLK_16M (0x2 << 24)
131#define CCU_RISCV_CLK_PERI_800M (0x3 << 24)
132#define CCU_RISCV_CLK_PERI_PERIPLL1X (0x4 << 24)
133#define CCU_RISCV_CLK_CPUPLL (0x5 << 24)
134#define CCU_RISCV_CLK_AUDIO1PLL_DIV2 (0x6 << 24)
135
136#define CCU_RISCV_CFG_BGR_REG (CCU_BASE + 0x0d0c)
137#define CCU_RISCV_CFG_RST (0x1 << 16)
138#define CCU_RISCV_CFG_GATING (0x1 << 0)
139
140#endif// __SUN20IW1_REG_CCU_H__