1/*
2 * Copyright (c) 2013 ETH Zurich. All rights reserved.
3 *
4 * This file is distributed under the terms in the attached LICENSE file.
5 * If you do not find this file, copies can be found by writing to:
6 * ETH Zurich D-INFK, CAB F.78, Universitaetstrasse 6, CH-8092 Zurich,
7 * Attn: Systems Group.
8 */
9
10/*
11 * omap44xx_abe_cm1.dev
12 *
13 * DESCRIPTION: 
14 *
15 * NOTE: This file has been automatically generated based on the
16 * XML files extracted from the TI RDT v1.0.0.4p Tool.
17 * Download from here: http://www.ti.com/product/omap4460
18 * This means that the file might not be optimal in terms of naming
19 * conventions for constants and registers (duplicated
20 * namespaces in register and device name etc.).
21 * Also, because of the underlying structure from the original XML
22 * it's possible that some constants appear multiple times (if they
23 * have slightly different descriptions for example).
24 *
25 * You want to clean that up before using the files for the first time!
26 */
27 
28device omap44xx_abe_cm1 msbfirst ( addr base ) "" {
29    
30
31    constants clkactivity_abe_24m_fclk_status width(1) "" {
32        CLKACTIVITY_ABE_24M_FCLK_0_r = 0 "Corresponding clock is definitely gated";
33        CLKACTIVITY_ABE_24M_FCLK_1_r = 1 "Corresponding clock is running or gating/ungating transition is ongoing";
34    };
35
36    constants clktrctrl_status width(2) "" {
37        CLKTRCTRL_0 = 0 "NO_SLEEP: Sleep transition cannot be initiated. Wakeup transition may however occur.";
38        CLKTRCTRL_1 = 1 "SW_SLEEP: Start a software forced sleep transition on the domain.";
39        CLKTRCTRL_2 = 2 "SW_WKUP: Start a software forced wake-up transition on the domain.";
40        CLKTRCTRL_3 = 3 "HW_AUTO: Automatic transition is enabled. Sleep and wakeup transition are based upon hardware conditions.";
41    };
42    
43    register cm1_abe_clkstctrl addr(base, 0x0) "This register enables the ABE domain power state transition. It controls the hardware supervised domain power state transition between ON-ACTIVE and ON-INACTIVE states. It also holds 1 status bit per clock input of the domain." {
44        _ 18 mbz;
45        clkactivity_abe_24m_fclk 1 ro type(clkactivity_abe_24m_fclk_status) "This field indicates the state of the ABE_24M_FCLK clock in the domain. [warm reset insensitive]";
46        clkactivity_abe_alwon_32k_clk 1 ro type(clkactivity_abe_24m_fclk_status) "This field indicates the state of the ABE_ALWON_32K_CLK clock in the domain. [warm reset insensitive]";
47        clkactivity_abe_sysclk 1 ro type(clkactivity_abe_24m_fclk_status) "This field indicates the state of the ABE_SYSCLK clock in the domain. [warm reset insensitive]";
48        clkactivity_24m_fclk 1 ro type(clkactivity_abe_24m_fclk_status) "This field indicates the state of the 24M_FCLK clock in the domain. [warm reset insensitive]";
49        clkactivity_abe_iclk2 1 ro type(clkactivity_abe_24m_fclk_status) "This field indicates the state of the ABE_ICLK2 interface clock in the domain. [warm reset insensitive]";
50        clkactivity_dpll_abe_x2_clk 1 ro type(clkactivity_abe_24m_fclk_status) "This field indicates the state of the DPLL_ABE_X2_CLK clock in the domain. [warm reset insensitive]";
51        _ 6 mbz;
52        clktrctrl 2 rw type(clktrctrl_status) "Controls the clock state transition of the ABE clock domain.";
53    };
54
55    constants idlest_status width(2) "" {
56        IDLEST_0_r = 0 "Module is fully functional, including INTRCONN";
57        IDLEST_1_r = 1 "Module is performing transition: wakeup, or sleep, or sleep abortion";
58        IDLEST_2_r = 2 "Module is in Idle mode (only INTRCONN part). It is functional if using separate functional clock";
59        IDLEST_3_r = 3 "Module is disabled and cannot be accessed";
60    };
61
62    constants modulemode_status width(2) "" {
63        MODULEMODE_1_r = 1 "Module is managed automatically by hardware according to clock domain transition. A clock domain sleep transition put module into idle. A wakeup domain transition put it back into function. If CLKTRCTRL=3, any INTRCONN access to module is always granted. Module clocks may be gated according to the clock domain state.";
64    };
65    
66    register cm1_abe_l4abe_clkctrl addr(base, 0x20) "This register manages the L4ABE clocks." {
67        _ 14 mbz;
68        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
69        _ 14 mbz;
70        modulemode 2 ro type(modulemode_status) "Control the way mandatory clocks are managed.";
71    };
72
73    constants clksel_aess_fclk_status width(1) "" {
74        CLKSEL_AESS_FCLK_0 = 0 "AESS_FCLK is divide by 1 of ABE_CLK";
75        CLKSEL_AESS_FCLK_1 = 1 "AESS_FCLK is divide by 2 of ABE_CLK";
76    };
77
78    constants stbyst_status width(1) "" {
79        STBYST_0_r = 0 "Module is functional (not in standby)";
80        STBYST_1_r = 1 "Module is in standby";
81    };
82
83    constants modulemode_status1 width(2) "" {
84        MODULEMODE_0 = 0 "Module is disable by software. Any INTRCONN access to module results in an error, except if resulting from a module wakeup (asynchronous wakeup).";
85        MODULEMODE_1_r_1 = 1 "Reserved";
86        MODULEMODE_2 = 2 "Module is explicitly enabled. Interface clock (if not used for functions) may be gated according to the clock domain state. Functional clocks are guarantied to stay present. As long as in this configuration, power domain sleep transition cannot happen.";
87        MODULEMODE_3_r = 3 "Reserved";
88    };
89    
90    register cm1_abe_aess_clkctrl addr(base, 0x28) "This register manages the AESS clocks." {
91        _ 7 mbz;
92        clksel_aess_fclk 1 rw type(clksel_aess_fclk_status) "Selects the ratio of AESS_FCLK to ABE_CLK";
93        _ 5 mbz;
94        stbyst 1 ro type(stbyst_status) "Module standby status. [warm reset insensitive]";
95        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
96        _ 14 mbz;
97        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
98    };
99    
100    register cm1_abe_pdm_clkctrl addr(base, 0x30) "This register manages the PDM clocks." {
101        _ 14 mbz;
102        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
103        _ 14 mbz;
104        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
105    };
106
107    constants clksel_internal_source_status width(2) "" {
108        CLKSEL_INTERNAL_SOURCE_0 = 0 "24MHz clock derived from DPLL_ABE is selected";
109        CLKSEL_INTERNAL_SOURCE_1 = 1 "ABE_SYSCLK is selected";
110        CLKSEL_INTERNAL_SOURCE_2 = 2 "24MHz clock derived from DPLL_PER is selected";
111        CLKSEL_INTERNAL_SOURCE_3 = 3 "Reserved";
112    };
113
114    constants clksel_source_status width(2) "" {
115        CLKSEL_SOURCE_0 = 0 "Functional clock is sourced from an internal clock";
116        CLKSEL_SOURCE_1 = 1 "Functional clock is sourced from CLKS pad";
117        CLKSEL_SOURCE_2 = 2 "Functional clock is sourced from Audio SIMBUS pad";
118        CLKSEL_SOURCE_3 = 3 "Reserved";
119    };
120    
121    register cm1_abe_dmic_clkctrl addr(base, 0x38) "This register manages the DMIC clocks." {
122        _ 4 mbz;
123        clksel_internal_source 2 rw type(clksel_internal_source_status) "Selects the internal clock to be used as the functional clock in case CLKSEL_SOURCE selects the internal clock source as the functional clock source.";
124        clksel_source 2 rw type(clksel_source_status) "Selects the source of the functional clock between, internal source, CLKS pad and Audio SLIMBUS_CLK pad. The switching between the clocks is not guaranteed to be glitchless.";
125        _ 6 mbz;
126        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
127        _ 14 mbz;
128        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
129    };
130    
131    register cm1_abe_mcasp_clkctrl addr(base, 0x40) "This register manages the MCASP clocks." {
132        _ 4 mbz;
133        clksel_internal_source 2 rw type(clksel_internal_source_status) "Selects the internal clock to be used as the functional clock in case CLKSEL_SOURCE selects the internal clock source as the functional clock source.";
134        clksel_source 2 rw type(clksel_source_status) "Selects the source of the functional clock between, internal source, CLKS pad and Audio SLIMBUS_CLK pad. The switching between the clocks is not guaranteed to be glitchless.";
135        _ 6 mbz;
136        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
137        _ 14 mbz;
138        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
139    };
140    
141    register cm1_abe_mcbsp1_clkctrl addr(base, 0x48) "This register manages the MCBSP1 clocks." {
142        _ 4 mbz;
143        clksel_internal_source 2 rw type(clksel_internal_source_status) "Selects the internal clock to be used as the functional clock in case CLKSEL_SOURCE selects the internal clock source as the functional clock source.";
144        clksel_source 2 rw type(clksel_source_status) "Selects the source of the functional clock between, internal source, CLKS pad and Audio SLIMBUS_CLK pad. The switching between the clocks is not guaranteed to be glitchless.";
145        _ 6 mbz;
146        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
147        _ 14 mbz;
148        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
149    };
150    
151    register cm1_abe_mcbsp2_clkctrl addr(base, 0x50) "This register manages the MCBSP2 clocks." {
152        _ 4 mbz;
153        clksel_internal_source 2 rw type(clksel_internal_source_status) "Selects the internal clock to be used as the functional clock in case CLKSEL_SOURCE selects the internal clock source as the functional clock source.";
154        clksel_source 2 rw type(clksel_source_status) "Selects the source of the functional clock between, internal source, CLKS pad and Audio SLIMBUS_CLK pad. The switching between the clocks is not guaranteed to be glitchless.";
155        _ 6 mbz;
156        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
157        _ 14 mbz;
158        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
159    };
160    
161    register cm1_abe_mcbsp3_clkctrl addr(base, 0x58) "This register manages the MCBSP3 clocks." {
162        _ 4 mbz;
163        clksel_internal_source 2 rw type(clksel_internal_source_status) "Selects the internal clock to be used as the functional clock in case CLKSEL_SOURCE selects the internal clock source as the functional clock source.";
164        clksel_source 2 rw type(clksel_source_status) "Selects the source of the functional clock between, internal source, CLKS pad and Audio SLIMBUS_CLK pad. The switching between the clocks is not guaranteed to be glitchless.";
165        _ 6 mbz;
166        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
167        _ 14 mbz;
168        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
169    };
170
171    constants optfclken_slimbus_clk_status width(1) "" {
172        OPTFCLKEN_SLIMBUS_CLK_0 = 0 "Optional functional clock is disabled";
173        OPTFCLKEN_SLIMBUS_CLK_1 = 1 "Optional functional clock is enabled";
174    };
175    
176    register cm1_abe_slimbus_clkctrl addr(base, 0x60) "This register manages the SLIMBUS clocks." {
177        _ 14 mbz;
178        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
179        _ 4 mbz;
180        optfclken_slimbus_clk 1 rw type(optfclken_slimbus_clk_status) "Optional functional clock control.";
181        optfclken_fclk2 1 rw type(optfclken_slimbus_clk_status) "Optional functional clock control.";
182        optfclken_fclk1 1 rw type(optfclken_slimbus_clk_status) "Optional functional clock control.";
183        optfclken_fclk0 1 rw type(optfclken_slimbus_clk_status) "Optional functional clock control.";
184        _ 6 mbz;
185        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
186    };
187
188    constants clksel_status width(1) "" {
189        CLKSEL_0 = 0 "Selects ABE_SYSCLK as the functional clock";
190        CLKSEL_1 = 1 "Selects ABE_ALWON_32K_CLK as the functional clock";
191    };
192    
193    register cm1_abe_gptimer5_clkctrl addr(base, 0x68) "This register manages the TIMER5 clocks." {
194        _ 7 mbz;
195        clksel 1 rw type(clksel_status) "Selects between ABE_SYSCLK and ABE_ALWON_32K_CLK as the timer functional clock";
196        _ 6 mbz;
197        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
198        _ 14 mbz;
199        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
200    };
201    
202    register cm1_abe_gptimer6_clkctrl addr(base, 0x70) "This register manages the TIMER6 clocks." {
203        _ 7 mbz;
204        clksel 1 rw type(clksel_status) "Selects between ABE_SYSCLK and ABE_ALWON_32K_CLK as the timer functional clock";
205        _ 6 mbz;
206        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
207        _ 14 mbz;
208        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
209    };
210    
211    register cm1_abe_gptimer7_clkctrl addr(base, 0x78) "This register manages the TIMER7 clocks." {
212        _ 7 mbz;
213        clksel 1 rw type(clksel_status) "Selects between ABE_SYSCLK and ABE_ALWON_32K_CLK as the timer functional clock";
214        _ 6 mbz;
215        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
216        _ 14 mbz;
217        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
218    };
219    
220    register cm1_abe_gptimer8_clkctrl addr(base, 0x80) "This register manages the TIMER8 clocks." {
221        _ 7 mbz;
222        clksel 1 rw type(clksel_status) "Selects between ABE_SYSCLK and ABE_ALWON_32K_CLK as the timer functional clock";
223        _ 6 mbz;
224        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
225        _ 14 mbz;
226        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
227    };
228    
229    register cm1_abe_wdtimer3_clkctrl addr(base, 0x88) "This register manages the WDT3 clocks." {
230        _ 14 mbz;
231        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
232        _ 14 mbz;
233        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
234    };
235};