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_wkup_cm.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_wkup_cm msbfirst ( addr base ) "" {
29    
30
31    constants clkactivity_wkup_ts_fclk_status width(1) "" {
32        CLKACTIVITY_WKUP_TS_FCLK_1_r = 1 "Corresponding clock is running or gating/ungating transition is on-going";
33        CLKACTIVITY_WKUP_TS_FCLK_0_r = 0 "Corresponding clock is definitely gated";
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_r = 1 "Reserved";
39        CLKTRCTRL_2_r = 2 "Reserved";
40        CLKTRCTRL_3 = 3 "HW_AUTO: Automatic transition is enabled. Sleep and wakeup transition are based upon hardware conditions.";
41    };
42    
43    register cm_wkup_clkstctrl addr(base, 0x0) "This register enables the 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_wkup_ts_fclk 1 ro type(clkactivity_wkup_ts_fclk_status) "This field indicates the state of the WKUP_TS_FCLK clock in the domain. [warm reset insensitive]";
46        clkactivity_l4_wkup_iclk 1 ro type(clkactivity_wkup_ts_fclk_status) "This field indicates the state of the clock in the domain. [warm reset insensitive]";
47        clkactivity_wkup_32k_fclk 1 ro type(clkactivity_wkup_ts_fclk_status) "This field indicates the state of the clock in the domain. [warm reset insensitive]";
48        _ 1 mbz;
49        clkactivity_abe_lp_clk 1 ro type(clkactivity_wkup_ts_fclk_status) "This field indicates the state of the clock in the domain. [warm reset insensitive]";
50        clkactivity_sys_clk 1 ro type(clkactivity_wkup_ts_fclk_status) "This field indicates the state of the SYS_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 WKUP 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 cm_wkup_l4wkup_clkctrl addr(base, 0x20) "This register manages the L4WKUP 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 modulemode_status1 width(2) "" {
74        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).";
75        MODULEMODE_1_r_1 = 1 "Reserved";
76        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.";
77        MODULEMODE_3_r = 3 "Reserved";
78    };
79    
80    register cm_wkup_wdtimer2_clkctrl addr(base, 0x30) "This register manages the WDT2 clocks." {
81        _ 14 mbz;
82        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
83        _ 14 mbz;
84        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
85    };
86
87    constants optfclken_dbclk_status width(1) "" {
88        OPTFCLKEN_DBCLK_0 = 0 "Optional functional clock is disabled";
89        OPTFCLKEN_DBCLK_1 = 1 "Optional functional clock is enabled";
90    };
91
92    constants modulemode_status2 width(2) "" {
93        MODULEMODE_0_1 = 0 "Module is disable by software. Any INTRCONN access to module results in an error, except if resulting from a module wakeup (asynchronous wakeup).";
94        MODULEMODE_1 = 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.";
95        MODULEMODE_2_r = 2 "Reserved";
96        MODULEMODE_3_r_1 = 3 "Reserved";
97    };
98    
99    register cm_wkup_gpio1_clkctrl addr(base, 0x38) "This register manages the GPIO1 clocks." {
100        _ 14 mbz;
101        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
102        _ 7 mbz;
103        optfclken_dbclk 1 rw type(optfclken_dbclk_status) "Optional functional clock control.";
104        _ 6 mbz;
105        modulemode 2 rw type(modulemode_status2) "Control the way mandatory clocks are managed.";
106    };
107
108    constants clksel_status width(1) "" {
109        CLKSEL_0 = 0 "Selects the SYS_CLK as the source";
110        CLKSEL_1 = 1 "Selects the 32KHz as the source";
111    };
112    
113    register cm_wkup_gptimer1_clkctrl addr(base, 0x40) "This register manages the TIMER1 clocks." {
114        _ 7 mbz;
115        clksel 1 rw type(clksel_status) "Select the source of the functional clock";
116        _ 6 mbz;
117        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
118        _ 14 mbz;
119        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
120    };
121    
122    register cm_wkup_32ktimer_clkctrl addr(base, 0x50) "This register manages the SYNCTIMER clocks." {
123        _ 14 mbz;
124        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
125        _ 14 mbz;
126        modulemode 2 ro type(modulemode_status) "Control the way mandatory clocks are managed.";
127    };
128    
129    register cm_wkup_sarram_clkctrl addr(base, 0x60) "This register manages the SARRAM clocks." {
130        _ 14 mbz;
131        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
132        _ 14 mbz;
133        modulemode 2 ro type(modulemode_status) "Control the way mandatory clocks are managed.";
134    };
135    
136    register cm_wkup_keyboard_clkctrl addr(base, 0x78) "This register manages the KEYBOARD clocks." {
137        _ 14 mbz;
138        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
139        _ 14 mbz;
140        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
141    };
142
143    constants clksel_status1 width(2) "" {
144        CLKSEL_0_1 = 0 "Divide by 8";
145        CLKSEL_1_1 = 1 "Divide by 16";
146        CLKSEL_2 = 2 "Divide by 32";
147        CLKSEL_3 = 3 "Reserved";
148    };
149    
150    register cm_wkup_bandgap_clkctrl addr(base, 0x88) "This register manages the clock delivered to the Bandgap and SYSCTRL_GENERAL_CORE modules for the Thermal Sensor feature. [warm reset insensitive]" {
151        _ 6 mbz;
152        clksel 2 rw type(clksel_status1) "Selects the divider value for generating the Thermal Sensor clock from L4WKUP_ICLK source. The divider has to be selected so as to guarantee a frequency between 1MHz and 2MHz.";
153        _ 15 mbz;
154        optfclken_ts_fclk 1 rw type(optfclken_dbclk_status) "Optional functional clock control.";
155        _ 8 mbz;
156    };
157};