aos/devices/omap/omap44xx_cm2.dev
Daniel Schwyn 6d444bf552 Main handout
Signed-off-by: Daniel Schwyn <daniel.schwyn@inf.ethz.ch>
2022-03-03 14:57:51 +01:00

77 lines
3.4 KiB
Plaintext

/*
* Copyright (c) 2012, ETH Zurich. All rights reserved.
*
* This file is distributed under the terms in the attached LICENSE file.
* If you do not find this file, copies can be found by writing to:
* ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
*/
/*
* omap44xx_cm2.dev
*
* DESCRIPTION: Power Management Framework (PandaBoard)
*
* See:
* OMAP4430 Multimedia Device Silicon Revision 2.x Technical Reference Manual (Rev. 0)
* Chapter: 3.6.3.2.4 and 3.11.29 - 3.11.40
* Registers: Table 3-1286 on page 918
*
*/
device omap44xx_cm2 msbfirst (addr cm2_base, addr cm2_clkgen_base, addr l4per_base) "TI CM2 Clock Generator" {
/*
* Ignoring the remaining bits, since we don't use them ..
* see table 3-1287, page 918
* XXX need to add output for L{3,4}_ICLK to see if it is turned on
*/
register CM_L3INIT_CLKSTCTRL addr(cm2_base, 0x0) "Enable power state transitions" {
_ 14;
CLKACTIVITY_INIT_HSMMC1_FCLK 1 ro "State of functional clock for MMC1";
_ 15;
CLKTRCTRL 2 rw "Clock state transition of L3INIT clock domain";
};
register CM_L3INIT_HSMMC1_CLKCTRL addr(cm2_base, 0x28) "management of MMC1 clocks" {
_ 7;
CLKSEL 1 rw "Source of functional clock";
_ 5;
STBYST 1 ro "Standby status";
IDLEST 2 ro "Idel status";
_ 14;
MODULEMODE 2 rw "Clock management mode";
};
register CM_DIV_M4_DPLL_PER addr(cm2_clkgen_base, 0x58) "Control over CLKOUT1 of HSDIVIDER" {
_ 19;
HSDIVIDER_CLKOUT1_PWDN 1 rw "Power control for M4 divider";
_ 2;
ST_HSDIVIDER_CLKOUT1 1 ro "Status of HSDIVIDER CLKOUT1";
HSDIVIDER_CLKOUT1_GATE_CTRL 1 rw "Control gating of HSDIVIDER CLKOUT1";
_ 2;
HSDIVIDER_CLKOUT1_DIVCHACK 1 ro "Toggle on this status bit after changing CLKOUT1_DIV";
HSDIVIDER_CLKOUT1_DIV 5 rw "DPLL M4 post-divider factor";
};
constants idlest "Idle Status" {
idlest_functional = 0b00 "Module is fully functional";
idlest_transition = 0b01 "Module is performing transition";
idlest_idle = 0b10 "Module is in idle mode. It's functional when using separate FCLK.";
idlest_disabled = 0b11 "Module is disabled";
};
constants modmode "Module mandatory clock control" {
modmode_swdisabled = 0b00 "Module is disabled by software";
modmode_swenabled = 0b10 "Module is explicitly enabled";
};
regtype clkctrl "clock control" {
_ 14 rsvd;
idlest 2 type(idlest) "Module idle status";
_ 14 rsvd;
modulemode 2 type(modmode) "Mandatory clock control";
};
register l4per_i2c1_clkctrl addr(l4per_base, 0xa0) type(clkctrl);
register l4per_i2c2_clkctrl addr(l4per_base, 0xa8) type(clkctrl);
register l4per_i2c3_clkctrl addr(l4per_base, 0xb0) type(clkctrl);
register l4per_i2c4_clkctrl addr(l4per_base, 0xb8) type(clkctrl);
};