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 * (C) Copyright 2013-2025
4 * Allwinner Technology Co., Ltd. <www.allwinnertech.com>
5 *
6 * original from bsp uboot defines
7 */
8
9#ifndef __SUN50IW10_REG_CCU_H__
10#define __SUN50IW10_REG_CCU_H__
11
12#include <reg-ncat.h>
13
14#define CCU_BASE SUNXI_CCM_BASE
15
16/* pll list */
17#define CCU_PLL_CPUX_CTRL_REG (0x00)
18#define CCU_PLL_DDR0_CTRL_REG (0x10)
19#define CCU_PLL_DDR1_CTRL_REG (0x18)
20#define CCU_PLL_PERI0_CTRL_REG (0x20)
21#define CCU_PLL_PERI1_CTRL_REG (0x28)
22#define CCU_PLL_GPU_CTRL_REG (0x30)
23#define CCU_PLL_VIDE00_CTRL_REG (0x40)
24#define CCU_PLL_VIDE01_CTRL_REG (0x48)
25#define CCU_PLL_VIDE02_CTRL_REG (0x50)
26#define CCU_PLL_VIDE03_CTRL_REG (0x68)
27#define CCU_PLL_VE_CTRL_REG (0x58)
28#define CCU_PLL_COM_CTRL_REG (0x60)
29#define CCU_PLL_AUDIO_CTRL_REG (0x78)
30#define CCU_PLL_HSIC_CTRL_REG (0x70)
31
32/* cfg list */
33#define CCU_CPUX_AXI_CFG_REG (0x500)
34#define CCU_PSI_AHB1_AHB2_CFG_REG (0x510)
35#define CCU_AHB3_CFG_GREG (0x51C)
36#define CCU_APB1_CFG_GREG (0x520)
37#define CCU_APB2_CFG_GREG (0x524)
38#define CCU_MBUS_CFG_REG (0x540)
39
40#define CCU_CE_CLK_REG (0x680)
41#define CCU_CE_BGR_REG (0x68C)
42
43#define CCU_VE_CLK_REG (0x690)
44#define CCU_VE_BGR_REG (0x69C)
45
46/*SYS*/
47#define CCU_DMA_BGR_REG (0x70C)
48#define CCU_AVS_CLK_REG (0x740)
49#define CCU_AVS_BGR_REG (0x74C)
50
51/*IOMMU*/
52#define CCU_IOMMU_BGR_REG (0x7bc)
53#define IOMMU_AUTO_GATING_REG (SUNXI_IOMMU_BASE + 0X40)
54
55/* storage */
56#define CCU_DRAM_CLK_REG (0x800)
57#define CCU_MBUS_MAT_CLK_GATING_REG (0x804)
58#define CCU_PLL_DDR_AUX_REG (0x808)
59#define CCU_DRAM_BGR_REG (0x80C)
60
61#define CCU_NAND_CLK_REG (0x810)
62#define CCU_NAND_BGR_REG (0x82C)
63
64#define CCU_SMHC0_CLK_REG (0x830)
65#define CCU_SMHC1_CLK_REG (0x834)
66#define CCU_SMHC2_CLK_REG (0x838)
67#define CCU_SMHC_BGR_REG (0x84c)
68
69/*normal interface*/
70#define CCU_UART_BGR_REG (0x90C)
71#define CCU_TWI_BGR_REG (0x91C)
72
73#define CCU_SCR_BGR_REG (0x93C)
74
75#define CCU_SPI0_CLK_REG (0x940)
76#define CCU_SPI1_CLK_REG (0x944)
77#define CCU_SPI_BGR_REG (0x96C)
78#define CCU_USB0_CLK_REG (0xA70)
79#define CCU_USB_BGR_REG (0xA8C)
80
81/*DMA*/
82#define DMA_GATING_BASE CCU_DMA_BGR_REG
83#define DMA_GATING_PASS (1)
84#define DMA_GATING_BIT (0)
85
86/*CE*/
87#define CE_CLK_SRC_MASK (0x1)
88#define CE_CLK_SRC_SEL_BIT (24)
89#define CE_CLK_SRC (0x01)
90
91#define CE_CLK_DIV_RATION_N_BIT (8)
92#define CE_CLK_DIV_RATION_N_MASK (0x3)
93#define CE_CLK_DIV_RATION_N (0)
94
95#define CE_CLK_DIV_RATION_M_BIT (0)
96#define CE_CLK_DIV_RATION_M_MASK (0xF)
97#define CE_CLK_DIV_RATION_M (2)
98
99#define CE_SCLK_ONOFF_BIT (31)
100#define CE_SCLK_ON (1)
101
102#define CE_GATING_BASE CCU_CE_BGR_REG
103#define CE_GATING_PASS (1)
104#define CE_GATING_BIT (0)
105
106#define CE_RST_REG_BASE CCU_CE_BGR_REG
107#define CE_RST_BIT (16)
108#define CE_DEASSERT (1)
109
110/*gpadc gate and reset reg*/
111#define CCU_GPADC_BGR_REG (0x09EC)
112
113/*lpadc gate and reset reg*/
114#define CCU_LRADC_BGR_REG (0x0A9C)
115
116/* ehci */
117#define BUS_CLK_GATING_REG 0x60
118#define BUS_SOFTWARE_RESET_REG 0x2c0
119#define USBPHY_CONFIG_REG 0xcc
120
121#define USBEHCI0_RST_BIT 24
122#define USBEHCI0_GATIING_BIT 24
123#define USBPHY0_RST_BIT 0
124#define USBPHY0_SCLK_GATING_BIT 8
125
126#define USBEHCI1_RST_BIT 25
127#define USBEHCI1_GATIING_BIT 25
128#define USBPHY1_RST_BIT 1
129#define USBPHY1_SCLK_GATING_BIT 9
130
131/* MMC clock bit field */
132#define CCU_MMC_CTRL_M(x) ((x) -1)
133#define CCU_MMC_CTRL_N(x) ((x) << 8)
134#define CCU_MMC_CTRL_OSCM24 (0x0 << 24)
135#define CCU_MMC_CTRL_PLL6X1 (0x1 << 24)
136#define CCU_MMC_CTRL_PLL6X2 (0x2 << 24)
137#define CCU_MMC_CTRL_PLL_PERIPH1X CCU_MMC_CTRL_PLL6X1
138#define CCU_MMC_CTRL_PLL_PERIPH2X CCU_MMC_CTRL_PLL6X2
139#define CCU_MMC_CTRL_ENABLE (0x1 << 31)
140
141/* if doesn't have these delays */
142#define CCU_MMC_CTRL_OCLK_DLY(a) ((void) (a), 0)
143#define CCU_MMC_CTRL_SCLK_DLY(a) ((void) (a), 0)
144
145#define CCU_MMC_BGR_SMHC0_GATE (1 << 0)
146#define CCU_MMC_BGR_SMHC1_GATE (1 << 1)
147#define CCU_MMC_BGR_SMHC2_GATE (1 << 2)
148
149#define CCU_MMC_BGR_SMHC0_RST (1 << 16)
150#define CCU_MMC_BGR_SMHC1_RST (1 << 17)
151#define CCU_MMC_BGR_SMHC2_RST (1 << 18)
152
153#endif// __SUN50IW10_REG_CCU_H__