blob: 61260d464f143329d58d5353159918a657613e58 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001/*
2 * linux/arch/arm/mach-mmp/include/soc/asr/regs-accu.h
3 *
4 * Application Clock Control Unit
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10
11#ifndef __ASM_MACH_REGS_ACCU_H
12#define __ASM_MACH_REGS_ACCU_H
13
14/*
15 * ACCU register offsets for PXA1986
16 */
17#define ACCU_FABRIC_N1_CLK_CNTRL_REG (0x004)
18#define ACCU_APPS_MDMA_CLK_CNTRL_REG (0x00C)
19#define ACCU_APPS_STM_CLK_CNTRL_REG (0x010)
20#define ACCU_APPS_IC_CLK_CNTRL_REG (0x014)
21#define ACCU_WTM_MAIN_CLK_CNTRL_REG (0x018)
22#define ACCU_WTM_CORE_CLK_CNTRL_REG (0x01C)
23#define ACCU_WTM_CORE_BUS_CLK_CNTRL_REG (0x020)
24#define ACCU_FABRIC_N2_CLK_CNTRL_REG (0x030)
25#define ACCU_VID_DEC_CLK_CNTRL_REG (0x034)
26#define ACCU_VID_ENC_CLK_CNTRL_REG (0x038)
27#define ACCU_FABRIC_N3_CLK_CNTRL_REG (0x040)
28#define ACCU_USB_CLK_CNTRL_REG (0x044)
29#define ACCU_HSIC_CLK_CNTRL_REG (0x048)
30#define ACCU_NAND_CLK_CNTRL_REG (0x04C)
31#define ACCU_FABRIC_N4_CLK_CNTRL_REG (0x058)
32#define ACCU_APPS_INT_SRAM_CLK_CNTRL_REG (0x05C)
33#define ACCU_VDMA_CLK_CNTRL_REG (0x060)
34#define ACCU_CI1_CCIC_CLK_CNTRL_REG (0x064)
35#define ACCU_CI2_CCIC_CLK_CNTRL_REG (0x068)
36#define ACCU_ISP_CLK_CNTRL_REG (0x06C)
37#define ACCU_DISPLAY1_CLK_CNTRL_REG (0x074)
38#define ACCU_DISPLAY2_CLK_CNTRL_REG (0x078)
39#define ACCU_DISPLAY_UNIT_CLK_CNTRL_REG (0x07C)
40#define ACCU_FABRIC_N5_CLK_CNTRL_REG (0x080)
41#define ACCU_GC1_3D_CLK_CNTRL_REG (0x084)
42#define ACCU_GC2_3D_CLK_CNTRL_REG (0x088)
43#define ACCU_GC_2D_CLK_CNTRL_REG (0x08C)
44#define ACCU_FABRIC_N6_CLK_CNTRL_REG (0x090)
45#define ACCU_APPS_LSP_APB_CLK_CNTRL_REG (0x0A0)
46#define ACCU_APPS_OW_CLK_CNTRL_REG (0x0A4)
47#define ACCU_APPS_PWM01_CLK_CNTRL_REG (0x0A8)
48#define ACCU_APPS_PWM23_CLK_CNTRL_REG (0x0AC)
49#define ACCU_APPS_TIMERS1_CLK_CNTRL_REG (0x0B0)
50#define ACCU_APPS_TIMERS2_CLK_CNTRL_REG (0x0B4)
51#define ACCU_APPS_TIMERS3_CLK_CNTRL_REG (0x0B8)
52#define ACCU_APPS_KP_CLK_CNTRL_REG (0x0C4)
53#define ACCU_APPS_RTC_CLK_CNTRL_REG (0x0C8)
54#define ACCU_APPS_SSP1_CLK_CNTRL_REG (0x0D0)
55#define ACCU_APPS_SSP2_CLK_CNTRL_REG (0x0D4)
56#define ACCU_APPS_I2C1_CLK_CNTRL_REG (0x0DC)
57#define ACCU_APPS_I2C2_CLK_CNTRL_REG (0x0E0)
58#define ACCU_APPS_I2C3_CLK_CNTRL_REG (0x0E4)
59#define ACCU_APPS_I2C4_CLK_CNTRL_REG (0x0E8)
60#define ACCU_APPS_I2C5_CLK_CNTRL_REG (0x0EC)
61#define ACCU_APPS_UART1_CLK_CNTRL_REG (0x0F0)
62#define ACCU_APPS_UART2_CLK_CNTRL_REG (0x0F4)
63#define ACCU_APPS_UART3_CLK_CNTRL_REG (0x0F8)
64#define ACCU_APPS_TEMP_S1_CLK_CNTRL_REG (0x100)
65#define ACCU_APPS_TEMP_S2_CLK_CNTRL_REG (0x104)
66#define ACCU_APPS_TEMP_S3_CLK_CNTRL_REG (0x108)
67#define ACCU_APPS_CORE_B_CLK_CNTRL_REG (0x120)
68#define ACCU_APPS_CORE_B_CLK_CNTRL2_REG (0x124)
69#define ACCU_APPS_CORE_L_CLK_CNTRL_REG (0x12C)
70#define ACCU_APPS_CORE_L_CLK_CNTRL2_REG (0x130)
71#define ACCU_APPS_CORE_TOP_CLK_CNTRL_REG (0x138)
72#define ACCU_APPS_CORE_CS_CLK_CNTRL_REG (0x13C)
73#define ACCU_SDH_BUS_CLK_CNTRL_REG (0x170)
74#define ACCU_SDH_CLK_CNTRL_REG (0x174)
75#define ACCU_HSI_CLK_CNTRL_REG (0x17C)
76
77/* Common ACCU clock register bit definitions */
78#define ACCU_ST_BIT BIT(29)
79#define ACCU_GO_BIT BIT(28)
80
81#define ACCU_AHBCLK BIT(10)
82#define ACCU_APBCLK BIT(9) /* Bus Clock Enable */
83#define ACCU_FNCLK BIT(8) /* Functional Clock Enable */
84
85#define ACCU_AHBRST BIT(2)
86#define ACCU_APBRST BIT(1)
87#define ACCU_RST BIT(0) /* Reset Generation */
88
89/* Functional Clock Selection Mask */
90#define ACCU_RATIO_MASK (0xf << 20)
91#define ACCU_SOURCE_MASK (0x7 << 16)
92
93/* Functional Clock Set */
94#define SET_ACCU_RATIO(x) (((x) & 0xf) << 20)
95#define SET_ACCU_SOURCE(x) (((x) & 0x7) << 16)
96
97/* Functional Clock Get */
98#define GET_ACCU_RATIO(x) ((x & ACCU_RATIO_MASK) >> 20)
99#define GET_ACCU_SOURCE(x) ((x & ACCU_SOURCE_MASK) >> 16)
100
101#define ACCU_GC3D_INTLCLK (1 << 12)
102#define ACCU_GC3D_AHBCLK (1 << 11)
103#define ACCU_GC3D_APBCLK (1 << 10) /* Bus Clock Enable */
104#define ACCU_GC3D_SHADERCLK (1 << 9)
105#define ACCU_GC3D_FNCLK (1 << 8) /* Functional Clock Enable */
106
107#endif /* __ASM_MACH_REGS_ACCU_H */