coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
clock.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #ifndef __SOC_TI_AM335X_CLOCK_H__
4 #define __SOC_TI_AM335X_CLOCK_H__
5 
6 #include <stdint.h>
7 
8 enum {
11  CM_ST_SW_WKUP = 0x2
12 };
13 
14 enum {
17 };
18 
19 enum {
20  CM_FCLK_DIS = 0x0 << 18,
21  CM_FCLK_EN = 0x1 << 18
22 };
23 
24 /* Clock module peripheral registers */
26  uint32_t l4ls_st; // 0x0
27  uint32_t l3s_st; // 0x4
28  uint8_t _rsv0[4]; // 0x8-0xb
29  uint32_t l3_st; // 0xc
30  uint8_t _rsv1[4]; // 0x10-0x13
31  uint32_t cpgmac0; // 0x14
32  uint32_t lcdc; // 0x18
33  uint32_t usb0; // 0x1c
34  uint8_t _rsv2[4]; // 0x20-0x23
35  uint32_t tptc0; // 0x24
36  uint32_t emif; // 0x28
37  uint32_t ocmcram; // 0x2c
38  uint32_t gpmc; // 0x30
39  uint32_t mcasp0; // 0x34
40  uint32_t uart5; // 0x38
41  uint32_t mmc0; // 0x3c
42  uint32_t elm; // 0x40
43  uint32_t i2c2; // 0x44
44  uint32_t i2c1; // 0x48
45  uint32_t spi0; // 0x4c
46  uint32_t spi1; // 0x50
47  uint8_t _rsv3[0xc]; // 0x54-0x5f
48  uint32_t l4ls; // 0x60
49  uint8_t _rsv4[4]; // 0x64-0x67
50  uint32_t mcasp1; // 0x68
51  uint32_t uart1; // 0x6c
52  uint32_t uart2; // 0x70
53  uint32_t uart3; // 0x74
54  uint32_t uart4; // 0x78
55  uint32_t timer7; // 0x7c
56  uint32_t timer2; // 0x80
57  uint32_t timer3; // 0x84
58  uint32_t timer4; // 0x88
59  uint8_t _rsv5[0x20]; // 0x90-0xab
60  uint32_t gpio1; // 0xac
61  uint32_t gpio2; // 0xb0
62  uint32_t gpio3; // 0xb4
63  uint8_t _rsv6[4]; // 0xb8-0xbb
64  uint32_t tpcc; // 0xbc
65  uint32_t dcan0; // 0xc0
66  uint32_t dcan1; // 0xc4
67  uint8_t _rsv7[4]; // 0xc8-0xcb
68  uint32_t epwmss1; // 0xcc
69  uint8_t _rsv8[4]; // 0xd0-0xd3
70  uint32_t epwmss0; // 0xd4
71  uint32_t epwmss2; // 0xd8
72  uint32_t l3_instr; // 0xdc
73  uint32_t l3; // 0xe0
74  uint32_t ieee5000; // 0xe4
75  uint32_t pru_icss; // 0xe8
76  uint32_t timer5; // 0xec
77  uint32_t timer6; // 0xf0
78  uint32_t mmc1; // 0xf4
79  uint32_t mmc2; // 0xf8
80  uint32_t tptc1; // 0xfc
81  uint32_t tptc2; // 0x100
82  uint8_t _rsv9[8]; // 0x104-0x10b
83  uint32_t spinlock; // 0x10c
84  uint32_t mailbox0; // 0x110
85  uint8_t _rsv10[8]; // 0x114-0x11b
86  uint32_t l4hs_st; // 0x11c
87  uint32_t l4hs; // 0x120
88  uint8_t _rsv11[8]; // 0x124-0x12b
90  uint32_t ocpwp; // 0x130
91  uint8_t _rsv12[0xb]; // 0x134-0x13f
93  uint32_t cpsw_st; // 0x144
94  uint32_t lcdc_st; // 0x148
95  uint32_t clkdiv32k; // 0x14c
98 static struct am335x_cm_per_regs * const am335x_cm_per = (void *)0x44e00000;
99 
100 /* Clock module wakeup registers */
154  uint8_t _rsv0[4]; // 0xd0-0xd3
157 } __packed;
158 static struct am335x_cm_wkup_regs * const am335x_cm_wkup = (void *)0x44e00400;
159 
160 /* Clock module pll registers */
162  uint8_t _rsv0[4]; // 0x0-0x3
171  uint8_t _rsv1[4]; // 0x24-0x27
178 } __packed;
179 static struct am335x_cm_dpll_regs * const am335x_cm_dpll = (void *)0x44e00500;
180 
181 /* Clock module mpu registers */
183  uint32_t st; // 0x0
184  uint32_t mpu; // 0x4
185 } __packed;
186 static struct am335x_cm_mpu_regs * const am335x_cm_mpu = (void *)0x44e00600;
187 
188 /* Clock module device registers */
191 } __packed;
193  (void *)0x44e00700;
194 
195 /* Clock module RTC registers */
197  uint32_t rtc; // 0x0
198  uint32_t st; // 0x4
199 } __packed;
200 static struct am335x_cm_rtc_regs * const am335x_cm_rtc = (void *)0x44e00800;
201 
202 /* Clock module graphics controller registers */
204  uint32_t l3_st; // 0x0
205  uint32_t gfx; // 0x4
206  uint8_t _rsv0[4]; // 0x8-0xb
208  uint32_t mmucfg; // 0x10
209  uint32_t mmudata; // 0x14
210 } __packed;
211 static struct am335x_cm_gfx_regs * const am335x_cm_gfx = (void *)0x44e00900;
212 
213 /* Clock module efuse registers */
215  uint32_t st; // 0x0
216  uint8_t _rsv0[0x1c]; // 0x4-0x1f
217  uint32_t cefuse; // 0x20
218 } __packed;
220  (void *)0x44e00a00;
221 
222 #endif /* __SOC_TI_AM335X_CLOCK_H__ */
@ CM_MODULEMODE_DISABLED
Definition: clock.h:15
@ CM_MODULEMODE_ENABLED
Definition: clock.h:16
static struct am335x_cm_dpll_regs *const am335x_cm_dpll
Definition: clock.h:179
static struct am335x_cm_device_regs *const am335x_cm_device
Definition: clock.h:192
static struct am335x_cm_rtc_regs *const am335x_cm_rtc
Definition: clock.h:200
@ CM_FCLK_DIS
Definition: clock.h:20
@ CM_FCLK_EN
Definition: clock.h:21
static struct am335x_cm_gfx_regs *const am335x_cm_gfx
Definition: clock.h:211
struct am335x_cm_per_regs __packed
static struct am335x_cm_cefuse_regs *const am335x_cm_cefuse
Definition: clock.h:219
static struct am335x_cm_wkup_regs *const am335x_cm_wkup
Definition: clock.h:158
static struct am335x_cm_per_regs *const am335x_cm_per
Definition: clock.h:98
@ CM_ST_SW_SLEEP
Definition: clock.h:10
@ CM_ST_NO_SLEEP
Definition: clock.h:9
@ CM_ST_SW_WKUP
Definition: clock.h:11
static struct am335x_cm_mpu_regs *const am335x_cm_mpu
Definition: clock.h:186
unsigned int uint32_t
Definition: stdint.h:14
unsigned char uint8_t
Definition: stdint.h:8
uint32_t cefuse
Definition: clock.h:217
uint8_t _rsv0[0x1c]
Definition: clock.h:216
uint32_t cm_clkout_ctrl
Definition: clock.h:190
uint32_t clksel_lcdc_pixel_clk
Definition: clock.h:175
uint8_t _rsv1[4]
Definition: clock.h:171
uint32_t clksel_timer4_clk
Definition: clock.h:166
uint32_t cm_mac_clksel
Definition: clock.h:167
uint32_t clksel_timer2_clk
Definition: clock.h:164
uint32_t cm_cpts_rft_clksel
Definition: clock.h:170
uint32_t clksel_timer1ms_clk
Definition: clock.h:172
uint32_t clksel_timer7_clk
Definition: clock.h:163
uint32_t clksel_gfx_fclk
Definition: clock.h:173
uint32_t clksel_timer5_clk
Definition: clock.h:168
uint32_t clksel_wdt1_clk
Definition: clock.h:176
uint32_t clksel_gpio0_dbclk
Definition: clock.h:177
uint32_t clksel_pru_icss_ocp_clk
Definition: clock.h:174
uint8_t _rsv0[4]
Definition: clock.h:162
uint32_t clksel_timer3_clk
Definition: clock.h:165
uint32_t clksel_timer6_clk
Definition: clock.h:169
uint8_t _rsv0[4]
Definition: clock.h:206
uint32_t mmudata
Definition: clock.h:209
uint32_t gfx
Definition: clock.h:205
uint32_t l3_st
Definition: clock.h:204
uint32_t mmucfg
Definition: clock.h:208
uint32_t l4ls_gfx_st
Definition: clock.h:207
uint32_t mpu
Definition: clock.h:184
uint32_t st
Definition: clock.h:183
uint32_t l3_instr
Definition: clock.h:72
uint32_t spi0
Definition: clock.h:45
uint32_t timer5
Definition: clock.h:76
uint32_t tpcc
Definition: clock.h:64
uint32_t dcan1
Definition: clock.h:66
uint32_t tptc1
Definition: clock.h:80
uint32_t uart3
Definition: clock.h:53
uint32_t ocmcram
Definition: clock.h:37
uint32_t l3s_st
Definition: clock.h:27
uint8_t _rsv1[4]
Definition: clock.h:30
uint32_t emif
Definition: clock.h:36
uint32_t gpio3
Definition: clock.h:62
uint32_t i2c2
Definition: clock.h:43
uint32_t gpio2
Definition: clock.h:61
uint32_t timer6
Definition: clock.h:77
uint32_t tptc2
Definition: clock.h:81
uint32_t epwmss0
Definition: clock.h:70
uint8_t _rsv9[8]
Definition: clock.h:82
uint32_t pru_icss_st
Definition: clock.h:92
uint32_t mmc0
Definition: clock.h:41
uint32_t uart4
Definition: clock.h:54
uint32_t l4hs_st
Definition: clock.h:86
uint8_t _rsv8[4]
Definition: clock.h:69
uint32_t l3_st
Definition: clock.h:29
uint8_t _rsv12[0xb]
Definition: clock.h:91
uint8_t _rsv0[4]
Definition: clock.h:28
uint32_t usb0
Definition: clock.h:33
uint32_t gpio1
Definition: clock.h:60
uint32_t timer4
Definition: clock.h:58
uint32_t i2c1
Definition: clock.h:44
uint8_t _rsv3[0xc]
Definition: clock.h:47
uint32_t l4hs
Definition: clock.h:87
uint32_t spinlock
Definition: clock.h:83
uint8_t _rsv5[0x20]
Definition: clock.h:59
uint32_t timer2
Definition: clock.h:56
uint32_t mailbox0
Definition: clock.h:84
uint32_t gpmc
Definition: clock.h:38
uint32_t mmc2
Definition: clock.h:79
uint32_t timer3
Definition: clock.h:57
uint32_t mcasp1
Definition: clock.h:50
uint32_t tptc0
Definition: clock.h:35
uint32_t epwmss2
Definition: clock.h:71
uint8_t _rsv11[8]
Definition: clock.h:88
uint32_t mcasp0
Definition: clock.h:39
uint32_t elm
Definition: clock.h:42
uint8_t _rsv10[8]
Definition: clock.h:85
uint32_t uart5
Definition: clock.h:40
uint32_t ocpwp
Definition: clock.h:90
uint32_t uart2
Definition: clock.h:52
uint32_t ocpwp_l3_st
Definition: clock.h:89
uint32_t cpsw_st
Definition: clock.h:93
uint32_t mmc1
Definition: clock.h:78
uint32_t l4ls_st
Definition: clock.h:26
uint32_t spi1
Definition: clock.h:46
uint8_t _rsv7[4]
Definition: clock.h:67
uint32_t ieee5000
Definition: clock.h:74
uint32_t pru_icss
Definition: clock.h:75
uint32_t dcan0
Definition: clock.h:65
uint32_t l3
Definition: clock.h:73
uint8_t _rsv2[4]
Definition: clock.h:34
uint32_t clk_24mhz_st
Definition: clock.h:96
uint32_t epwmss1
Definition: clock.h:68
uint32_t lcdc_st
Definition: clock.h:94
uint32_t l4ls
Definition: clock.h:48
uint32_t uart1
Definition: clock.h:51
uint32_t cpgmac0
Definition: clock.h:31
uint8_t _rsv6[4]
Definition: clock.h:63
uint32_t timer7
Definition: clock.h:55
uint32_t clkdiv32k
Definition: clock.h:95
uint32_t lcdc
Definition: clock.h:32
uint8_t _rsv4[4]
Definition: clock.h:49
uint32_t st
Definition: clock.h:198
uint32_t rtc
Definition: clock.h:197
uint32_t idlest_dpll_disp
Definition: clock.h:120
uint32_t autoidle_dpll_per
Definition: clock.h:129
uint32_t div_m5_dpll_core
Definition: clock.h:135
uint32_t idlest_dpll_per
Definition: clock.h:130
uint32_t wkup_control
Definition: clock.h:103
uint32_t clkmode_dpll_disp
Definition: clock.h:140
uint32_t ssc_deltamstep_dpll_ddr
Definition: clock.h:116
uint32_t wkup_wdt1
Definition: clock.h:155
uint32_t autoidle_dpll_mpu
Definition: clock.h:109
uint32_t wkup_l4wkup
Definition: clock.h:105
uint32_t ssc_modfreqdiv_dpll_per
Definition: clock.h:132
uint32_t ssc_deltamstep_dpll_disp
Definition: clock.h:121
uint32_t div_m2_dpll_per
Definition: clock.h:145
uint32_t wkup_st
Definition: clock.h:102
uint32_t ssc_modfreqdiv_dpll_ddr
Definition: clock.h:117
uint32_t wkup_wkup_m3
Definition: clock.h:146
uint32_t ssc_modfreqdiv_dpll_mpu
Definition: clock.h:112
uint32_t idlest_dpll_core
Definition: clock.h:125
uint32_t wkup_timer1
Definition: clock.h:151
uint32_t wkup_uart0
Definition: clock.h:147
uint32_t clksel_dpll_mpu
Definition: clock.h:113
uint32_t div_m2_dpll_disp
Definition: clock.h:143
uint32_t autoidle_dpll_core
Definition: clock.h:124
uint32_t clksel_dpll_core
Definition: clock.h:128
uint32_t div_m2_dpll_mpu
Definition: clock.h:144
uint32_t wkup_gpio0
Definition: clock.h:104
uint32_t l4_wkup_aon_st
Definition: clock.h:153
uint32_t clkmode_dpll_core
Definition: clock.h:138
uint32_t wkup_smartreflex0
Definition: clock.h:150
uint32_t idlest_dpll_ddr
Definition: clock.h:115
uint32_t autoidle_dpll_disp
Definition: clock.h:119
uint32_t div_m6_dpll_core
Definition: clock.h:156
uint32_t clkmode_dpll_per
Definition: clock.h:137
uint32_t idlest_dpll_mpu
Definition: clock.h:110
uint32_t wkup_adc_tsc
Definition: clock.h:149
uint32_t ssc_modfreqdiv_dpll_disp
Definition: clock.h:122
uint8_t _rsv0[4]
Definition: clock.h:154
uint32_t ssc_deltamstep_dpll_mpu
Definition: clock.h:111
uint32_t wkup_smartreflex1
Definition: clock.h:152
uint32_t div_m2_dpll_ddr
Definition: clock.h:142
uint32_t clksel_dpll_periph
Definition: clock.h:141
uint32_t ssc_deltamstep_dpll_core
Definition: clock.h:126
uint32_t clksel_dpll_ddr
Definition: clock.h:118
uint32_t wkup_timer0
Definition: clock.h:106
uint32_t wkup_debugss
Definition: clock.h:107
uint32_t wkup_i2c0
Definition: clock.h:148
uint32_t autoidle_dpll_ddr
Definition: clock.h:114
uint32_t clksel_dpll_disp
Definition: clock.h:123
uint32_t ssc_deltamstep_dpll_per
Definition: clock.h:131
uint32_t clkmode_dpll_ddr
Definition: clock.h:139
uint32_t l3_aon_st
Definition: clock.h:108
uint32_t clkdcoldo_dpll_per
Definition: clock.h:133
uint32_t clkmode_dpll_mpu
Definition: clock.h:136
uint32_t div_m4_dpll_core
Definition: clock.h:134
uint32_t ssc_modfreqdiv_dpll_core
Definition: clock.h:127