Complete set of Mackerel Files for the OMAP4460 platform added.
authorGerd Zellweger <mail@gerdzellweger.com>
Wed, 5 Jun 2013 13:13:52 +0000 (15:13 +0200)
committerGerd Zellweger <mail@gerdzellweger.com>
Tue, 16 Jul 2013 12:54:59 +0000 (14:54 +0200)
These files have been auto-generated based on XML files found in
the TI RDT v1.0.0.4p tool (download at http://www.ti.com/product/omap4460).
The files will most likely compile. However, because their XML format
is less expressive than Mackerel some renaming might be helpful before use.
Especially to save some typing (i.e., remove duplicated namings, constant names etc.).
Also, some constants may be duplicated if their descriptions was
slightly different.

149 files changed:
devices/omap/omap44xx_32ktimer.dev [new file with mode: 0644]
devices/omap/omap44xx_abe_cm1.dev [new file with mode: 0644]
devices/omap/omap44xx_abe_prm.dev [new file with mode: 0644]
devices/omap/omap44xx_always_on_cm2.dev [new file with mode: 0644]
devices/omap/omap44xx_always_on_prm.dev [new file with mode: 0644]
devices/omap/omap44xx_c2c.dev [new file with mode: 0644]
devices/omap/omap44xx_c2c_master_niu_firewall.dev [new file with mode: 0644]
devices/omap/omap44xx_c2c_slave_niu_firewall.dev [new file with mode: 0644]
devices/omap/omap44xx_cam_cm2.dev [new file with mode: 0644]
devices/omap/omap44xx_cam_prm.dev [new file with mode: 0644]
devices/omap/omap44xx_cfg_ap.dev [new file with mode: 0644]
devices/omap/omap44xx_ckgen_cm1.dev [new file with mode: 0644]
devices/omap/omap44xx_ckgen_cm2.dev [new file with mode: 0644]
devices/omap/omap44xx_ckgen_prm.dev [new file with mode: 0644]
devices/omap/omap44xx_clk1_clk1_targ_pwr_disc_clk2.dev [new file with mode: 0644]
devices/omap/omap44xx_clk1_dmm1_targ.dev [new file with mode: 0644]
devices/omap/omap44xx_clk1_dss_bw_regulator.dev [new file with mode: 0644]
devices/omap/omap44xx_clk1_flagmux_clk1.dev [new file with mode: 0644]
devices/omap/omap44xx_clk1_host_clk1.dev [new file with mode: 0644]
devices/omap/omap44xx_clk1_rate_adapt_resp_32to128_clk1.dev [new file with mode: 0644]
devices/omap/omap44xx_clk3_statcoll_lat0.dev [new file with mode: 0644]
devices/omap/omap44xx_clk3_statcoll_sdram.dev [new file with mode: 0644]
devices/omap/omap44xx_cm3_rw_table.dev [new file with mode: 0644]
devices/omap/omap44xx_cmu.dev [new file with mode: 0644]
devices/omap/omap44xx_core_cm2.dev [new file with mode: 0644]
devices/omap/omap44xx_core_prm.dev [new file with mode: 0644]
devices/omap/omap44xx_cortexa9_cpu0.dev [new file with mode: 0644]
devices/omap/omap44xx_cortexa9_prm.dev [new file with mode: 0644]
devices/omap/omap44xx_cortexa9_socket_prcm.dev [new file with mode: 0644]
devices/omap/omap44xx_cortexa9_wugen.dev [new file with mode: 0644]
devices/omap/omap44xx_cortexm3_l2mmu.dev [new file with mode: 0644]
devices/omap/omap44xx_cortexm3_wkup.dev [new file with mode: 0644]
devices/omap/omap44xx_dct_l3interconnect.dev [new file with mode: 0644]
devices/omap/omap44xx_debug_firewall.dev [new file with mode: 0644]
devices/omap/omap44xx_device_prm.dev [new file with mode: 0644]
devices/omap/omap44xx_dispc_l4_per.dev [new file with mode: 0644]
devices/omap/omap44xx_dma_cortex_m3.dev [new file with mode: 0644]
devices/omap/omap44xx_dma_l3interconnect.dev [new file with mode: 0644]
devices/omap/omap44xx_dmic_dsp.dev [new file with mode: 0644]
devices/omap/omap44xx_dmm.dev [new file with mode: 0644]
devices/omap/omap44xx_dsi1_phy_l4_per.dev [new file with mode: 0644]
devices/omap/omap44xx_dsi1_pllctrl_l4_per.dev [new file with mode: 0644]
devices/omap/omap44xx_dsi1_protocol_engine_l4_per.dev [new file with mode: 0644]
devices/omap/omap44xx_dsp_cm1.dev [new file with mode: 0644]
devices/omap/omap44xx_dsp_mmu.dev [new file with mode: 0644]
devices/omap/omap44xx_dsp_prm.dev [new file with mode: 0644]
devices/omap/omap44xx_dss_cm2.dev [new file with mode: 0644]
devices/omap/omap44xx_dss_l4_per.dev [new file with mode: 0644]
devices/omap/omap44xx_dss_prm.dev [new file with mode: 0644]
devices/omap/omap44xx_ehci.dev [new file with mode: 0644]
devices/omap/omap44xx_elm.dev [new file with mode: 0644]
devices/omap/omap44xx_emif1.dev [new file with mode: 0644]
devices/omap/omap44xx_emu_cm.dev [new file with mode: 0644]
devices/omap/omap44xx_emu_prm.dev [new file with mode: 0644]
devices/omap/omap44xx_fdif.dev [new file with mode: 0644]
devices/omap/omap44xx_gpio2.dev [new file with mode: 0644]
devices/omap/omap44xx_gpmc.dev [new file with mode: 0644]
devices/omap/omap44xx_gpmc_firewall.dev [new file with mode: 0644]
devices/omap/omap44xx_gptimer2_l4interconnect.dev [new file with mode: 0644]
devices/omap/omap44xx_gptimer5_dsp.dev [new file with mode: 0644]
devices/omap/omap44xx_hdq_1_wire.dev [new file with mode: 0644]
devices/omap/omap44xx_hsi_dma_channels.dev [new file with mode: 0644]
devices/omap/omap44xx_hsi_ports.dev [new file with mode: 0644]
devices/omap/omap44xx_hsi_top.dev [new file with mode: 0644]
devices/omap/omap44xx_hsusbhost.dev [new file with mode: 0644]
devices/omap/omap44xx_hsusbotg.dev [new file with mode: 0644]
devices/omap/omap44xx_hwseq_l3interconnect.dev [new file with mode: 0644]
devices/omap/omap44xx_i2c3.dev [new file with mode: 0644]
devices/omap/omap44xx_icr_mpu.dev [new file with mode: 0644]
devices/omap/omap44xx_instr_cm1.dev [new file with mode: 0644]
devices/omap/omap44xx_instr_cm2.dev [new file with mode: 0644]
devices/omap/omap44xx_instr_prm.dev [new file with mode: 0644]
devices/omap/omap44xx_intrconn_socket_cm1.dev [new file with mode: 0644]
devices/omap/omap44xx_intrconn_socket_cm2.dev [new file with mode: 0644]
devices/omap/omap44xx_intrconn_socket_prm.dev [new file with mode: 0644]
devices/omap/omap44xx_iss_bte.dev [new file with mode: 0644]
devices/omap/omap44xx_iss_camerarx_core1.dev [new file with mode: 0644]
devices/omap/omap44xx_iss_cbuff.dev [new file with mode: 0644]
devices/omap/omap44xx_iss_ccp2.dev [new file with mode: 0644]
devices/omap/omap44xx_iss_csi2_a_regs1.dev [new file with mode: 0644]
devices/omap/omap44xx_iss_csi2_a_regs2.dev [new file with mode: 0644]
devices/omap/omap44xx_iss_h3a.dev [new file with mode: 0644]
devices/omap/omap44xx_iss_ipipe.dev [new file with mode: 0644]
devices/omap/omap44xx_iss_ipipeif.dev [new file with mode: 0644]
devices/omap/omap44xx_iss_isif.dev [new file with mode: 0644]
devices/omap/omap44xx_iss_isp5_sys1.dev [new file with mode: 0644]
devices/omap/omap44xx_iss_isp5_sys2.dev [new file with mode: 0644]
devices/omap/omap44xx_iss_resizer.dev [new file with mode: 0644]
devices/omap/omap44xx_iss_tctrl.dev [new file with mode: 0644]
devices/omap/omap44xx_iss_top.dev [new file with mode: 0644]
devices/omap/omap44xx_ivahd_cm2.dev [new file with mode: 0644]
devices/omap/omap44xx_ivahd_mailbox_icont.dev [new file with mode: 0644]
devices/omap/omap44xx_ivahd_prm.dev [new file with mode: 0644]
devices/omap/omap44xx_keyboard_controller.dev [new file with mode: 0644]
devices/omap/omap44xx_l3_ram_firewall.dev [new file with mode: 0644]
devices/omap/omap44xx_l3init_cm2.dev [new file with mode: 0644]
devices/omap/omap44xx_l3init_prm.dev [new file with mode: 0644]
devices/omap/omap44xx_l4per_cm2.dev [new file with mode: 0644]
devices/omap/omap44xx_l4per_prm.dev [new file with mode: 0644]
devices/omap/omap44xx_local_interconnect.dev [new file with mode: 0644]
devices/omap/omap44xx_ma_firewall.dev [new file with mode: 0644]
devices/omap/omap44xx_mcasp_dsp.dev [new file with mode: 0644]
devices/omap/omap44xx_mcbsp1_dsp.dev [new file with mode: 0644]
devices/omap/omap44xx_mcpdm_dsp.dev [new file with mode: 0644]
devices/omap/omap44xx_mcspi1.dev [new file with mode: 0644]
devices/omap/omap44xx_mcspi2.dev [new file with mode: 0644]
devices/omap/omap44xx_mcspi3.dev [new file with mode: 0644]
devices/omap/omap44xx_mmchs1.dev [new file with mode: 0644]
devices/omap/omap44xx_mmchs3.dev [new file with mode: 0644]
devices/omap/omap44xx_mpu_cm1.dev [new file with mode: 0644]
devices/omap/omap44xx_mpu_prm.dev [new file with mode: 0644]
devices/omap/omap44xx_ocp2scp.dev [new file with mode: 0644]
devices/omap/omap44xx_ohci.dev [new file with mode: 0644]
devices/omap/omap44xx_per_ap.dev [new file with mode: 0644]
devices/omap/omap44xx_per_ia_0.dev [new file with mode: 0644]
devices/omap/omap44xx_per_la.dev [new file with mode: 0644]
devices/omap/omap44xx_per_ta_uart3.dev [new file with mode: 0644]
devices/omap/omap44xx_restore_cm1.dev [new file with mode: 0644]
devices/omap/omap44xx_restore_cm2.dev [new file with mode: 0644]
devices/omap/omap44xx_rfbi_l4_per.dev [new file with mode: 0644]
devices/omap/omap44xx_rot_l3interconnect.dev [new file with mode: 0644]
devices/omap/omap44xx_scrm.dev [new file with mode: 0644]
devices/omap/omap44xx_sdma.dev [new file with mode: 0644]
devices/omap/omap44xx_sgx.dev [new file with mode: 0644]
devices/omap/omap44xx_sgx_cm2.dev [new file with mode: 0644]
devices/omap/omap44xx_sgx_firewall.dev [new file with mode: 0644]
devices/omap/omap44xx_sgx_prm.dev [new file with mode: 0644]
devices/omap/omap44xx_simcop_control_l3interconnect.dev [new file with mode: 0644]
devices/omap/omap44xx_slimbus1_dsp.dev [new file with mode: 0644]
devices/omap/omap44xx_slimbus2_l3interconnect.dev [new file with mode: 0644]
devices/omap/omap44xx_spinlock.dev [new file with mode: 0644]
devices/omap/omap44xx_sr_mpu.dev [new file with mode: 0644]
devices/omap/omap44xx_sysctrl_general_core.dev [new file with mode: 0644]
devices/omap/omap44xx_sysctrl_general_wkup.dev [new file with mode: 0644]
devices/omap/omap44xx_sysctrl_icont.dev [new file with mode: 0644]
devices/omap/omap44xx_sysctrl_padconf_core.dev [new file with mode: 0644]
devices/omap/omap44xx_sysctrl_padconf_wkup.dev [new file with mode: 0644]
devices/omap/omap44xx_system_mailbox_l4_cfginterconnect.dev [new file with mode: 0644]
devices/omap/omap44xx_uart1.dev [new file with mode: 0644]
devices/omap/omap44xx_uart3.dev [new file with mode: 0644]
devices/omap/omap44xx_usbfshost.dev [new file with mode: 0644]
devices/omap/omap44xx_usbphy.dev [new file with mode: 0644]
devices/omap/omap44xx_usbtllhs_config.dev [new file with mode: 0644]
devices/omap/omap44xx_usbtllhs_ulpi.dev [new file with mode: 0644]
devices/omap/omap44xx_venc_l4_per.dev [new file with mode: 0644]
devices/omap/omap44xx_vlcdj_l3interconnect.dev [new file with mode: 0644]
devices/omap/omap44xx_wdtimer3_dsp.dev [new file with mode: 0644]
devices/omap/omap44xx_wkup_cm.dev [new file with mode: 0644]
devices/omap/omap44xx_wkup_prm.dev [new file with mode: 0644]

diff --git a/devices/omap/omap44xx_32ktimer.dev b/devices/omap/omap44xx_32ktimer.dev
new file mode 100644 (file)
index 0000000..46aa10b
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_32ktimer.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_32ktimer msbfirst ( addr base ) "" {
+    
+    
+    register 32ksyncnt_rev ro addr(base, 0x0) "This register contains the sync counter IP revision code." type(uint32);
+    
+    register 32ksyncnt_sysconfig addr(base, 0x4) "This register is used for IDLE modes only." {
+        _ 27 mbz;
+        idlemode 2 rw "Power management REQ/ACK control";
+        _ 3 mbz;
+    };
+    
+    register 32ksyncnt_cr ro addr(base, 0x10) "This register contains the 32-kHz sync counter value." type(uint32);
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_abe_cm1.dev b/devices/omap/omap44xx_abe_cm1.dev
new file mode 100644 (file)
index 0000000..4a1d604
--- /dev/null
@@ -0,0 +1,235 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_abe_cm1.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_abe_cm1 msbfirst ( addr base ) "" {
+    
+
+    constants clkactivity_abe_24m_fclk_status width(1) "" {
+        CLKACTIVITY_ABE_24M_FCLK_0_r = 0 "Corresponding clock is definitely gated";
+        CLKACTIVITY_ABE_24M_FCLK_1_r = 1 "Corresponding clock is running or gating/ungating transition is ongoing";
+    };
+
+    constants clktrctrl_status width(2) "" {
+        CLKTRCTRL_0 = 0 "NO_SLEEP: Sleep transition cannot be initiated. Wakeup transition may however occur.";
+        CLKTRCTRL_1 = 1 "SW_SLEEP: Start a software forced sleep transition on the domain.";
+        CLKTRCTRL_2 = 2 "SW_WKUP: Start a software forced wake-up transition on the domain.";
+        CLKTRCTRL_3 = 3 "HW_AUTO: Automatic transition is enabled. Sleep and wakeup transition are based upon hardware conditions.";
+    };
+    
+    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." {
+        _ 18 mbz;
+        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]";
+        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]";
+        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]";
+        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]";
+        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]";
+        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]";
+        _ 6 mbz;
+        clktrctrl 2 rw type(clktrctrl_status) "Controls the clock state transition of the ABE clock domain.";
+    };
+
+    constants idlest_status width(2) "" {
+        IDLEST_0_r = 0 "Module is fully functional, including INTRCONN";
+        IDLEST_1_r = 1 "Module is performing transition: wakeup, or sleep, or sleep abortion";
+        IDLEST_2_r = 2 "Module is in Idle mode (only INTRCONN part). It is functional if using separate functional clock";
+        IDLEST_3_r = 3 "Module is disabled and cannot be accessed";
+    };
+
+    constants modulemode_status width(2) "" {
+        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.";
+    };
+    
+    register cm1_abe_l4abe_clkctrl addr(base, 0x20) "This register manages the L4ABE clocks." {
+        _ 14 mbz;
+        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
+        _ 14 mbz;
+        modulemode 2 ro type(modulemode_status) "Control the way mandatory clocks are managed.";
+    };
+
+    constants clksel_aess_fclk_status width(1) "" {
+        CLKSEL_AESS_FCLK_0 = 0 "AESS_FCLK is divide by 1 of ABE_CLK";
+        CLKSEL_AESS_FCLK_1 = 1 "AESS_FCLK is divide by 2 of ABE_CLK";
+    };
+
+    constants stbyst_status width(1) "" {
+        STBYST_0_r = 0 "Module is functional (not in standby)";
+        STBYST_1_r = 1 "Module is in standby";
+    };
+
+    constants modulemode_status1 width(2) "" {
+        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).";
+        MODULEMODE_1_r_1 = 1 "Reserved";
+        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.";
+        MODULEMODE_3_r = 3 "Reserved";
+    };
+    
+    register cm1_abe_aess_clkctrl addr(base, 0x28) "This register manages the AESS clocks." {
+        _ 7 mbz;
+        clksel_aess_fclk 1 rw type(clksel_aess_fclk_status) "Selects the ratio of AESS_FCLK to ABE_CLK";
+        _ 5 mbz;
+        stbyst 1 ro type(stbyst_status) "Module standby status. [warm reset insensitive]";
+        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
+        _ 14 mbz;
+        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
+    };
+    
+    register cm1_abe_pdm_clkctrl addr(base, 0x30) "This register manages the PDM clocks." {
+        _ 14 mbz;
+        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
+        _ 14 mbz;
+        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
+    };
+
+    constants clksel_internal_source_status width(2) "" {
+        CLKSEL_INTERNAL_SOURCE_0 = 0 "24MHz clock derived from DPLL_ABE is selected";
+        CLKSEL_INTERNAL_SOURCE_1 = 1 "ABE_SYSCLK is selected";
+        CLKSEL_INTERNAL_SOURCE_2 = 2 "24MHz clock derived from DPLL_PER is selected";
+        CLKSEL_INTERNAL_SOURCE_3 = 3 "Reserved";
+    };
+
+    constants clksel_source_status width(2) "" {
+        CLKSEL_SOURCE_0 = 0 "Functional clock is sourced from an internal clock";
+        CLKSEL_SOURCE_1 = 1 "Functional clock is sourced from CLKS pad";
+        CLKSEL_SOURCE_2 = 2 "Functional clock is sourced from Audio SIMBUS pad";
+        CLKSEL_SOURCE_3 = 3 "Reserved";
+    };
+    
+    register cm1_abe_dmic_clkctrl addr(base, 0x38) "This register manages the DMIC clocks." {
+        _ 4 mbz;
+        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.";
+        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.";
+        _ 6 mbz;
+        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
+        _ 14 mbz;
+        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
+    };
+    
+    register cm1_abe_mcasp_clkctrl addr(base, 0x40) "This register manages the MCASP clocks." {
+        _ 4 mbz;
+        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.";
+        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.";
+        _ 6 mbz;
+        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
+        _ 14 mbz;
+        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
+    };
+    
+    register cm1_abe_mcbsp1_clkctrl addr(base, 0x48) "This register manages the MCBSP1 clocks." {
+        _ 4 mbz;
+        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.";
+        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.";
+        _ 6 mbz;
+        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
+        _ 14 mbz;
+        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
+    };
+    
+    register cm1_abe_mcbsp2_clkctrl addr(base, 0x50) "This register manages the MCBSP2 clocks." {
+        _ 4 mbz;
+        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.";
+        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.";
+        _ 6 mbz;
+        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
+        _ 14 mbz;
+        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
+    };
+    
+    register cm1_abe_mcbsp3_clkctrl addr(base, 0x58) "This register manages the MCBSP3 clocks." {
+        _ 4 mbz;
+        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.";
+        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.";
+        _ 6 mbz;
+        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
+        _ 14 mbz;
+        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
+    };
+
+    constants optfclken_slimbus_clk_status width(1) "" {
+        OPTFCLKEN_SLIMBUS_CLK_0 = 0 "Optional functional clock is disabled";
+        OPTFCLKEN_SLIMBUS_CLK_1 = 1 "Optional functional clock is enabled";
+    };
+    
+    register cm1_abe_slimbus_clkctrl addr(base, 0x60) "This register manages the SLIMBUS clocks." {
+        _ 14 mbz;
+        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
+        _ 4 mbz;
+        optfclken_slimbus_clk 1 rw type(optfclken_slimbus_clk_status) "Optional functional clock control.";
+        optfclken_fclk2 1 rw type(optfclken_slimbus_clk_status) "Optional functional clock control.";
+        optfclken_fclk1 1 rw type(optfclken_slimbus_clk_status) "Optional functional clock control.";
+        optfclken_fclk0 1 rw type(optfclken_slimbus_clk_status) "Optional functional clock control.";
+        _ 6 mbz;
+        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
+    };
+
+    constants clksel_status width(1) "" {
+        CLKSEL_0 = 0 "Selects ABE_SYSCLK as the functional clock";
+        CLKSEL_1 = 1 "Selects ABE_ALWON_32K_CLK as the functional clock";
+    };
+    
+    register cm1_abe_gptimer5_clkctrl addr(base, 0x68) "This register manages the TIMER5 clocks." {
+        _ 7 mbz;
+        clksel 1 rw type(clksel_status) "Selects between ABE_SYSCLK and ABE_ALWON_32K_CLK as the timer functional clock";
+        _ 6 mbz;
+        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
+        _ 14 mbz;
+        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
+    };
+    
+    register cm1_abe_gptimer6_clkctrl addr(base, 0x70) "This register manages the TIMER6 clocks." {
+        _ 7 mbz;
+        clksel 1 rw type(clksel_status) "Selects between ABE_SYSCLK and ABE_ALWON_32K_CLK as the timer functional clock";
+        _ 6 mbz;
+        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
+        _ 14 mbz;
+        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
+    };
+    
+    register cm1_abe_gptimer7_clkctrl addr(base, 0x78) "This register manages the TIMER7 clocks." {
+        _ 7 mbz;
+        clksel 1 rw type(clksel_status) "Selects between ABE_SYSCLK and ABE_ALWON_32K_CLK as the timer functional clock";
+        _ 6 mbz;
+        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
+        _ 14 mbz;
+        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
+    };
+    
+    register cm1_abe_gptimer8_clkctrl addr(base, 0x80) "This register manages the TIMER8 clocks." {
+        _ 7 mbz;
+        clksel 1 rw type(clksel_status) "Selects between ABE_SYSCLK and ABE_ALWON_32K_CLK as the timer functional clock";
+        _ 6 mbz;
+        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
+        _ 14 mbz;
+        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
+    };
+    
+    register cm1_abe_wdtimer3_clkctrl addr(base, 0x88) "This register manages the WDT3 clocks." {
+        _ 14 mbz;
+        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
+        _ 14 mbz;
+        modulemode 2 rw type(modulemode_status1) "Control the way mandatory clocks are managed.";
+    };
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_abe_prm.dev b/devices/omap/omap44xx_abe_prm.dev
new file mode 100644 (file)
index 0000000..61c974d
--- /dev/null
@@ -0,0 +1,308 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_abe_prm.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_abe_prm msbfirst ( addr base ) "" {
+    
+
+    constants periphmem_onstate_status width(2) "" {
+        PERIPHMEM_ONSTATE_3_r = 3 "Memory bank is on when the domain is ON.";
+    };
+
+    constants periphmem_retstate_status width(1) "" {
+        PERIPHMEM_RETSTATE_0_r = 0 "Memory bank is off when the domain is in the RETENTION state.";
+    };
+
+    constants aessmem_retstate_status width(1) "" {
+        AESSMEM_RETSTATE_1_r = 1 "Memory bank is retained when domain is in RETENTION state.";
+    };
+
+    constants lowpowerstatechange_status width(1) "" {
+        LOWPOWERSTATECHANGE_0 = 0 "Do not request a low power state change.";
+        LOWPOWERSTATECHANGE_1 = 1 "Request a low power state change. This bit is automatically cleared when the power state is effectively changed or when power state is ON.";
+    };
+
+    constants powerstate_status width(2) "" {
+        POWERSTATE_0 = 0 "OFF state";
+        POWERSTATE_1 = 1 "RETENTION state";
+        POWERSTATE_2 = 2 "INACTIVE state";
+        POWERSTATE_3 = 3 "ON State";
+    };
+    
+    register pm_abe_pwrstctrl addr(base, 0x0) "This register controls the ABE domain power state to reach upon a domain sleep transition" {
+        _ 10 mbz;
+        periphmem_onstate 2 ro type(periphmem_onstate_status) "PERIPHMEM memory state when domain is ON.";
+        _ 2 mbz;
+        aessmem_onstate 2 ro type(periphmem_onstate_status) "AESSMEM memory state when domain is ON.";
+        _ 5 mbz;
+        periphmem_retstate 1 ro type(periphmem_retstate_status) "PERIPHMEM memory state when domain is RETENTION.";
+        _ 1 mbz;
+        aessmem_retstate 1 ro type(aessmem_retstate_status) "AESSMEM memory state when domain is RETENTION.";
+        _ 3 mbz;
+        lowpowerstatechange 1 rw type(lowpowerstatechange_status) "Power state change request when domain has already performed a sleep transition. Allows going into deeper low power state without waking up the power domain.";
+        _ 1 mbz;
+        logicretstate 1 ro type(periphmem_retstate_status) "Logic state when power domain is RETENTION";
+        powerstate 2 rw type(powerstate_status) "Power state control";
+    };
+
+    constants lastpowerstateentered_status width(2) "" {
+        LASTPOWERSTATEENTERED_3_r = 3 "Power domain was previously ON-ACTIVE";
+        LASTPOWERSTATEENTERED_2_r = 2 "Power domain was previously ON-INACTIVE";
+        LASTPOWERSTATEENTERED_1_r = 1 "Power domain was previously in RETENTION";
+        LASTPOWERSTATEENTERED_0_r = 0 "Power domain was previously OFF";
+    };
+
+    constants intransition_status width(1) "" {
+        INTRANSITION_0_r = 0 "No ongoing transition on power domain";
+        INTRANSITION_1_r = 1 "Power domain transition is in progress.";
+    };
+
+    constants periphmem_statest_status width(2) "" {
+        PERIPHMEM_STATEST_0_r = 0 "Memory is OFF";
+        PERIPHMEM_STATEST_1_r = 1 "Reserved";
+        PERIPHMEM_STATEST_2_r = 2 "Reserved";
+        PERIPHMEM_STATEST_3_r = 3 "Memory is ON";
+    };
+
+    constants aessmem_statest_status width(2) "" {
+        AESSMEM_STATEST_0_r = 0 "Memory is OFF";
+        AESSMEM_STATEST_1_r = 1 "Memory is RETENTION";
+        AESSMEM_STATEST_2_r = 2 "Reserved";
+        AESSMEM_STATEST_3_r = 3 "Memory is ON";
+    };
+
+    constants logicstatest_status width(1) "" {
+        LOGICSTATEST_0_r = 0 "Logic in domain is OFF";
+        LOGICSTATEST_1_r = 1 "Logic in domain is ON";
+    };
+
+    constants powerstatest_status width(2) "" {
+        POWERSTATEST_0_r = 0 "Power domain is OFF";
+        POWERSTATEST_1_r = 1 "Power domain is in RETENTION";
+        POWERSTATEST_2_r = 2 "Power domain is ON-INACTIVE";
+        POWERSTATEST_3_r = 3 "Power domain is ON-ACTIVE";
+    };
+    
+    register pm_abe_pwrstst addr(base, 0x4) "This register provides a status on the ABE domain current power domain state. [warm reset insensitive]" {
+        _ 6 mbz;
+        lastpowerstateentered 2 rw type(lastpowerstateentered_status) "Last low power state entered. Set to 0x3 upon write of the same only. This register is intended for debug purpose only.";
+        _ 3 mbz;
+        intransition 1 ro type(intransition_status) "Domain transition status";
+        _ 10 mbz;
+        periphmem_statest 2 ro type(periphmem_statest_status) "PERIPHMEM memory state status";
+        _ 2 mbz;
+        aessmem_statest 2 ro type(aessmem_statest_status) "AESSMEM memory state status";
+        _ 1 mbz;
+        logicstatest 1 ro type(logicstatest_status) "Logic state status";
+        powerstatest 2 ro type(powerstatest_status) "Current power state status";
+    };
+
+    constants lostmem_aessmem_status width(1) "" {
+        LOSTMEM_AESSMEM_0 = 0 "Context has been maintained";
+        LOSTMEM_AESSMEM_1 = 1 "Context has been lost";
+    };
+    
+    register rm_abe_aess_context addr(base, 0x2C) "This register contains dedicated AESS context statuses. [warm reset insensitive]" {
+        _ 23 mbz;
+        lostmem_aessmem 1 rw1c type(lostmem_aessmem_status) "Specify if memory-based context in AESSMEM memory bank has been lost due to a previous power transition or other reset source.";
+        _ 7 mbz;
+        lostcontext_dff 1 rw1c type(lostmem_aessmem_status) "Specify if DFF-based context has been lost due to a previous power transition or other reset source. (set upon assertion of AUDIO_RST signal)";
+    };
+
+    constants wkupdep_pdm_dma_sdma_status width(1) "" {
+        WKUPDEP_PDM_DMA_SDMA_0 = 0 "Dependency is disabled";
+        WKUPDEP_PDM_DMA_SDMA_1 = 1 "Dependency is enabled";
+    };
+    
+    register pm_abe_pdm_wkdep addr(base, 0x30) "This register controls wakeup dependency based on PDM service requests." {
+        _ 24 mbz;
+        wkupdep_pdm_dma_sdma 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from PDM module (softwareakeup_dma signal) towards SDMA + L3_2 + L3_1 domains";
+        wkupdep_pdm_dma_dsp 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from PDM module (softwareakeup_dma signal) towards DSP domain";
+        _ 3 mbz;
+        wkupdep_pdm_irq_dsp 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from PDM module (softwareakeup_irq signal) towards DSP domain";
+        _ 1 mbz;
+        wkupdep_pdm_irq_mpu 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from PDM module (softwareakeup_irq signal) towards MPU domain";
+    };
+    
+    register rm_abe_pdm_context addr(base, 0x34) "This register contains dedicated PDM context statuses. [warm reset insensitive]" {
+        _ 23 mbz;
+        lostmem_perihpmem 1 rw1c type(lostmem_aessmem_status) "Specify if memory-based context in PERIHPMEM memory bank has been lost due to a previous power transition or other reset source.";
+        _ 7 mbz;
+        lostcontext_dff 1 rw1c type(lostmem_aessmem_status) "Specify if DFF-based context has been lost due to a previous power transition or other reset source. (set upon assertion of AUDIO_RST signal)";
+    };
+    
+    register pm_abe_dmic_wkdep addr(base, 0x38) "This register controls wakeup dependency based on DMIC service requests." {
+        _ 24 mbz;
+        wkupdep_dmic_dma_sdma 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from DMIC module (softwareakeup_dma signal) towards SDMA + L3_2 + L3_1 domains";
+        wkupdep_dmic_dma_dsp 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from DMIC module (softwareakeup_dma signal) towards DSP domain";
+        _ 3 mbz;
+        wkupdep_dmic_irq_dsp 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from DMIC module (softwareakeup_irq signal) towards DSP domain";
+        _ 1 mbz;
+        wkupdep_dmic_irq_mpu 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from DMIC module (softwareakeup_irq signal) towards MPU domain";
+    };
+    
+    register rm_abe_dmic_context addr(base, 0x3C) "This register contains dedicated DMIC context statuses. [warm reset insensitive]" {
+        _ 23 mbz;
+        lostmem_perihpmem 1 rw1c type(lostmem_aessmem_status) "Specify if memory-based context in PERIHPMEM memory bank has been lost due to a previous power transition or other reset source.";
+        _ 7 mbz;
+        lostcontext_dff 1 rw1c type(lostmem_aessmem_status) "Specify if DFF-based context has been lost due to a previous power transition or other reset source. (set upon assertion of AUDIO_RST signal)";
+    };
+    
+    register pm_abe_mcasp_wkdep addr(base, 0x40) "This register controls wakeup dependency based on MCASP service requests." {
+        _ 24 mbz;
+        wkupdep_mcasp1_dma_sdma 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from MCASP1 module (softwareakeup_dma signal) towards SDMA + L3_2 + L3_1 domains";
+        wkupdep_mcasp1_dma_dsp 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from MCASP1 module (softwareakeup_dma signal) towards DSP domain";
+        _ 3 mbz;
+        wkupdep_mcasp1_irq_dsp 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from MCASP1 module (softwareakeup_irq signal) towards DSP domain";
+        _ 1 mbz;
+        wkupdep_mcasp1_irq_mpu 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from MCASP1 module (softwareakeup_irq signal) towards MPU domain";
+    };
+    
+    register rm_abe_mcasp_context addr(base, 0x44) "This register contains dedicated MCASP context statuses. [warm reset insensitive]" {
+        _ 31 mbz;
+        lostcontext_dff 1 rw1c type(lostmem_aessmem_status) "Specify if DFF-based context has been lost due to a previous power transition or other reset source. (set upon assertion of AUDIO_RST signal)";
+    };
+    
+    register pm_abe_mcbsp1_wkdep addr(base, 0x48) "This register controls wakeup dependency based on MCBSP1 service requests." {
+        _ 28 mbz;
+        wkupdep_mcbsp1_sdma 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from MCBSP1 module (softwareakeup signal) towards SDMA + L3_2 + L3_1 domains";
+        wkupdep_mcbsp1_dsp 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from MCBSP1 module (softwareakeup signal) towards DSP domain";
+        _ 1 mbz;
+        wkupdep_mcbsp1_mpu 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from MCBSP1 module (softwareakeup signal) towards MPU domain";
+    };
+    
+    register rm_abe_mcbsp1_context addr(base, 0x4C) "This register contains dedicated MCBSP1 context statuses. [warm reset insensitive]" {
+        _ 23 mbz;
+        lostmem_perihpmem 1 rw1c type(lostmem_aessmem_status) "Specify if memory-based context in PERIHPMEM memory bank has been lost due to a previous power transition or other reset source.";
+        _ 7 mbz;
+        lostcontext_dff 1 rw1c type(lostmem_aessmem_status) "Specify if DFF-based context has been lost due to a previous power transition or other reset source. (set upon assertion of AUDIO_RST signal)";
+    };
+    
+    register pm_abe_mcbsp2_wkdep addr(base, 0x50) "This register controls wakeup dependency based on MCBSP2 service requests." {
+        _ 28 mbz;
+        wkupdep_mcbsp2_sdma 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from MCBSP2 module (softwareakeup signal) towards SDMA + L3_2 + L3_1 domains";
+        wkupdep_mcbsp2_dsp 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from MCBSP2 module (softwareakeup signal) towards DSP domain";
+        _ 1 mbz;
+        wkupdep_mcbsp2_mpu 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from MCBSP2 module (softwareakeup signal) towards MPU domain";
+    };
+    
+    register rm_abe_mcbsp2_context addr(base, 0x54) "This register contains dedicated MCBSP2 context statuses. [warm reset insensitive]" {
+        _ 23 mbz;
+        lostmem_perihpmem 1 rw1c type(lostmem_aessmem_status) "Specify if memory-based context in PERIHPMEM memory bank has been lost due to a previous power transition or other reset source.";
+        _ 7 mbz;
+        lostcontext_dff 1 rw1c type(lostmem_aessmem_status) "Specify if DFF-based context has been lost due to a previous power transition or other reset source. (set upon assertion of AUDIO_RST signal)";
+    };
+    
+    register pm_abe_mcbsp3_wkdep addr(base, 0x58) "This register controls wakeup dependency based on MCBSP3 service requests." {
+        _ 28 mbz;
+        wkupdep_mcbsp3_sdma 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from MCBSP3 module (softwareakeup signal) towards SDMA + L3_2 + L3_1 domains";
+        wkupdep_mcbsp3_dsp 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from MCBSP3 module (softwareakeup signal) towards DSP domain";
+        _ 1 mbz;
+        wkupdep_mcbsp3_mpu 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from MCBSP3 module (softwareakeup signal) towards MPU domain";
+    };
+    
+    register rm_abe_mcbsp3_context addr(base, 0x5C) "This register contains dedicated MCBSP3 context statuses. [warm reset insensitive]" {
+        _ 23 mbz;
+        lostmem_perihpmem 1 rw1c type(lostmem_aessmem_status) "Specify if memory-based context in PERIHPMEM memory bank has been lost due to a previous power transition or other reset source.";
+        _ 7 mbz;
+        lostcontext_dff 1 rw1c type(lostmem_aessmem_status) "Specify if DFF-based context has been lost due to a previous power transition or other reset source. (set upon assertion of AUDIO_RST signal)";
+    };
+    
+    register pm_abe_slimbus_wkdep addr(base, 0x60) "This register controls wakeup dependency based on SLIMBUS service requests." {
+        _ 24 mbz;
+        wkupdep_slimbus1_dma_sdma 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from SLIMBUS1 module (softwareakeup_dma signal) towards SDMA + L3_2 + L3_1 domains";
+        wkupdep_slimbus1_dma_dsp 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from SLIMBUS1 module (softwareakeup_dma signal) towards DSP domain";
+        _ 3 mbz;
+        wkupdep_slimbus1_irq_dsp 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from SLIMBUS1 module (softwareakeup_irq signal) towards DSP domain";
+        _ 1 mbz;
+        wkupdep_slimbus1_irq_mpu 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from SLIMBUS1 module (softwareakeup_irq signal) towards MPU domain";
+    };
+    
+    register rm_abe_slimbus_context addr(base, 0x64) "This register contains dedicated SLIMBUS context statuses. [warm reset insensitive]" {
+        _ 23 mbz;
+        lostmem_perihpmem 1 rw1c type(lostmem_aessmem_status) "Specify if memory-based context in PERIHPMEM memory bank has been lost due to a previous power transition or other reset source.";
+        _ 7 mbz;
+        lostcontext_dff 1 rw1c type(lostmem_aessmem_status) "Specify if DFF-based context has been lost due to a previous power transition or other reset source. (set upon assertion of AUDIO_RST signal)";
+    };
+    
+    register pm_abe_gptimer5_wkdep addr(base, 0x68) "This register controls wakeup dependency based on TIMER5 service requests." {
+        _ 29 mbz;
+        wkupdep_timer5_dsp 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from TIMER5 module (softwareakeup signal) towards DSP domain";
+        _ 1 mbz;
+        wkupdep_timer5_mpu 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from TIMER5 module (softwareakeup signal) towards MPU domain";
+    };
+    
+    register rm_abe_gptimer5_context addr(base, 0x6C) "This register contains dedicated TIMER5 context statuses. [warm reset insensitive]" {
+        _ 31 mbz;
+        lostcontext_dff 1 rw1c type(lostmem_aessmem_status) "Specify if DFF-based context has been lost due to a previous power transition or other reset source. (set upon assertion of AUDIO_RST signal)";
+    };
+    
+    register pm_abe_gptimer6_wkdep addr(base, 0x70) "This register controls wakeup dependency based on TIMER6 service requests." {
+        _ 29 mbz;
+        wkupdep_timer6_dsp 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from TIMER6 module (softwareakeup signal) towards DSP domain";
+        _ 1 mbz;
+        wkupdep_timer6_mpu 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from TIMER6 module (softwareakeup signal) towards MPU domain";
+    };
+    
+    register rm_abe_gptimer6_context addr(base, 0x74) "This register contains dedicated TIMER6 context statuses. [warm reset insensitive]" {
+        _ 31 mbz;
+        lostcontext_dff 1 rw1c type(lostmem_aessmem_status) "Specify if DFF-based context has been lost due to a previous power transition or other reset source. (set upon assertion of AUDIO_RST signal)";
+    };
+    
+    register pm_abe_gptimer7_wkdep addr(base, 0x78) "This register controls wakeup dependency based on TIMER7 service requests." {
+        _ 29 mbz;
+        wkupdep_timer7_dsp 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from TIMER7 module (softwareakeup signal) towards DSP domain";
+        _ 1 mbz;
+        wkupdep_timer7_mpu 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from TIMER7 module (softwareakeup signal) towards MPU domain";
+    };
+    
+    register rm_abe_gptimer7_context addr(base, 0x7C) "This register contains dedicated TIMER7 context statuses. [warm reset insensitive]" {
+        _ 31 mbz;
+        lostcontext_dff 1 rw1c type(lostmem_aessmem_status) "Specify if DFF-based context has been lost due to a previous power transition or other reset source. (set upon assertion of AUDIO_RST signal)";
+    };
+    
+    register pm_abe_gptimer8_wkdep addr(base, 0x80) "This register controls wakeup dependency based on TIMER8 service requests." {
+        _ 29 mbz;
+        wkupdep_timer8_dsp 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from TIMER8 module (softwareakeup signal) towards DSP domain";
+        _ 1 mbz;
+        wkupdep_timer8_mpu 1 rw type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from TIMER8 module (softwareakeup signal) towards MPU domain";
+    };
+    
+    register rm_abe_gptimer8_context addr(base, 0x84) "This register contains dedicated TIMER8 context statuses. [warm reset insensitive]" {
+        _ 31 mbz;
+        lostcontext_dff 1 rw1c type(lostmem_aessmem_status) "Specify if DFF-based context has been lost due to a previous power transition or other reset source. (set upon assertion of AUDIO_RST signal)";
+    };
+    
+    register pm_abe_wdtimer3_wkdep addr(base, 0x88) "This register controls wakeup dependency based on WDT3 service requests." {
+        _ 31 mbz;
+        wkupdep_wdt3_mpu 1 ro type(wkupdep_pdm_dma_sdma_status) "Wakeup dependency from WDT3 module (softwareakeup signal) towards MPU domain";
+    };
+    
+    register rm_abe_wdtimer3_context addr(base, 0x8C) "This register contains dedicated WDT3 context statuses. [warm reset insensitive]" {
+        _ 31 mbz;
+        lostcontext_dff 1 rw1c type(lostmem_aessmem_status) "Specify if DFF-based context has been lost due to a previous power transition or other reset source. (set upon assertion of AUDIO_RST signal)";
+    };
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_always_on_cm2.dev b/devices/omap/omap44xx_always_on_cm2.dev
new file mode 100644 (file)
index 0000000..09e7b43
--- /dev/null
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_always_on_cm2.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_always_on_cm2 msbfirst ( addr base ) "" {
+    
+
+    constants clkactivity_core_alwon_32k_gfclk_status width(1) "" {
+        CLKACTIVITY_CORE_ALWON_32K_GFCLK_0_r = 0 "Corresponding clock is definitely gated.";
+        CLKACTIVITY_CORE_ALWON_32K_GFCLK_1_r = 1 "Corresponding clock is running or gating/ungating transition is ongoing.";
+    };
+
+    constants clkactivity_sr_core_sysclk_status width(1) "" {
+        CLKACTIVITY_SR_CORE_SYSCLK_0_r = 0 "Corresponding clock is definitely gated";
+        CLKACTIVITY_SR_CORE_SYSCLK_1_r = 1 "Corresponding clock is running or gating/ungating transition is ongoing";
+    };
+
+    constants clktrctrl_status width(2) "" {
+        CLKTRCTRL_0 = 0 "NO_SLEEP: Sleep transition cannot be initiated. Wakeup transition may however occur.";
+        CLKTRCTRL_1_r = 1 "Reserved";
+        CLKTRCTRL_2 = 2 "SW_WKUP: Start a software forced wake-up transition on the domain.";
+        CLKTRCTRL_3 = 3 "HW_AUTO: Automatic transition is enabled. Sleep and wakeup transition are based upon hardware conditions.";
+    };
+    
+    register cm_alwon_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." {
+        _ 19 mbz;
+        clkactivity_core_alwon_32k_gfclk 1 ro type(clkactivity_core_alwon_32k_gfclk_status) "This field indicates the state of the CORE_ALWON_32K_GFCLK clock in the domain. [warm reset insensitive]";
+        clkactivity_sr_core_sysclk 1 ro type(clkactivity_sr_core_sysclk_status) "This field indicates the state of the SR_CORE_SYSCLK clock input of the domain. [warm reset insensitive]";
+        clkactivity_sr_iva_sysclk 1 ro type(clkactivity_sr_core_sysclk_status) "This field indicates the state of the SR_IVA_SYSCLK clock input of the domain. [warm reset insensitive]";
+        clkactivity_sr_mpu_sysclk 1 ro type(clkactivity_sr_core_sysclk_status) "This field indicates the state of the SR_MPU_SYSCLK clock input of the domain. [warm reset insensitive]";
+        clkactivity_l4_ao_iclk 1 ro type(clkactivity_sr_core_sysclk_status) "This field indicates the state of the L4_AO_ICLK clock of the domain. [warm reset insensitive]";
+        _ 6 mbz;
+        clktrctrl 2 rw type(clktrctrl_status) "Controls the clock state transition of the ALWONCORE clock domain.";
+    };
+
+    constants idlest_status width(2) "" {
+        IDLEST_0_r = 0 "Module is fully functional, including INTRCONN";
+        IDLEST_1_r = 1 "Module is performing transition: wakeup, or sleep, or sleep abortion";
+        IDLEST_2_r = 2 "Module is in idle mode (only INTRCONN part). It is functional if using separate functional clock";
+        IDLEST_3_r = 3 "Module is disabled and cannot be accessed";
+    };
+
+    constants modulemode_status width(2) "" {
+        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).";
+        MODULEMODE_1_r = 1 "Reserved";
+        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.";
+        MODULEMODE_3_r = 3 "Reserved";
+    };
+    
+    register cm_alwon_sr_mpu_clkctrl addr(base, 0x28) "This register manages the SR_MPU clocks." {
+        _ 14 mbz;
+        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
+        _ 14 mbz;
+        modulemode 2 rw type(modulemode_status) "Control the way mandatory clocks are managed.";
+    };
+    
+    register cm_alwon_sr_iva_clkctrl addr(base, 0x30) "This register manages the SR_IVA clocks." {
+        _ 14 mbz;
+        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
+        _ 14 mbz;
+        modulemode 2 rw type(modulemode_status) "Control the way mandatory clocks are managed.";
+    };
+    
+    register cm_alwon_sr_core_clkctrl addr(base, 0x38) "This register manages the SR_CORE clocks." {
+        _ 14 mbz;
+        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
+        _ 14 mbz;
+        modulemode 2 rw type(modulemode_status) "Control the way mandatory clocks are managed.";
+    };
+
+    constants optfclken_clk32k_status width(1) "" {
+        OPTFCLKEN_CLK32K_0 = 0 "Optional functional clock is disabled";
+        OPTFCLKEN_CLK32K_1 = 1 "Optional functional clock is enabled";
+    };
+    
+    register cm_alwon_usbphy_clkctrl addr(base, 0x40) "This register manages the USB PHY 32KHz clock." {
+        _ 23 mbz;
+        optfclken_clk32k 1 rw type(optfclken_clk32k_status) "Optional functional clock control.";
+        _ 8 mbz;
+    };
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_always_on_prm.dev b/devices/omap/omap44xx_always_on_prm.dev
new file mode 100644 (file)
index 0000000..d45aeb1
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_always_on_prm.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_always_on_prm msbfirst ( addr base ) "" {
+    
+
+    constants wkupdep_sr_mpu_mpu_status width(1) "" {
+        WKUPDEP_SR_MPU_MPU_1_r = 1 "Dependency is enabled";
+    };
+    
+    register pm_alwon_sr_mpu_wkdep addr(base, 0x28) "This register controls wakeup dependency based on SR_MPU service requests." {
+        _ 31 mbz;
+        wkupdep_sr_mpu_mpu 1 ro type(wkupdep_sr_mpu_mpu_status) "Wakeup dependency from SR_MPU module (softwareakeup signal) towards MPU + L3_1 + L4_CFG domains";
+    };
+
+    constants lostcontext_dff_status width(1) "" {
+        LOSTCONTEXT_DFF_0 = 0 "Context has been maintained";
+        LOSTCONTEXT_DFF_1 = 1 "Context has been lost";
+    };
+    
+    register rm_alwon_sr_mpu_context addr(base, 0x2C) "This register contains dedicated SR_MPU context statuses. [warm reset insensitive]" {
+        _ 31 mbz;
+        lostcontext_dff 1 rw1c type(lostcontext_dff_status) "Specify if DFF-based context has been lost due to a previous power transition or other reset source. (set upon assertion of Always_on_CORE_RST signal)";
+    };
+
+    constants wkupdep_sr_iva_mpu_m3_status width(1) "" {
+        WKUPDEP_SR_IVA_MPU_M3_0 = 0 "Dependency is disabled";
+        WKUPDEP_SR_IVA_MPU_M3_1 = 1 "Dependency is enabled";
+    };
+    
+    register pm_alwon_sr_iva_wkdep addr(base, 0x30) "This register controls wakeup dependency based on SR_IVA service requests." {
+        _ 30 mbz;
+        wkupdep_sr_iva_mpu_m3 1 rw type(wkupdep_sr_iva_mpu_m3_status) "Wakeup dependency from SR_IVA module (softwareakeup signal) towards MPU_A3 + L3_2 + L3_1 + L4_CFG domains";
+        wkupdep_sr_iva_mpu 1 rw type(wkupdep_sr_iva_mpu_m3_status) "Wakeup dependency from SR_IVA module (softwareakeup signal) towards MPU + L3_1 + L4_CFG domains";
+    };
+    
+    register rm_alwon_sr_iva_context addr(base, 0x34) "This register contains dedicated SR_IVA context statuses. [warm reset insensitive]" {
+        _ 31 mbz;
+        lostcontext_dff 1 rw1c type(lostcontext_dff_status) "Specify if DFF-based context has been lost due to a previous power transition or other reset source. (set upon assertion of Always_on_CORE_RST signal)";
+    };
+    
+    register pm_alwon_sr_core_wkdep addr(base, 0x38) "This register controls wakeup dependency based on SR_CORE service requests." {
+        _ 30 mbz;
+        wkupdep_sr_core_mpu_m3 1 rw type(wkupdep_sr_iva_mpu_m3_status) "Wakeup dependency from SR_CORE module (softwareakeup signal) towards MPU_A3 + L3_2 + L3_1 + L4_CFG domains";
+        wkupdep_sr_core_mpu 1 rw type(wkupdep_sr_iva_mpu_m3_status) "Wakeup dependency from SR_CORE module (softwareakeup signal) towards MPU + L3_1 + L4_CFG domains";
+    };
+    
+    register rm_alwon_sr_core_context addr(base, 0x3C) "This register contains dedicated SR_CORE context statuses. [warm reset insensitive]" {
+        _ 31 mbz;
+        lostcontext_dff 1 rw1c type(lostcontext_dff_status) "Specify if DFF-based context has been lost due to a previous power transition or other reset source. (set upon assertion of Always_on_CORE_RST signal)";
+    };
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_c2c.dev b/devices/omap/omap44xx_c2c.dev
new file mode 100644 (file)
index 0000000..868e7d5
--- /dev/null
@@ -0,0 +1,454 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_c2c.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_c2c msbfirst ( addr base ) "" {
+    
+    
+    register c2c_revision ro addr(base, 0x0) "IP Revision identifier (X.Y.R) Used by software to track features, bugs, and compatibility" type(uint32);
+    
+    register c2c_sysconfig ro addr(base, 0x4) "System configuration register (not used)" type(uint32);
+    
+    register c2c_sysstatus ro addr(base, 0x8) "Reserved" type(uint32);
+
+    constants rx_width_status width(4) "" {
+        RX_WIDTH_1 = 1 "Bus width is set to 10 bits (possible only if TX = 8).";
+        RX_WIDTH_10 = 10 "Bus width is set to 16 bits.";
+    };
+
+    constants tx_width_status width(4) "" {
+        TX_WIDTH_1 = 1 "Bus width is set to 10 bits (possible only if RX = 8).";
+        TX_WIDTH_10 = 10 "Bus width is set to 16 bits (default mode).";
+    };
+    
+    register c2c_portconfig addr(base, 0xC) "This register defines the widths of the TX and RX buses on the C2C interface." {
+        _ 24 mbz;
+        rx_width 4 rw type(rx_width_status) "0000: Bus width is set to 8 bits (default mode).Other values are reserved, and should not be used. .";
+        tx_width 4 rw type(tx_width_status) "0000: Bus width is set to 8 bits.Other values are reserved, and shall not be used. .";
+    };
+
+    constants mirrormode_status width(1) "" {
+        MIRRORMODE_0 = 0 "Functional default mode";
+        MIRRORMODE_1 = 1 "Mirror mode for debug";
+    };
+    
+    register c2c_mirrormode addr(base, 0x10) "This register sets the C2C L3 in mirror mode. See debug section." {
+        _ 31 mbz;
+        mirrormode 1 rw type(mirrormode_status) "Mirror mode.";
+    };
+    
+    register c2c_irq_raw_status_0 addr(base, 0x14) "Interrupt status register (OCP-compliant IRQ line) for C2c_Sscm_Irq(0), regardless of enable settings" {
+        _ 28 mbz;
+        wait_irq 1 rw "Reading 1 indicates WAIT value in WAIT register has been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        wake_ack_irq 1 rw "Reading 1 indicates WAKE_ACK value in the WAKE_ACK register has been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        rx_max_freq_ack_irq 1 rw "Reading 1 indicates GPI is not turned on OR RX_MAX_FREQ_ACK value in the RX_MAX_FREQ_ACK register equal RX_MAX_FREQ value in the RX_MAX_FREQ register.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        tx_freq_irq 1 rw "Reading 1 indicates that the FCLK_FREQ value in the FCLK_FREQ register has been updated AND the SSCM has finished updating the new division for the TX clock.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+    };
+    
+    register c2c_irq_raw_status_1 addr(base, 0x18) "" {
+        geno_irq_31 1 rw "Reading 1 indicates C2c_Sscm_GENO (31) signal and GENO_31 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_30 1 rw "Reading 1 indicates C2c_Sscm_GENO (30) signal and GENO_30 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_29 1 rw "Reading 1 indicates C2c_Sscm_GENO (29) signal and GENO_29 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_28 1 rw "Reading 1 indicates C2c_Sscm_GENO (28) signal and GENO_28 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_27 1 rw "Reading 1 indicates C2c_Sscm_GENO (27) signal and GENO_27 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_26 1 rw "Reading 1 indicates C2c_Sscm_GENO (26) signal and GENO_26 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_25 1 rw "Reading 1 indicates C2c_Sscm_GENO (25) signal and GENO_25 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_24 1 rw "Reading 1 indicates C2c_Sscm_GENO (24) signal and GENO_24 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_23 1 rw "Reading 1 indicates C2c_Sscm_GENO (23) signal and GENO_23 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_22 1 rw "Reading 1 indicates C2c_Sscm_GENO (22) signal and GENO_22 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_21 1 rw "Reading 1 indicates C2c_Sscm_GENO (21) signal and GENO_21 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_20 1 rw "Reading 1 indicates C2c_Sscm_GENO (20) signal and GENO_20 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_19 1 rw "Reading 1 indicates C2c_Sscm_GENO (19) signal and GENO_19 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_18 1 rw "Reading 1 indicates C2c_Sscm_GENO (18) signal and GENO_18 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_17 1 rw "Reading 1 indicates C2c_Sscm_GENO (17) signal and GENO_17 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_16 1 rw "Reading 1 indicates C2c_Sscm_GENO (16) signal and GENO_16 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_15 1 rw "Reading 1 indicates C2c_Sscm_GENO (15) signal and GENO_15 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_14 1 rw "Reading 1 indicates C2c_Sscm_GENO (14) signal and GENO_14 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_13 1 rw "Reading 1 indicates C2c_Sscm_GENO (13) signal and GENO_13 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_12 1 rw "Reading 1 indicates C2c_Sscm_GENO (12) signal and GENO_12 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_11 1 rw "Reading 1 indicates C2c_Sscm_GENO (11) signal and GENO_11 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_10 1 rw "Reading 1 indicates C2c_Sscm_GENO (10) signal and GENO_10 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_9 1 rw "Reading 1 indicates C2c_Sscm_GENO (9) signal and GENO_9 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_8 1 rw "Reading 1 indicates C2c_Sscm_GENO (8) signal and GENO_8 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_7 1 rw "Reading 1 indicates C2c_Sscm_GENO (7) signal and GENO_7 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_6 1 rw "Reading 1 indicates C2c_Sscm_GENO (6) signal and GENO_6 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_5 1 rw "Reading 1 indicates C2c_Sscm_GENO (5) signal and GENO_5 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_4 1 rw "Reading 1 indicates C2c_Sscm_GENO (4) signal and GENO_4 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_3 1 rw "Reading 1 indicates C2c_Sscm_GENO (3) signal and GENO_3 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_2 1 rw "Reading 1 indicates C2c_Sscm_GENO (2) signal and GENO_2 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_1 1 rw "Reading 1 indicates C2c_Sscm_GENO (1) signal and GENO_1 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+        geno_irq_0 1 rw "Reading 1 indicates C2c_Sscm_GENO (0) signal and GENO_0 value in GENO_STATUS register have been modified by distant C2C.Writing 1 to this bit sets the bit. . Writing 0 has no effect. .";
+    };
+    
+    register c2c_irq_enable_status_0 addr(base, 0x1C) "" {
+        _ 28 mbz;
+        wait_irq 1 rw1c "Reading 1 indicates WAIT value in WAIT register has been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        wake_ack_irq 1 rw1c "Reading 1 indicates WAKE_ACK value in the WAKE_ACK register has been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        rx_max_freq_ack_irq 1 rw1c "Reading 1 indicates GPI is not turned on OR RX_MAX_FREQ_ACK value in the RX_MAX_FREQ_ACK register equal RX_MAX_FREQ value in the RX_MAX_FREQ register.";
+        tx_freq_irq 1 rw1c "Reading 1 indicates that the FCLK_FREQ value in the FCLK_FREQ register has been updated AND the SSCM has finished updating the new division for the Tx clock.";
+    };
+    
+    register c2c_irq_enable_status_1 addr(base, 0x20) "" {
+        geno_irq_31 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (31) signal and GENO_31 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_30 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (30) signal and GENO_30 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_29 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (29) signal and GENO_29 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_28 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (28) signal and GENO_28 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_27 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (27) signal and GENO_27 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_26 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (26) signal and GENO_26 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_25 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (25) signal and GENO_25 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_24 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (24) signal and GENO_24 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_23 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (23) signal and GENO_23 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_22 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (22) signal and GENO_22 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_21 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (21) signal and GENO_21 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_20 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (20) signal and GENO_20 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_19 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (19) signal and GENO_19 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_18 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (18) signal and GENO_18 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_17 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (17) signal and GENO_17 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_16 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (16) signal and GENO_16 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_15 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (15) signal and GENO_15 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_14 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (14) signal and GENO_14 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_13 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (13) signal and GENO_13 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_12 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (12) signal and GENO_12 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_11 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (11) signal and GENO_11 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_10 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (10) signal and GENO_10 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_9 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (9) signal and GENO_9 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_8 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (8) signal and GENO_8 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_7 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (7) signal and GENO_7 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_6 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (6) signal and GENO_6 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_5 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (5) signal and GENO_5 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_4 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (4) signal and GENO_4 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_3 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (3) signal and GENO_3 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_2 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (2) signal and GENO_2 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_1 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (1) signal and GENO_1 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_0 1 rw1c "Reading 1 indicates C2c_Sscm_GENO (0) signal and GENO_0 value in GENO_STATUS register have been modified by distant C2C and interrupt source is not masked. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+    };
+    
+    register c2c_irq_enable_set_0 addr(base, 0x24) "" {
+        _ 28 mbz;
+        wait_irq_en 1 rw "Interrupt enable for WAIT IRQ. Writing 1 to this bit sets the bit. Writing 0 has no effect.";
+        wake_ack_irq_en 1 rw "Interrupt enable for WAKE_ACK IRQ. Writing 1 to this bit sets the bit. Writing 0 has no effect.";
+        rx_max_freq_ack_irq_en 1 rw "Interrupt enable for RX_MAX_FREQ_ACK IRQ. Writing 1 to this bit sets the bit. Writing 0 has no effect.";
+        tx_freq_irq_en 1 rw "Interrupt enable for TX_FREQ IRQ. Writing 1 to this bit sets the bit. Writing 0 has no effect.";
+    };
+    
+    register c2c_irq_enable_set_1 addr(base, 0x28) "" {
+        geno_irq_31_en 1 rw "Interrupt enable for GENO_IRQ_31 IRQ.";
+        geno_irq_30_en 1 rw "Interrupt enable for GENO_IRQ_30 IRQ.";
+        geno_irq_29_en 1 rw "Interrupt enable for GENO_IRQ_29 IRQ.";
+        geno_irq_28_en 1 rw "Interrupt enable for GENO_IRQ_28 IRQ.";
+        geno_irq_27_en 1 rw "Interrupt enable for GENO_IRQ_27 IRQ.";
+        geno_irq_26_en 1 rw "Interrupt enable for GENO_IRQ_26 IRQ.";
+        geno_irq_25_en 1 rw "Interrupt enable for GENO_IRQ_25 IRQ.";
+        geno_irq_24_en 1 rw "Interrupt enable for GENO_IRQ_24 IRQ.";
+        geno_irq_23_en 1 rw "Interrupt enable for GENO_IRQ_23 IRQ.";
+        geno_irq_22_en 1 rw "Interrupt enable for GENO_IRQ_22 IRQ.";
+        geno_irq_21_en 1 rw "Interrupt enable for GENO_IRQ_21 IRQ.";
+        geno_irq_20_en 1 rw "Interrupt enable for GENO_IRQ_20 IRQ.";
+        geno_irq_19_en 1 rw "Interrupt enable for GENO_IRQ_19 IRQ.";
+        geno_irq_18_en 1 rw "Interrupt enable for GENO_IRQ_18 IRQ.";
+        geno_irq_17_en 1 rw "Interrupt enable for GENO_IRQ_17 IRQ.";
+        geno_irq_16_en 1 rw "Interrupt enable for GENO_IRQ_16 IRQ.";
+        geno_irq_15_en 1 rw "Interrupt enable for GENO_IRQ_15 IRQ.";
+        geno_irq_14_en 1 rw "Interrupt enable for GENO_IRQ_14 IRQ.";
+        geno_irq_13_en 1 rw "Interrupt enable for GENO_IRQ_13 IRQ.";
+        geno_irq_12_en 1 rw "Interrupt enable for GENO_IRQ_12 IRQ.";
+        geno_irq_11_en 1 rw "Interrupt enable for GENO_IRQ_11 IRQ.";
+        geno_irq_10_en 1 rw "Interrupt enable for GENO_IRQ_10 IRQ.";
+        geno_irq_9_en 1 rw "Interrupt enable for GENO_IRQ_9 IRQ.";
+        geno_irq_8_en 1 rw "Interrupt enable for GENO_IRQ_8 IRQ.";
+        geno_irq_7_en 1 rw "Interrupt enable for GENO_IRQ_7 IRQ.";
+        geno_irq_6_en 1 rw "Interrupt enable for GENO_IRQ_6 IRQ.";
+        geno_irq_5_en 1 rw "Interrupt enable for GENO_IRQ_5 IRQ.";
+        geno_irq_4_en 1 rw "Interrupt enable for GENO_IRQ_4 IRQ.";
+        geno_irq_3_en 1 rw "Interrupt enable for GENO_IRQ_3 IRQ.";
+        geno_irq_2_en 1 rw "Interrupt enable for GENO_IRQ_2 IRQ.";
+        geno_irq_1_en 1 rw "Interrupt enable for GENO_IRQ_1 IRQ.";
+        geno_irq_0_en 1 rw "Interrupt enable for GENO_IRQ_0 IRQ.";
+    };
+    
+    register c2c_irq_enable_clear_0 addr(base, 0x2C) "" {
+        _ 28 mbz;
+        wait_irq_en 1 rw1c "Interrupt enable for WAIT IRQ.";
+        wake_ack_irq_en 1 rw1c "Interrupt enable for WAKE_ACK IRQ.";
+        rx_max_freq_ack_irq_en 1 rw1c "Interrupt enable for RX_MAX_FREQ_ACK IRQ.";
+        tx_freq_irq_en 1 rw1c "Interrupt enable for TX_FREQ IRQ.";
+    };
+    
+    register c2c_irq_enable_clear_1 addr(base, 0x30) "" {
+        geno_irq_31_en 1 rw1c "Interrupt enable for GENO_IRQ_31 IRQ. Writing 1 to this bit clears the bit. Writing 0 has no effect.";
+        geno_irq_30_en 1 rw1c "Interrupt enable for GENO_IRQ_30 IRQ.";
+        geno_irq_29_en 1 rw1c "Interrupt enable for GENO_IRQ_29 IRQ.";
+        geno_irq_28_en 1 rw1c "Interrupt enable for GENO_IRQ_28 IRQ.";
+        geno_irq_27_en 1 rw1c "Interrupt enable for GENO_IRQ_27 IRQ.";
+        geno_irq_26_en 1 rw1c "Interrupt enable for GENO_IRQ_26 IRQ.";
+        geno_irq_25_en 1 rw1c "Interrupt enable for GENO_IRQ_25 IRQ.";
+        geno_irq_24_en 1 rw1c "Interrupt enable for GENO_IRQ_24 IRQ.";
+        geno_irq_23_en 1 rw1c "Interrupt enable for GENO_IRQ_23 IRQ.";
+        geno_irq_22_en 1 rw1c "Interrupt enable for GENO_IRQ_22 IRQ.";
+        geno_irq_21_en 1 rw1c "Interrupt enable for GENO_IRQ_21 IRQ.";
+        geno_irq_20_en 1 rw1c "Interrupt enable for GENO_IRQ_20 IRQ.";
+        geno_irq_19_en 1 rw1c "Interrupt enable for GENO_IRQ_19 IRQ.";
+        geno_irq_18_en 1 rw1c "Interrupt enable for GENO_IRQ_18 IRQ.";
+        geno_irq_17_en 1 rw1c "Interrupt enable for GENO_IRQ_17 IRQ.";
+        geno_irq_16_en 1 rw1c "Interrupt enable for GENO_IRQ_16 IRQ.";
+        geno_irq_15_en 1 rw1c "Interrupt enable for GENO_IRQ_15 IRQ.";
+        geno_irq_14_en 1 rw1c "Interrupt enable for GENO_IRQ_14 IRQ.";
+        geno_irq_13_en 1 rw1c "Interrupt enable for GENO_IRQ_13 IRQ.";
+        geno_irq_12_en 1 rw1c "Interrupt enable for GENO_IRQ_12 IRQ.";
+        geno_irq_11_en 1 rw1c "Interrupt enable for GENO_IRQ_11 IRQ.";
+        geno_irq_10_en 1 rw1c "Interrupt enable for GENO_IRQ_10 IRQ.";
+        geno_irq_9_en 1 rw1c "Interrupt enable for GENO_IRQ_9 IRQ.";
+        geno_irq_8_en 1 rw1c "Interrupt enable for GENO_IRQ_8 IRQ.";
+        geno_irq_7_en 1 rw1c "Interrupt enable for GENO_IRQ_7 IRQ.";
+        geno_irq_6_en 1 rw1c "Interrupt enable for GENO_IRQ_6 IRQ.";
+        geno_irq_5_en 1 rw1c "Interrupt enable for GENO_IRQ_5 IRQ.";
+        geno_irq_4_en 1 rw1c "Interrupt enable for GENO_IRQ_4 IRQ.";
+        geno_irq_3_en 1 rw1c "Interrupt enable for GENO_IRQ_3 IRQ.";
+        geno_irq_2_en 1 rw1c "Interrupt enable for GENO_IRQ_2 IRQ.";
+        geno_irq_1_en 1 rw1c "Interrupt enable for GENO_IRQ_1 IRQ.";
+        geno_irq_0_en 1 rw1c "Interrupt enable for GENO_IRQ_0 IRQ.";
+    };
+    
+    register c2c_fclk_freq addr(base, 0x40) "" {
+        _ 22 mbz;
+        fclk_freq 10 rw "Value of the Functional clock frequency according to OPP written by software. Default value is 400 (MHz).";
+    };
+    
+    register c2c_rx_max_freq addr(base, 0x44) "" {
+        _ 22 mbz;
+        rx_max_freq 10 rw "Value of the requested RX maximum clock frequency according to OPP written by software. Default value is 50 (MHz).";
+    };
+    
+    register c2c_tx_max_freq addr(base, 0x48) "" {
+        _ 22 mbz;
+        tx_max_freq 10 rw "Value of the requested TX maximum clock frequency set by distant C2C. Default value is 50 (MHz).";
+    };
+    
+    register c2c_rx_max_freq_ack addr(base, 0x4C) "" {
+        _ 22 mbz;
+        rx_max_freq_ack 10 rw "Acknowledged maximum Rx clock frequency. Set by distant C2C. Default value is 50 (MHz).";
+    };
+    
+    register c2c_wake_req addr(base, 0x50) "" {
+        _ 31 mbz;
+        wake_req 1 rw "Value of the WAKE_REQ set by software";
+    };
+    
+    register c2c_wake_ack addr(base, 0x54) "" {
+        _ 31 mbz;
+        wake_ack 1 rw "Value of the WAKE_ACK set by distant C2C";
+    };
+    
+    register c2c_standby addr(base, 0x60) "" {
+        _ 31 mbz;
+        standby 1 rw "Value of the STANDBY set by software";
+    };
+    
+    register c2c_standby_in addr(base, 0x64) "" {
+        _ 31 mbz;
+        standby 1 rw "Value of the STANDBY set by distant C2C";
+    };
+    
+    register c2c_wait addr(base, 0x68) "" {
+        _ 31 mbz;
+        wait 1 rw "Value of the WAIT set by distant C2C";
+    };
+    
+    register c2c_geni_control addr(base, 0x70) "" {
+        geni_31 1 rw "If GENI_MASK_31 in GENI_MASK register is reset, GENI_31 is the value of C2C_Sscm_GenI_31 and cannot be modified by software. (signal is not masked) If GENI_MASK_31 is set (signal is masked), GENI_31 can be modified by software.";
+        geni_30 1 rw "f GENI_MASK_30 in GENI_MASK register is reset, GENI_30 is the value of C2C_Sscm_GenI_30 and cannot be modified by software. (signal is not masked) If GENI_MASK_30 is set (signal is masked), GENI_30 can be modified by software.";
+        geni_29 1 rw "f GENI_MASK_29 in GENI_MASK register is reset, GENI_29 is the value of C2C_Sscm_GenI_29 and cannot be modified by software. (signal is not masked) If GENI_MASK_29 is set (signal is masked), GENI_29 can be modified by software.";
+        geni_28 1 rw "f GENI_MASK_28 in GENI_MASK register is reset, GENI_28 is the value of C2C_Sscm_GenI_28 and cannot be modified by software. (signal is not masked) If GENI_MASK_28 is set (signal is masked), GENI_28 can be modified by software.";
+        geni_27 1 rw "f GENI_MASK_27 in GENI_MASK register is reset, GENI_27 is the value of C2C_Sscm_GenI_27 and cannot be modified by software. (signal is not masked) If GENI_MASK_27 is set (signal is masked), GENI_27 can be modified by software.";
+        geni_26 1 rw "f GENI_MASK_26 in GENI_MASK register is reset, GENI_26 is the value of C2C_Sscm_GenI_26 and cannot be modified by software. (signal is not masked) If GENI_MASK_26 is set (signal is masked), GENI_26 can be modified by software.";
+        geni_25 1 rw "f GENI_MASK_25 in GENI_MASK register is reset, GENI_25 is the value of C2C_Sscm_GenI_25 and cannot be modified by software. (signal is not masked) If GENI_MASK_25 is set (signal is masked), GENI_25 can be modified by software.";
+        geni_24 1 rw "f GENI_MASK_24 in GENI_MASK register is reset, GENI_24 is the value of C2C_Sscm_GenI_24 and cannot be modified by software. (signal is not masked) If GENI_MASK_24 is set (signal is masked), GENI_24 can be modified by software.";
+        geni_23 1 rw "f GENI_MASK_23 in GENI_MASK register is reset, GENI_23 is the value of C2C_Sscm_GenI_23 and cannot be modified by software. (signal is not masked) If GENI_MASK_23 is set (signal is masked), GENI_23 can be modified by software.";
+        geni_22 1 rw "f GENI_MASK_22 in GENI_MASK register is reset, GENI_22 is the value of C2C_Sscm_GenI_22 and cannot be modified by software. (signal is not masked) If GENI_MASK_22 is set (signal is masked), GENI_22 can be modified by software.";
+        geni_21 1 rw "f GENI_MASK_21 in GENI_MASK register is reset, GENI_21 is the value of C2C_Sscm_GenI_31 and cannot be modified by software. (signal is not masked) If GENI_MASK_21 is set (signal is masked), GENI_21 can be modified by software.";
+        geni_20 1 rw "f GENI_MASK_20 in GENI_MASK register is reset, GENI_20 is the value of C2C_Sscm_GenI_20 and cannot be modified by software. (signal is not masked) If GENI_MASK_20 is set (signal is masked), GENI_20 can be modified by software.";
+        geni_19 1 rw "f GENI_MASK_19 in GENI_MASK register is reset, GENI_19 is the value of C2C_Sscm_GenI_19 and cannot be modified by software. (signal is not masked) If GENI_MASK_19 is set (signal is masked), GENI_19 can be modified by software.";
+        geni_18 1 rw "f GENI_MASK_18 in GENI_MASK register is reset, GENI_18 is the value of C2C_Sscm_GenI_31 and cannot be modified by software. (signal is not masked) If GENI_MASK_18 is set (signal is masked), GENI_18 can be modified by software.";
+        geni_17 1 rw "f GENI_MASK_17 in GENI_MASK register is reset, GENI_17 is the value of C2C_Sscm_GenI_31 and cannot be modified by software. (signal is not masked) If GENI_MASK_17 is set (signal is masked), GENI_17 can be modified by software.";
+        geni_16 1 rw "f GENI_MASK_16 in GENI_MASK register is reset, GENI_16 is the value of C2C_Sscm_GenI_16 and cannot be modified by software. (signal is not masked) If GENI_MASK_156is set (signal is masked), GENI_16 can be modified by software.";
+        geni_15 1 rw "f GENI_MASK_15 in GENI_MASK register is reset, GENI_15 is the value of C2C_Sscm_GenI_15 and cannot be modified by software. (signal is not masked) If GENI_MASK_15 is set (signal is masked), GENI_15 can be modified by software.";
+        geni_14 1 rw "f GENI_MASK_14 in GENI_MASK register is reset, GENI_14 is the value of C2C_Sscm_GenI_14 and cannot be modified by software. (signal is not masked) If GENI_MASK_14 is set (signal is masked), GENI_14 can be modified by software.";
+        geni_13 1 rw "f GENI_MASK_13 in GENI_MASK register is reset, GENI_13 is the value of C2C_Sscm_GenI_13 and cannot be modified by software. (signal is not masked) If GENI_MASK_13 is set (signal is masked), GENI_13 can be modified by software.";
+        geni_12 1 rw "f GENI_MASK_12 in GENI_MASK register is reset, GENI_12 is the value of C2C_Sscm_GenI_12 and cannot be modified by software. (signal is not masked) If GENI_MASK_12 is set (signal is masked), GENI_12 can be modified by software.";
+        geni_11 1 rw "f GENI_MASK_11 in GENI_MASK register is reset, GENI_11 is the value of C2C_Sscm_GenI_11 and cannot be modified by software. (signal is not masked) If GENI_MASK_11 is set (signal is masked), GENI_11 can be modified by software.";
+        geni_10 1 rw "f GENI_MASK_10 in GENI_MASK register is reset, GENI_10 is the value of C2C_Sscm_GenI_10 and cannot be modified by software. (signal is not masked) If GENI_MASK_10 is set (signal is masked), GENI_10 can be modified by software.";
+        geni_9 1 rw "f GENI_MASK_9 in GENI_MASK register is reset, GENI_9 is the value of C2C_Sscm_GenI_9 and cannot be modified by software. (signal is not masked) If GENI_MASK_9 is set (signal is masked), GENI_9 can be modified by software.";
+        geni_8 1 rw "f GENI_MASK_8 in GENI_MASK register is reset, GENI_8 is the value of C2C_Sscm_GenI_8 and cannot be modified by software. (signal is not masked) If GENI_MASK_8 is set (signal is masked), GENI_8 can be modified by software.";
+        geni_7 1 rw "f GENI_MASK_7 in GENI_MASK register is reset, GENI_7 is the value of C2C_Sscm_GenI_7 and cannot be modified by software. (signal is not masked) If GENI_MASK_7 is set (signal is masked), GENI_7 can be modified by software.";
+        geni_6 1 rw "f GENI_MASK_6 in GENI_MASK register is reset, GENI_6 is the value of C2C_Sscm_GenI_6 and cannot be modified by software. (signal is not masked) If GENI_MASK_6 is set (signal is masked), GENI_6 can be modified by software.";
+        geni_5 1 rw "f GENI_MASK_5 in GENI_MASK register is reset, GENI_5 is the value of C2C_Sscm_GenI_5 and cannot be modified by software. (signal is not masked) If GENI_MASK_5 is set (signal is masked), GENI_5 can be modified by software.";
+        geni_4 1 rw "f GENI_MASK_4 in GENI_MASK register is reset, GENI_4 is the value of C2C_Sscm_GenI_4 and cannot be modified by software. (signal is not masked) If GENI_MASK_4 is set (signal is masked), GENI_4 can be modified by software.";
+        geni_3 1 rw "f GENI_MASK_3 in GENI_MASK register is reset, GENI_3 is the value of C2C_Sscm_GenI_3 and cannot be modified by software. (signal is not masked) If GENI_MASK_3 is set (signal is masked), GENI_3 can be modified by software.";
+        geni_2 1 rw "f GENI_MASK_2 in GENI_MASK register is reset, GENI_2 is the value of C2C_Sscm_GenI_2 and cannot be modified by software. (signal is not masked) If GENI_MASK_2 is set (signal is masked), GENI_2 can be modified by software.";
+        geni_1 1 rw "f GENI_MASK_1 in GENI_MASK register is reset, GENI_1 is the value of C2C_Sscm_GenI_1 and cannot be modified by software. (signal is not masked) If GENI_MASK_1 is set (signal is masked), GENI_1 can be modified by software.";
+        geni_0 1 rw "f GENI_MASK_0 in GENI_MASK register is reset, GENI_0 is the value of C2C_Sscm_GenI_0 and cannot be modified by software. (signal is not masked) If GENI_MASK_0 is set (signal is masked), GENI_0 can be modified by software.";
+    };
+    
+    register c2c_geni_mask addr(base, 0x74) "" {
+        geni_mask_31 1 rw "If GENI_MASK_31 is reset, C2C_Sscm_GenI_31 signal is not masked If GENI_MASK_31 is set, signal is masked.";
+        geni_mask_30 1 rw "If GENI_MASK_30 is reset, C2C_Sscm_GenI_30 signal is not masked If GENI_MASK_30 is set, signal is masked.";
+        geni_mask_29 1 rw "If GENI_MASK_29 is reset, C2C_Sscm_GenI_29 signal is not masked If GENI_MASK_29 is set, signal is masked.";
+        geni_mask_28 1 rw "If GENI_MASK_28 is reset, C2C_Sscm_GenI_28 signal is not masked If GENI_MASK_28 is set, signal is masked.";
+        geni_mask_27 1 rw "If GENI_MASK_27 is reset, C2C_Sscm_GenI_27 signal is not masked If GENI_MASK_27 is set, signal is masked.";
+        geni_mask_26 1 rw "If GENI_MASK_26 is reset, C2C_Sscm_GenI_26 signal is not masked If GENI_MASK_26 is set, signal is masked.";
+        geni_mask_25 1 rw "If GENI_MASK_26 is reset, C2C_Sscm_GenI_25 signal is not masked If GENI_MASK_26 is set, signal is masked.";
+        geni_mask_24 1 rw "If GENI_MASK_24 is reset, C2C_Sscm_GenI_24 signal is not masked If GENI_MASK_24 is set, signal is masked.";
+        geni_mask_23 1 rw "If GENI_MASK_23 is reset, C2C_Sscm_GenI_23 signal is not masked If GENI_MASK_23 is set, signal is masked.";
+        geni_mask_22 1 rw "If GENI_MASK_22 is reset, C2C_Sscm_GenI_22 signal is not masked If GENI_MASK_22 is set, signal is masked.";
+        geni_mask_21 1 rw "If GENI_MASK_21 is reset, C2C_Sscm_GenI_21 signal is not masked If GENI_MASK_21 is set, signal is masked.";
+        geni_mask_20 1 rw "If GENI_MASK_20 is reset, C2C_Sscm_GenI_20 signal is not masked If GENI_MASK_20 is set, signal is masked.";
+        geni_mask_19 1 rw "If GENI_MASK_19 is reset, C2C_Sscm_GenI_19 signal is not masked If GENI_MASK_19 is set, signal is masked.";
+        geni_mask_18 1 rw "If GENI_MASK_18 is reset, C2C_Sscm_GenI_18 signal is not masked If GENI_MASK_18 is set, signal is masked.";
+        geni_mask_17 1 rw "If GENI_MASK_17 is reset, C2C_Sscm_GenI_17 signal is not masked If GENI_MASK_17 is set, signal is masked.";
+        geni_mask_16 1 rw "If GENI_MASK_16 is reset, C2C_Sscm_GenI_16 signal is not masked If GENI_MASK_16 is set, signal is masked.";
+        geni_mask_15 1 rw "If GENI_MASK_15 is reset, C2C_Sscm_GenI_15 signal is not masked If GENI_MASK_15 is set, signal is masked.";
+        geni_mask_14 1 rw "If GENI_MASK_14 is reset, C2C_Sscm_GenI_14 signal is not masked If GENI_MASK_14 is set, signal is masked.";
+        geni_mask_13 1 rw "If GENI_MASK_13 is reset, C2C_Sscm_GenI_13 signal is not masked If GENI_MASK_13 is set, signal is masked.";
+        geni_mask_12 1 rw "If GENI_MASK_12is reset, C2C_Sscm_GenI_12 signal is not masked If GENI_MASK_12 is set, signal is masked.";
+        geni_mask_11 1 rw "If GENI_MASK_11 is reset, C2C_Sscm_GenI_11 signal is not masked If GENI_MASK_11 is set, signal is masked.";
+        geni_mask_10 1 rw "If GENI_MASK_10 is reset, C2C_Sscm_GenI_10 signal is not masked If GENI_MASK_10 is set, signal is masked.";
+        geni_mask_9 1 rw "If GENI_MASK_9 is reset, C2C_Sscm_GenI_9 signal is not masked If GENI_MASK_9 is set, signal is masked.";
+        geni_mask_8 1 rw "If GENI_MASK_8 is reset, C2C_Sscm_GenI_8 signal is not masked If GENI_MASK_8 is set, signal is masked.";
+        geni_mask_7 1 rw "If GENI_MASK_7 is reset, C2C_Sscm_GenI_7 signal is not masked If GENI_MASK_7 is set, signal is masked.";
+        geni_mask_6 1 rw "If GENI_MASK_6 is reset, C2C_Sscm_GenI_6 signal is not masked If GENI_MASK_6 is set, signal is masked.";
+        geni_mask_5 1 rw "If GENI_MASK_5 is reset, C2C_Sscm_GenI_5 signal is not masked If GENI_MASK_5 is set, signal is masked.";
+        geni_mask_4 1 rw "If GENI_MASK_4 is reset, C2C_Sscm_GenI_4 signal is not masked If GENI_MASK_4 is set, signal is masked.";
+        geni_mask_3 1 rw "If GENI_MASK_3 is reset, C2C_Sscm_GenI_3 signal is not masked If GENI_MASK_3 is set, signal is masked.";
+        geni_mask_2 1 rw "If GENI_MASK_2 is reset, C2C_Sscm_GenI_2 signal is not masked If GENI_MASK_2 is set, signal is masked.";
+        geni_mask_1 1 rw "If GENI_MASK_1 is reset, C2C_Sscm_GenI_1 signal is not masked If GENI_MASK_1 is set, signal is masked.";
+        geni_mask_0 1 rw "If GENI_MASK_0 is reset, C2C_Sscm_GenI_0 signal is not masked If GENI_MASK_0 is set, signal is masked.";
+    };
+    
+    register c2c_geno_status addr(base, 0x80) "" {
+        geno_31 1 rw "GENO_31 is the value of C2C_Sscm_GenO_31 signal.";
+        geno_30 1 rw "GENO_30 is the value of C2C_Sscm_GenO_30 signal.";
+        geno_29 1 rw "GENO_29 is the value of C2C_Sscm_GenO_29 signal.";
+        geno_28 1 rw "GENO_28 is the value of C2C_Sscm_GenO_28 signal.";
+        geno_27 1 rw "GENO_27 is the value of C2C_Sscm_GenO_27 signal.";
+        geno_26 1 rw "GENO_26 is the value of C2C_Sscm_GenO_26 signal.";
+        geno_25 1 rw "GENO_25 is the value of C2C_Sscm_GenO_25 signal.";
+        geno_24 1 rw "GENO_24 is the value of C2C_Sscm_GenO_24 signal.";
+        geno_23 1 rw "GENO_23 is the value of C2C_Sscm_GenO_23 signal.";
+        geno_22 1 rw "GENO_22 is the value of C2C_Sscm_GenO_22 signal.";
+        geno_21 1 rw "GENO_21 is the value of C2C_Sscm_GenO_21 signal.";
+        geno_20 1 rw "GENO_20 is the value of C2C_Sscm_GenO_20 signal.";
+        geno_19 1 rw "GENO_19 is the value of C2C_Sscm_GenO_19 signal.";
+        geno_18 1 rw "GENO_18 is the value of C2C_Sscm_GenO_18 signal.";
+        geno_17 1 rw "GENO_17 is the value of C2C_Sscm_GenO_17 signal.";
+        geno_16 1 rw "GENO_16 is the value of C2C_Sscm_GenO_16 signal.";
+        geno_15 1 rw "GENO_15 is the value of C2C_Sscm_GenO_15 signal.";
+        geno_14 1 rw "GENO_14 is the value of C2C_Sscm_GenO_14 signal.";
+        geno_13 1 rw "GENO_13 is the value of C2C_Sscm_GenO_13 signal.";
+        geno_12 1 rw "GENO_12 is the value of C2C_Sscm_GenO_12 signal.";
+        geno_11 1 rw "GENO_11 is the value of C2C_Sscm_GenO_11 signal.";
+        geno_10 1 rw "GENO_10 is the value of C2C_Sscm_GenO_10 signal.";
+        geno_9 1 rw "GENO_9 is the value of C2C_Sscm_GenO_9 signal.";
+        geno_8 1 rw "GENO_8 is the value of C2C_Sscm_GenO_8 signal.";
+        geno_7 1 rw "GENO_7 is the value of C2C_Sscm_GenO_7 signal.";
+        geno_6 1 rw "GENO_6 is the value of C2C_Sscm_GenO_6 signal.";
+        geno_5 1 rw "GENO_5 is the value of C2C_Sscm_GenO_5 signal.";
+        geno_4 1 rw "GENO_4 is the value of C2C_Sscm_GenO_4 signal.";
+        geno_3 1 rw "GENO_3 is the value of C2C_Sscm_GenO_3 signal.";
+        geno_2 1 rw "GENO_2 is the value of C2C_Sscm_GenO_2 signal.";
+        geno_1 1 rw "GENO_1 is the value of C2C_Sscm_GenO_1 signal.";
+        geno_0 1 rw "GENO_0 is the value of C2C_Sscm_GenO_0 signal.";
+    };
+    
+    register c2c_geno_interrupt addr(base, 0x84) "" {
+        geno_int_31 1 rw "If GENO_INT_31=0, GENO_IRQ_31=1 when GENO_31 toggles; If GENO_INT_31=1: IF GENO_LEVEL_31=0, GENO_IRQ_31 =1 when GENO_31 toggles to 0. IF GENO_LEVEL_31=1, GENO_IRQ_31 =1 when GENO_31 toggles to 1.";
+        geno_int_30 1 rw "If GENO_INT_30=0, GENO_IRQ_30=1 when GENO_30 toggles; If GENO_INT_30=1: IF GENO_LEVEL_30=0, GENO_IRQ_30 =1 when GENO_30 toggles to 0. IF GENO_LEVEL_30=1, GENO_IRQ_30 =1 when GENO_30 toggles to 1.";
+        geno_int_29 1 rw "If GENO_INT_29=0, GENO_IRQ_29=1 when GENO_29 toggles; If GENO_INT_29=1: IF GENO_LEVEL_29=0, GENO_IRQ_29 =1 when GENO_29 toggles to 0. IF GENO_LEVEL_29=1, GENO_IRQ_29 =1 when GENO_29 toggles to 1.";
+        geno_int_28 1 rw "If GENO_INT_28=0, GENO_IRQ_28=1 when GENO_28 toggles; If GENO_INT_28=1: IF GENO_LEVEL_28=0, GENO_IRQ_28 =1 when GENO_28 toggles to 0. IF GENO_LEVEL_28=1, GENO_IRQ_28 =1 when GENO_28 toggles to 1.";
+        geno_int_27 1 rw "If GENO_INT_27=0, GENO_IRQ_27=1 when GENO_27 toggles; If GENO_INT_27=1: IF GENO_LEVEL_27=0, GENO_IRQ_27 =1 when GENO_27 toggles to 0. IF GENO_LEVEL_27=1, GENO_IRQ_27 =1 when GENO_27 toggles to 1.";
+        geno_int_26 1 rw "If GENO_INT_26=0, GENO_IRQ_26=1 when GENO_26 toggles; If GENO_INT_26=1: IF GENO_LEVEL_26=0, GENO_IRQ_26 =1 when GENO_26 toggles to 0. IF GENO_LEVEL_26=1, GENO_IRQ_26 =1 when GENO_26 toggles to 1.";
+        geno_int_25 1 rw "If GENO_INT_25=0, GENO_IRQ_25=1 when GENO_25 toggles; If GENO_INT_25=1: IF GENO_LEVEL_25=0, GENO_IRQ_25 =1 when GENO_25 toggles to 0. IF GENO_LEVEL_25=1, GENO_IRQ_25 =1 when GENO_25 toggles to 1.";
+        geno_int_24 1 rw "If GENO_INT_24=0, GENO_IRQ_24=1 when GENO_24 toggles; If GENO_INT_24=1: IF GENO_LEVEL_24=0, GENO_IRQ_24 =1 when GENO_24 toggles to 0. IF GENO_LEVEL_24=1, GENO_IRQ_24 =1 when GENO_24 toggles to 1.";
+        geno_int_23 1 rw "If GENO_INT_23=0, GENO_IRQ_23=1 when GENO_23 toggles; If GENO_INT_23=1: IF GENO_LEVEL_23=0, GENO_IRQ_23 =1 when GENO_23 toggles to 0. IF GENO_LEVEL_23=1, GENO_IRQ_23 =1 when GENO_23 toggles to 1.";
+        geno_int_22 1 rw "If GENO_INT_22=0, GENO_IRQ_22=1 when GENO_22 toggles; If GENO_INT_22=1: IF GENO_LEVEL_22=0, GENO_IRQ_22 =1 when GENO_22 toggles to 0. IF GENO_LEVEL_22=1, GENO_IRQ_22 =1 when GENO_22 toggles to 1.";
+        geno_int_21 1 rw "If GENO_INT_21=0, GENO_IRQ_21=1 when GENO_21 toggles; If GENO_INT_21=1: IF GENO_LEVEL_21=0, GENO_IRQ_21 =1 when GENO_21 toggles to 0. IF GENO_LEVEL_21=1, GENO_IRQ_21 =1 when GENO_21 toggles to 1.";
+        geno_int_20 1 rw "If GENO_INT_20=0, GENO_IRQ_20=1 when GENO_20 toggles; If GENO_INT_20=1: IF GENO_LEVEL_20=0, GENO_IRQ_20 =1 when GENO_20 toggles to 0. IF GENO_LEVEL_20=1, GENO_IRQ_20 =1 when GENO_20 toggles to 1.";
+        geno_int_19 1 rw "If GENO_INT_19=0, GENO_IRQ_19=1 when GENO_19 toggles; If GENO_INT_19=1: IF GENO_LEVEL_19=0, GENO_IRQ_19 =1 when GENO_19 toggles to 0. IF GENO_LEVEL_19=1, GENO_IRQ_19 =1 when GENO_19 toggles to 1.";
+        geno_int_18 1 rw "If GENO_INT_18=0, GENO_IRQ_18=1 when GENO_18 toggles; If GENO_INT_18=1: IF GENO_LEVEL_18=0, GENO_IRQ_18 =1 when GENO_18 toggles to 0. IF GENO_LEVEL_18=1, GENO_IRQ_18 =1 when GENO_18 toggles to 1.";
+        geno_int_17 1 rw "If GENO_INT_17=0, GENO_IRQ_17=1 when GENO_17 toggles; If GENO_INT_17=1: IF GENO_LEVEL_17=0, GENO_IRQ_17 =1 when GENO_17 toggles to 0. IF GENO_LEVEL_17=1, GENO_IRQ_17 =1 when GENO_17 toggles to 1.";
+        geno_int_16 1 rw "If GENO_INT_16=0, GENO_IRQ_16=1 when GENO_16 toggles; If GENO_INT_16=1: IF GENO_LEVEL_16=0, GENO_IRQ_16 =1 when GENO_16 toggles to 0. IF GENO_LEVEL_16=1, GENO_IRQ_16 =1 when GENO_16 toggles to 1.";
+        geno_int_15 1 rw "If GENO_INT_15=0, GENO_IRQ_15=1 when GENO_15 toggles; If GENO_INT_15=1: IF GENO_LEVEL_15=0, GENO_IRQ_15 =1 when GENO_15 toggles to 0. IF GENO_LEVEL_15=1, GENO_IRQ_15 =1 when GENO_15 toggles to 1.";
+        geno_int_14 1 rw "If GENO_INT_14=0, GENO_IRQ_14=1 when GENO_14 toggles; If GENO_INT_14=1: IF GENO_LEVEL_14=0, GENO_IRQ_14 =1 when GENO_14 toggles to 0. IF GENO_LEVEL_14=1, GENO_IRQ_14 =1 when GENO_14 toggles to 1.";
+        geno_int_13 1 rw "If GENO_INT_13=0, GENO_IRQ_13=1 when GENO_13 toggles; If GENO_INT_13=1: IF GENO_LEVEL_13=0, GENO_IRQ_13 =1 when GENO_13 toggles to 0. IF GENO_LEVEL_13=1, GENO_IRQ_13 =1 when GENO_13 toggles to 1.";
+        geno_int_12 1 rw "If GENO_INT_12=0, GENO_IRQ_12=1 when GENO_12 toggles; If GENO_INT_12=1: IF GENO_LEVEL_12=0, GENO_IRQ_12 =1 when GENO_12 toggles to 0. IF GENO_LEVEL_12=1, GENO_IRQ_12 =1 when GENO_12 toggles to 1.";
+        geno_int_11 1 rw "If GENO_INT_11=0, GENO_IRQ_11=1 when GENO_11 toggles; If GENO_INT_11=1: IF GENO_LEVEL_11=0, GENO_IRQ_11 =1 when GENO_11 toggles to 0. IF GENO_LEVEL_11=1, GENO_IRQ_11 =1 when GENO_11 toggles to 1.";
+        geno_int_10 1 rw "If GENO_INT_10=0, GENO_IRQ_10=1 when GENO_10 toggles; If GENO_INT_10=1: IF GENO_LEVEL_10=0, GENO_IRQ_10 =1 when GENO_10 toggles to 0. IF GENO_LEVEL_10=1, GENO_IRQ_10 =1 when GENO_10 toggles to 1.";
+        geno_int_9 1 rw "If GENO_INT_9=0, GENO_IRQ_9=1 when GENO_9 toggles; If GENO_INT_9=1: IF GENO_LEVEL_9=0, GENO_IRQ_9 =1 when GENO_9 toggles to 0. IF GENO_LEVEL_9=1, GENO_IRQ_9 =1 when GENO_9 toggles to 1.";
+        geno_int_8 1 rw "If GENO_INT_8=0, GENO_IRQ_8=1 when GENO_8 toggles; If GENO_INT_8=1: IF GENO_LEVEL_8=0, GENO_IRQ_8 =1 when GENO_8 toggles to 0. IF GENO_LEVEL_8=1, GENO_IRQ_8 =1 when GENO_8 toggles to 1.";
+        geno_int_7 1 rw "If GENO_INT_7=0, GENO_IRQ_7=1 when GENO_7 toggles; If GENO_INT_7=1: IF GENO_LEVEL_7=0, GENO_IRQ_7 =1 when GENO_7 toggles to 0. IF GENO_LEVEL_7=1, GENO_IRQ_7 =1 when GENO_7 toggles to 1.";
+        geno_int_6 1 rw "If GENO_INT_6=0, GENO_IRQ_6=1 when GENO_6 toggles; If GENO_INT_6=1: IF GENO_LEVEL_6=0, GENO_IRQ_6 =1 when GENO_6 toggles to 0. IF GENO_LEVEL_6=1, GENO_IRQ_6 =1 when GENO_6 toggles to 1.";
+        geno_int_5 1 rw "If GENO_INT_5=0, GENO_IRQ_5=1 when GENO_5 toggles; If GENO_INT_5=1: IF GENO_LEVEL_5=0, GENO_IRQ_5 =1 when GENO_5 toggles to 0. IF GENO_LEVEL_5=1, GENO_IRQ_5 =1 when GENO_5 toggles to 1.";
+        geno_int_4 1 rw "If GENO_INT_4=0, GENO_IRQ_4=1 when GENO_4 toggles; If GENO_INT_4=1: IF GENO_LEVEL_4=0, GENO_IRQ_4 =1 when GENO_4 toggles to 0. IF GENO_LEVEL_4=1, GENO_IRQ_4 =1 when GENO_4 toggles to 1.";
+        geno_int_3 1 rw "If GENO_INT_3=0, GENO_IRQ_3=1 when GENO_3 toggles; If GENO_INT_3=1: IF GENO_LEVEL_3=0, GENO_IRQ_3 =1 when GENO_3 toggles to 0. IF GENO_LEVEL_3=1, GENO_IRQ_3 =1 when GENO_3 toggles to 1.";
+        geno_int_2 1 rw "If GENO_INT_2=0, GENO_IRQ_2=1 when GENO_2 toggles; If GENO_INT_2=1: IF GENO_LEVEL_2=0, GENO_IRQ_2 =1 when GENO_2 toggles to 0. IF GENO_LEVEL_2=1, GENO_IRQ_2 =1 when GENO_2 toggles to 1.";
+        geno_int_1 1 rw "If GENO_INT_1=0, GENO_IRQ_1=1 when GENO_1 toggles; If GENO_INT_1=1: IF GENO_LEVEL_1=0, GENO_IRQ_1 =1 when GENO_1 toggles to 0. IF GENO_LEVEL_1=1, GENO_IRQ_1 =1 when GENO_1 toggles to 1.";
+        geno_int_0 1 rw "If GENO_INT_0=0, GENO_IRQ_0=1 when GENO_0 toggles; If GENO_INT_0=1: IF GENO_LEVEL_0=0, GENO_IRQ_0 =1 when GENO_0 toggles to 0. IF GENO_LEVEL_0=1, GENO_IRQ_0 =1 when GENO_0 toggles to 1.";
+    };
+    
+    register c2c_geno_level addr(base, 0x88) "" {
+        geno_level_31 1 rw "IF GENO_LEVEL_31=0, GENO_IRQ_31 =1 when GENO_31 toggles to 0. IF GENO_LEVEL_31=1, GENO_IRQ_31 =1 when GENO_31 toggles to 1.";
+        geno_level_30 1 rw "IF GENO_LEVEL_30=0, GENO_IRQ_30 =1 when GENO_30 toggles to 0. IF GENO_LEVEL_30=1, GENO_IRQ_30 =1 when GENO_30 toggles to 1.";
+        geno_level_29 1 rw "IF GENO_LEVEL_29=0, GENO_IRQ_29 =1 when GENO_29 toggles to 0. IF GENO_LEVEL_29=1, GENO_IRQ_29 =1 when GENO_29 toggles to 1.";
+        geno_level_28 1 rw "IF GENO_LEVEL_28=0, GENO_IRQ_28 =1 when GENO_28 toggles to 0. IF GENO_LEVEL_28=1, GENO_IRQ_28 =1 when GENO_28 toggles to 1.";
+        geno_level_27 1 rw "IF GENO_LEVEL_27=0, GENO_IRQ_27 =1 when GENO_27 toggles to 0. IF GENO_LEVEL_27=1, GENO_IRQ_27 =1 when GENO_27 toggles to 1.";
+        geno_level_26 1 rw "IF GENO_LEVEL_26=0, GENO_IRQ_26 =1 when GENO_26 toggles to 0. IF GENO_LEVEL_26=1, GENO_IRQ_26 =1 when GENO_26 toggles to 1.";
+        geno_level_25 1 rw "IF GENO_LEVEL_25=0, GENO_IRQ_25 =1 when GENO_25 toggles to 0. IF GENO_LEVEL_25=1, GENO_IRQ_25 =1 when GENO_25 toggles to 1.";
+        geno_level_24 1 rw "IF GENO_LEVEL_24=0, GENO_IRQ_24 =1 when GENO_24 toggles to 0. IF GENO_LEVEL_24=1, GENO_IRQ_24 =1 when GENO_24 toggles to 1.";
+        geno_level_23 1 rw "IF GENO_LEVEL_23=0, GENO_IRQ_23 =1 when GENO_23 toggles to 0. IF GENO_LEVEL_23=1, GENO_IRQ_23 =1 when GENO_23 toggles to 1.";
+        geno_level_22 1 rw "IF GENO_LEVEL_22=0, GENO_IRQ_22 =1 when GENO_22 toggles to 0. IF GENO_LEVEL_22=1, GENO_IRQ_22 =1 when GENO_22 toggles to 1.";
+        geno_level_21 1 rw "IF GENO_LEVEL_21=0, GENO_IRQ_21 =1 when GENO_21 toggles to 0. IF GENO_LEVEL_21=1, GENO_IRQ_21 =1 when GENO_21 toggles to 1.";
+        geno_level_20 1 rw "IF GENO_LEVEL_20=0, GENO_IRQ_20 =1 when GENO_20 toggles to 0. IF GENO_LEVEL_20=1, GENO_IRQ_20 =1 when GENO_20 toggles to 1.";
+        geno_level_19 1 rw "IF GENO_LEVEL_19=0, GENO_IRQ_19 =1 when GENO_19 toggles to 0. IF GENO_LEVEL_19=1, GENO_IRQ_19 =1 when GENO_19 toggles to 1.";
+        geno_level_18 1 rw "IF GENO_LEVEL_18=0, GENO_IRQ_18 =1 when GENO_18 toggles to 0. IF GENO_LEVEL_18=1, GENO_IRQ_18 =1 when GENO_18 toggles to 1.";
+        geno_level_17 1 rw "IF GENO_LEVEL_17=0, GENO_IRQ_17 =1 when GENO_17 toggles to 0. IF GENO_LEVEL_17=1, GENO_IRQ_17 =1 when GENO_17 toggles to 1.";
+        geno_level_16 1 rw "IF GENO_LEVEL_16=0, GENO_IRQ_16 =1 when GENO_16 toggles to 0. IF GENO_LEVEL_16=1, GENO_IRQ_16 =1 when GENO_16 toggles to 1.";
+        geno_level_15 1 rw "IF GENO_LEVEL_15=0, GENO_IRQ_15 =1 when GENO_15 toggles to 0. IF GENO_LEVEL_15=1, GENO_IRQ_15 =1 when GENO_15 toggles to 1.";
+        geno_level_14 1 rw "IF GENO_LEVEL_14=0, GENO_IRQ_14 =1 when GENO_14 toggles to 0. IF GENO_LEVEL_14=1, GENO_IRQ_14 =1 when GENO_14 toggles to 1.";
+        geno_level_13 1 rw "IF GENO_LEVEL_13=0, GENO_IRQ_13 =1 when GENO_13 toggles to 0. IF GENO_LEVEL_13=1, GENO_IRQ_13 =1 when GENO_13 toggles to 1.";
+        geno_level_12 1 rw "IF GENO_LEVEL_12=0, GENO_IRQ_12 =1 when GENO_12 toggles to 0. IF GENO_LEVEL_12=1, GENO_IRQ_12 =1 when GENO_12 toggles to 1.";
+        geno_level_11 1 rw "IF GENO_LEVEL_11=0, GENO_IRQ_11 =1 when GENO_11 toggles to 0. IF GENO_LEVEL_11=1, GENO_IRQ_11 =1 when GENO_11 toggles to 1.";
+        geno_level_10 1 rw "IF GENO_LEVEL_10=0, GENO_IRQ_10 =1 when GENO_10 toggles to 0. IF GENO_LEVEL_10=1, GENO_IRQ_10 =1 when GENO_10 toggles to 1.";
+        geno_level_9 1 rw "IF GENO_LEVEL_9=0, GENO_IRQ_9 =1 when GENO_9 toggles to 0. IF GENO_LEVEL_9=1, GENO_IRQ_9 =1 when GENO_9 toggles to 1.";
+        geno_level_8 1 rw "IF GENO_LEVEL_8=0, GENO_IRQ_8 =1 when GENO_8 toggles to 0. IF GENO_LEVEL_8=1, GENO_IRQ_8 =1 when GENO_8 toggles to 1.";
+        geno_level_7 1 rw "IF GENO_LEVEL_7=0, GENO_IRQ_7 =1 when GENO_7 toggles to 0. IF GENO_LEVEL_7=1, GENO_IRQ_7 =1 when GENO_7 toggles to 1.";
+        geno_level_6 1 rw "IF GENO_LEVEL_6=0, GENO_IRQ_6 =1 when GENO_6 toggles to 0. IF GENO_LEVEL_6=1, GENO_IRQ_6 =1 when GENO_6 toggles to 1.";
+        geno_level_5 1 rw "IF GENO_LEVEL_5=0, GENO_IRQ_5 =1 when GENO_5 toggles to 0. IF GENO_LEVEL_5=1, GENO_IRQ_5 =1 when GENO_5 toggles to 1.";
+        geno_level_4 1 rw "IF GENO_LEVEL_4=0, GENO_IRQ_4 =1 when GENO_4 toggles to 0. IF GENO_LEVEL_4=1, GENO_IRQ_4 =1 when GENO_4 toggles to 1.";
+        geno_level_3 1 rw "IF GENO_LEVEL_3=0, GENO_IRQ_3 =1 when GENO_3 toggles to 0. IF GENO_LEVEL_3=1, GENO_IRQ_3 =1 when GENO_3 toggles to 1.";
+        geno_level_2 1 rw "IF GENO_LEVEL_2=0, GENO_IRQ_2 =1 when GENO_2 toggles to 0. IF GENO_LEVEL_2=1, GENO_IRQ_2 =1 when GENO_2 toggles to 1.";
+        geno_level_1 1 rw "IF GENO_LEVEL_1=0, GENO_IRQ_1 =1 when GENO_1 toggles to 0. IF GENO_LEVEL_1=1, GENO_IRQ_1 =1 when GENO_1 toggles to 1.";
+        geno_level_0 1 rw "IF GENO_LEVEL_0=0, GENO_IRQ_0 =1 when GENO_0 toggles to 0. IF GENO_LEVEL_0=1, GENO_IRQ_0 =1 when GENO_0 toggles to 1.";
+    };
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_c2c_master_niu_firewall.dev b/devices/omap/omap44xx_c2c_master_niu_firewall.dev
new file mode 100644 (file)
index 0000000..5440388
--- /dev/null
@@ -0,0 +1,151 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_c2c_master_niu_firewall.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_c2c_master_niu_firewall msbfirst ( addr base ) "" {
+    
+    
+    register error_log_k addr(base, 0x0) "Error log register for port k" {
+        _ 8 mbz;
+        blk_burst_violation 1 rw "Read 0x1: 2D burst not allowed or exceeding allowed size Write to clear ERROR_LOG_k and LOGICAL_ADDR_ERRLOG_k registers";
+        _ 1 mbz;
+        region_start_errlog 5 rw "Read: Wrong access hit this region number Write to clear ERROR_LOG_k and LOGICAL_ADDR_ERRLOG_k registers";
+        region_end_errlog 5 rw "Read: Wrong access hit this region number Write to clear ERROR_LOG_k and LOGICAL_ADDR_ERRLOG_k registers";
+        reqinfo_errlog 12 rw "Read: Error in reqinfo vector mapped as follows: [11: 8] ConnID [3:0] [7] MCMD [0] [6:4] Reserved [3] MReqDebug [2] Reserved [1] MReqSupervisor [0] MReqType Write to clear ERROR_LOG_k and LOGICAL_ADDR_ERRLOG_k registers";
+    };
+    
+    register logical_addr_errlog_k ro addr(base, 0x4) "Logical Physical Address Error log register for port k" type(uint32);
+    
+    register regupdate_control addr(base, 0x40) "Register update control register" {
+        _ 30 mbz;
+        fw_load_req 1 ro "Hadrdware set/Software clear";
+        busy_req 1 rw "Busy request";
+    };
+    
+    register start_region_i_1 addr(base, 0x90) "Start physical address of region i" {
+        start_region 20 rw "Physical target start address of firewall region i. The size of this bit field depends on target addressable space, the maximum is [31:12]. See.";
+        _ 12 mbz;
+    };
+    
+    register start_region_i_2 addr(base, 0xA0) "Start physical address of region i" {
+        start_region 20 rw "Physical target start address of firewall region i. The size of this bit field depends on target addressable space, the maximum is [31:12]. See.";
+        _ 12 mbz;
+    };
+    
+    register start_region_i_3 addr(base, 0xB0) "Start physical address of region i" {
+        start_region 20 rw "Physical target start address of firewall region i. The size of this bit field depends on target addressable space, the maximum is [31:12]. See.";
+        _ 12 mbz;
+    };
+    
+    register end_region_i_1 addr(base, 0x94) "End physical address of region i" {
+        end_region 20 rw "Physical target end address of firewall region i. The size of this bit field depends on target addressable space, the maximum is [31:12]. See.";
+        _ 9 mbz;
+        region_enable_port2 1 rw "Enable this region for port 2.";
+        region_enable_port1 1 rw "Enable this region for port 1.";
+        region_enable_port0 1 rw "Enable this region for port 0.";
+    };
+    
+    register end_region_i_2 addr(base, 0xA4) "End physical address of region i" {
+        end_region 20 rw "Physical target end address of firewall region i. The size of this bit field depends on target addressable space, the maximum is [31:12]. See.";
+        _ 9 mbz;
+        region_enable_port2 1 rw "Enable this region for port 2.";
+        region_enable_port1 1 rw "Enable this region for port 1.";
+        region_enable_port0 1 rw "Enable this region for port 0.";
+    };
+    
+    register end_region_i_3 addr(base, 0xB4) "End physical address of region i" {
+        end_region 20 rw "Physical target end address of firewall region i. The size of this bit field depends on target addressable space, the maximum is [31:12]. See.";
+        _ 9 mbz;
+        region_enable_port2 1 rw "Enable this region for port 2.";
+        region_enable_port1 1 rw "Enable this region for port 1.";
+        region_enable_port0 1 rw "Enable this region for port 0.";
+    };
+    
+    register mrm_permission_region_low_j addr(base, 0x88) "Region j Permission Low" {
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        pub_prv_debug 1 rw "Public Privilege Debug Allowed";
+        pub_usr_debug 1 rw "Public User Debug Allowed";
+        _ 1 rsvd;
+        _ 1 rsvd;
+        pub_prv_write 1 rw "Public Privilege Write Allowed";
+        pub_prv_read 1 rw "Public Privilege Read Allowed";
+        pub_prv_exe 1 rw "Public Privilege Exe Allowed";
+        pub_usr_write 1 rw "Public User Write Access Allowed";
+        pub_usr_read 1 rw "Public User Read Access Allowed";
+        pub_usr_exe 1 rw "Public User Exe Access Allowed";
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+    };
+    
+    register mrm_permission_region_high_j addr(base, 0x8C) "Region j Permission High" {
+        _ 6 rsvd;
+        w12 1 rw "Master NIU ConnID = 12 write permission";
+        r12 1 rw "Master NIU ConnID = 12 read permission";
+        _ 1 rsvd;
+        _ 1 rsvd;
+        w10 1 rw "Master NIU ConnID = 10 write permission";
+        r10 1 rw "Master NIU ConnID = 10 read permission";
+        w9 1 rw "Master NIU ConnID = 9 write permission";
+        r9 1 rw "Master NIU ConnID = 9 read permission";
+        w8 1 rw "Master NIU ConnID = 8 write permission";
+        r8 1 rw "Master NIU ConnID = 8 read permission";
+        w7 1 rw "Master NIU ConnID = 7 write permission";
+        r7 1 rw "Master NIU ConnID = 7 read permission";
+        w6 1 rw "Master NIU ConnID = 6 write permission";
+        r6 1 rw "Master NIU ConnID = 6 read permission";
+        w5 1 rw "Master NIU ConnID = 5 write permission";
+        r5 1 rw "Master NIU ConnID = 5 read permission";
+        w4 1 rw "Master NIU ConnID = 4 write permission";
+        r4 1 rw "Master NIU ConnID = 4 read permission";
+        w3 1 rw "Master NIU ConnID = 3 write permission";
+        r3 1 rw "Master NIU ConnID = 3 read permission";
+        w2 1 rw "Master NIU ConnID = 2 write permission";
+        r2 1 rw "Master NIU ConnID = 2 read permission";
+        w1 1 rw "Master NIU ConnID = 1 write permission";
+        r1 1 rw "Master NIU ConnID = 1 read permission";
+        w0 1 rw "Master NIU ConnID = 0 write permission";
+        r0 1 rw "Master NIU ConnID = 0 read permission";
+    };
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_c2c_slave_niu_firewall.dev b/devices/omap/omap44xx_c2c_slave_niu_firewall.dev
new file mode 100644 (file)
index 0000000..b2acc0f
--- /dev/null
@@ -0,0 +1,307 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_c2c_slave_niu_firewall.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_c2c_slave_niu_firewall msbfirst ( addr base ) "" {
+    
+    
+    register error_log_k addr(base, 0x0) "Error log register for port k" {
+        _ 8 mbz;
+        blk_burst_violation 1 rw "Read 0x1: 2D burst not allowed or exceeding allowed size Write to clear ERROR_LOG_k and LOGICAL_ADDR_ERRLOG_k registers";
+        _ 1 mbz;
+        region_start_errlog 5 rw "Read: Wrong access hit this region number Write to clear ERROR_LOG_k and LOGICAL_ADDR_ERRLOG_k registers";
+        region_end_errlog 5 rw "Read: Wrong access hit this region number Write to clear ERROR_LOG_k and LOGICAL_ADDR_ERRLOG_k registers";
+        reqinfo_errlog 12 rw "Read: Error in reqinfo vector mapped as follows: [11: 8] ConnID [3:0] [7] MCMD [0] [6:4] Reserved [3] MReqDebug [2] Reserved [1] MReqSupervisor [0] MReqType Write to clear ERROR_LOG_k and LOGICAL_ADDR_ERRLOG_k registers";
+    };
+    
+    register logical_addr_errlog_k ro addr(base, 0x20004) "Logical Physical Address Error log register for port k" type(uint32);
+    
+    register regupdate_control addr(base, 0x20040) "Register update control register" {
+        _ 30 mbz;
+        fw_load_req 1 ro "Hadrdware set/Software clear";
+        busy_req 1 rw "Busy request";
+    };
+    
+    register mrm_permission_region_low_j_0 addr(base, 0x20088) "Region j Permission Low" {
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        pub_prv_debug 1 rw "Public Privilege Debug Allowed";
+        pub_usr_debug 1 rw "Public User Debug Allowed";
+        _ 1 rsvd;
+        _ 1 rsvd;
+        pub_prv_write 1 rw "Public Privilege Write Allowed";
+        pub_prv_read 1 rw "Public Privilege Read Allowed";
+        pub_prv_exe 1 rw "Public Privilege Exe Allowed";
+        pub_usr_write 1 rw "Public User Write Access Allowed";
+        pub_usr_read 1 rw "Public User Read Access Allowed";
+        pub_usr_exe 1 rw "Public User Exe Access Allowed";
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+    };
+    
+    register mrm_permission_region_low_j_1 addr(base, 0x20098) "Region j Permission Low" {
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        pub_prv_debug 1 rw "Public Privilege Debug Allowed";
+        pub_usr_debug 1 rw "Public User Debug Allowed";
+        _ 1 rsvd;
+        _ 1 rsvd;
+        pub_prv_write 1 rw "Public Privilege Write Allowed";
+        pub_prv_read 1 rw "Public Privilege Read Allowed";
+        pub_prv_exe 1 rw "Public Privilege Exe Allowed";
+        pub_usr_write 1 rw "Public User Write Access Allowed";
+        pub_usr_read 1 rw "Public User Read Access Allowed";
+        pub_usr_exe 1 rw "Public User Exe Access Allowed";
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+    };
+    
+    register mrm_permission_region_low_j_2 addr(base, 0x200A8) "Region j Permission Low" {
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        pub_prv_debug 1 rw "Public Privilege Debug Allowed";
+        pub_usr_debug 1 rw "Public User Debug Allowed";
+        _ 1 rsvd;
+        _ 1 rsvd;
+        pub_prv_write 1 rw "Public Privilege Write Allowed";
+        pub_prv_read 1 rw "Public Privilege Read Allowed";
+        pub_prv_exe 1 rw "Public Privilege Exe Allowed";
+        pub_usr_write 1 rw "Public User Write Access Allowed";
+        pub_usr_read 1 rw "Public User Read Access Allowed";
+        pub_usr_exe 1 rw "Public User Exe Access Allowed";
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+    };
+    
+    register mrm_permission_region_low_j_3 addr(base, 0x200B8) "Region j Permission Low" {
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        pub_prv_debug 1 rw "Public Privilege Debug Allowed";
+        pub_usr_debug 1 rw "Public User Debug Allowed";
+        _ 1 rsvd;
+        _ 1 rsvd;
+        pub_prv_write 1 rw "Public Privilege Write Allowed";
+        pub_prv_read 1 rw "Public Privilege Read Allowed";
+        pub_prv_exe 1 rw "Public Privilege Exe Allowed";
+        pub_usr_write 1 rw "Public User Write Access Allowed";
+        pub_usr_read 1 rw "Public User Read Access Allowed";
+        pub_usr_exe 1 rw "Public User Exe Access Allowed";
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+        _ 1 rsvd;
+    };
+    
+    register mrm_permission_region_high_j_0 addr(base, 0x2008C) "Region j Permission High" {
+        _ 6 rsvd;
+        w12 1 rw "Master NIU ConnID = 12 write permission";
+        r12 1 rw "Master NIU ConnID = 12 read permission";
+        _ 1 rsvd;
+        _ 1 rsvd;
+        w10 1 rw "Master NIU ConnID = 10 write permission";
+        r10 1 rw "Master NIU ConnID = 10 read permission";
+        w9 1 rw "Master NIU ConnID = 9 write permission";
+        r9 1 rw "Master NIU ConnID = 9 read permission";
+        w8 1 rw "Master NIU ConnID = 8 write permission";
+        r8 1 rw "Master NIU ConnID = 8 read permission";
+        w7 1 rw "Master NIU ConnID = 7 write permission";
+        r7 1 rw "Master NIU ConnID = 7 read permission";
+        w6 1 rw "Master NIU ConnID = 6 write permission";
+        r6 1 rw "Master NIU ConnID = 6 read permission";
+        w5 1 rw "Master NIU ConnID = 5 write permission";
+        r5 1 rw "Master NIU ConnID = 5 read permission";
+        w4 1 rw "Master NIU ConnID = 4 write permission";
+        r4 1 rw "Master NIU ConnID = 4 read permission";
+        w3 1 rw "Master NIU ConnID = 3 write permission";
+        r3 1 rw "Master NIU ConnID = 3 read permission";
+        w2 1 rw "Master NIU ConnID = 2 write permission";
+        r2 1 rw "Master NIU ConnID = 2 read permission";
+        w1 1 rw "Master NIU ConnID = 1 write permission";
+        r1 1 rw "Master NIU ConnID = 1 read permission";
+        w0 1 rw "Master NIU ConnID = 0 write permission";
+        r0 1 rw "Master NIU ConnID = 0 read permission";
+    };
+    
+    register mrm_permission_region_high_j_1 addr(base, 0x2009C) "Region j Permission High" {
+        _ 6 rsvd;
+        w12 1 rw "Master NIU ConnID = 12 write permission";
+        r12 1 rw "Master NIU ConnID = 12 read permission";
+        _ 1 rsvd;
+        _ 1 rsvd;
+        w10 1 rw "Master NIU ConnID = 10 write permission";
+        r10 1 rw "Master NIU ConnID = 10 read permission";
+        w9 1 rw "Master NIU ConnID = 9 write permission";
+        r9 1 rw "Master NIU ConnID = 9 read permission";
+        w8 1 rw "Master NIU ConnID = 8 write permission";
+        r8 1 rw "Master NIU ConnID = 8 read permission";
+        w7 1 rw "Master NIU ConnID = 7 write permission";
+        r7 1 rw "Master NIU ConnID = 7 read permission";
+        w6 1 rw "Master NIU ConnID = 6 write permission";
+        r6 1 rw "Master NIU ConnID = 6 read permission";
+        w5 1 rw "Master NIU ConnID = 5 write permission";
+        r5 1 rw "Master NIU ConnID = 5 read permission";
+        w4 1 rw "Master NIU ConnID = 4 write permission";
+        r4 1 rw "Master NIU ConnID = 4 read permission";
+        w3 1 rw "Master NIU ConnID = 3 write permission";
+        r3 1 rw "Master NIU ConnID = 3 read permission";
+        w2 1 rw "Master NIU ConnID = 2 write permission";
+        r2 1 rw "Master NIU ConnID = 2 read permission";
+        w1 1 rw "Master NIU ConnID = 1 write permission";
+        r1 1 rw "Master NIU ConnID = 1 read permission";
+        w0 1 rw "Master NIU ConnID = 0 write permission";
+        r0 1 rw "Master NIU ConnID = 0 read permission";
+    };
+    
+    register mrm_permission_region_high_j_2 addr(base, 0x200AC) "Region j Permission High" {
+        _ 6 rsvd;
+        w12 1 rw "Master NIU ConnID = 12 write permission";
+        r12 1 rw "Master NIU ConnID = 12 read permission";
+        _ 1 rsvd;
+        _ 1 rsvd;
+        w10 1 rw "Master NIU ConnID = 10 write permission";
+        r10 1 rw "Master NIU ConnID = 10 read permission";
+        w9 1 rw "Master NIU ConnID = 9 write permission";
+        r9 1 rw "Master NIU ConnID = 9 read permission";
+        w8 1 rw "Master NIU ConnID = 8 write permission";
+        r8 1 rw "Master NIU ConnID = 8 read permission";
+        w7 1 rw "Master NIU ConnID = 7 write permission";
+        r7 1 rw "Master NIU ConnID = 7 read permission";
+        w6 1 rw "Master NIU ConnID = 6 write permission";
+        r6 1 rw "Master NIU ConnID = 6 read permission";
+        w5 1 rw "Master NIU ConnID = 5 write permission";
+        r5 1 rw "Master NIU ConnID = 5 read permission";
+        w4 1 rw "Master NIU ConnID = 4 write permission";
+        r4 1 rw "Master NIU ConnID = 4 read permission";
+        w3 1 rw "Master NIU ConnID = 3 write permission";
+        r3 1 rw "Master NIU ConnID = 3 read permission";
+        w2 1 rw "Master NIU ConnID = 2 write permission";
+        r2 1 rw "Master NIU ConnID = 2 read permission";
+        w1 1 rw "Master NIU ConnID = 1 write permission";
+        r1 1 rw "Master NIU ConnID = 1 read permission";
+        w0 1 rw "Master NIU ConnID = 0 write permission";
+        r0 1 rw "Master NIU ConnID = 0 read permission";
+    };
+    
+    register mrm_permission_region_high_j_3 addr(base, 0x200BC) "Region j Permission High" {
+        _ 6 rsvd;
+        w12 1 rw "Master NIU ConnID = 12 write permission";
+        r12 1 rw "Master NIU ConnID = 12 read permission";
+        _ 1 rsvd;
+        _ 1 rsvd;
+        w10 1 rw "Master NIU ConnID = 10 write permission";
+        r10 1 rw "Master NIU ConnID = 10 read permission";
+        w9 1 rw "Master NIU ConnID = 9 write permission";
+        r9 1 rw "Master NIU ConnID = 9 read permission";
+        w8 1 rw "Master NIU ConnID = 8 write permission";
+        r8 1 rw "Master NIU ConnID = 8 read permission";
+        w7 1 rw "Master NIU ConnID = 7 write permission";
+        r7 1 rw "Master NIU ConnID = 7 read permission";
+        w6 1 rw "Master NIU ConnID = 6 write permission";
+        r6 1 rw "Master NIU ConnID = 6 read permission";
+        w5 1 rw "Master NIU ConnID = 5 write permission";
+        r5 1 rw "Master NIU ConnID = 5 read permission";
+        w4 1 rw "Master NIU ConnID = 4 write permission";
+        r4 1 rw "Master NIU ConnID = 4 read permission";
+        w3 1 rw "Master NIU ConnID = 3 write permission";
+        r3 1 rw "Master NIU ConnID = 3 read permission";
+        w2 1 rw "Master NIU ConnID = 2 write permission";
+        r2 1 rw "Master NIU ConnID = 2 read permission";
+        w1 1 rw "Master NIU ConnID = 1 write permission";
+        r1 1 rw "Master NIU ConnID = 1 read permission";
+        w0 1 rw "Master NIU ConnID = 0 write permission";
+        r0 1 rw "Master NIU ConnID = 0 read permission";
+    };
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_cam_cm2.dev b/devices/omap/omap44xx_cam_cm2.dev
new file mode 100644 (file)
index 0000000..6a63089
--- /dev/null
@@ -0,0 +1,127 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_cam_cm2.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_cam_cm2 msbfirst ( addr base ) "" {
+    
+
+    constants clkactivity_fdif_fclk_status width(1) "" {
+        CLKACTIVITY_FDIF_FCLK_0_r = 0 "Corresponding clock is definitely gated";
+        CLKACTIVITY_FDIF_FCLK_1_r = 1 "Corresponding clock is running or gating/ungating transition is ongoing";
+    };
+
+    constants clktrctrl_status width(2) "" {
+        CLKTRCTRL_0 = 0 "NO_SLEEP: Sleep transition cannot be initiated. Wakeup transition may however occur.";
+        CLKTRCTRL_1 = 1 "SW_SLEEP: Start a software forced sleep transition on the domain.";
+        CLKTRCTRL_2 = 2 "SW_WKUP: Start a software forced wake-up transition on the domain.";
+        CLKTRCTRL_3 = 3 "HW_AUTO: Automatic transition is enabled. Sleep and wakeup transition are based upon hardware conditions.";
+    };
+    
+    register cm_cam_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." {
+        _ 21 mbz;
+        clkactivity_fdif_fclk 1 ro type(clkactivity_fdif_fclk_status) "This field indicates the state of the FDIF_FCLK clock input of the domain. [warm reset insensitive]";
+        clkactivity_cam_phy_ctrl_clk 1 ro type(clkactivity_fdif_fclk_status) "This field indicates the state of the CAM_PHY_CTRL_CLK clock input of the domain. [warm reset insensitive]";
+        clkactivity_iss_clk 1 ro type(clkactivity_fdif_fclk_status) "This field indicates the state of the ISS_CLK clock input of the domain. [warm reset insensitive]";
+        _ 6 mbz;
+        clktrctrl 2 rw type(clktrctrl_status) "Controls the clock state transition of the CAM clock domain.";
+    };
+
+    constants l3_2_statdep_status width(1) "" {
+        L3_2_STATDEP_1_r = 1 "Dependency is enabled";
+    };
+
+    constants l3_1_statdep_status width(1) "" {
+        L3_1_STATDEP_0 = 0 "Dependency is disabled";
+        L3_1_STATDEP_1 = 1 "Dependency is enabled";
+    };
+    
+    register cm_cam_staticdep addr(base, 0x4) "This register controls the static domain depedencies from CAM domain towards 'target' domains. It is relevant only for domain having system initiator(s)." {
+        _ 25 mbz;
+        l3_2_statdep 1 ro type(l3_2_statdep_status) "Static dependency towards L3_2 clock domain";
+        l3_1_statdep 1 rw type(l3_1_statdep_status) "Static dependency towards L3_1 clock domain";
+        memif_statdep 1 rw type(l3_1_statdep_status) "Static dependency towards MEMIF clock domain";
+        _ 1 mbz;
+        ivahd_statdep 1 rw type(l3_1_statdep_status) "Static dependency towards IVAHD clock domain";
+        _ 2 mbz;
+    };
+    
+    register cm_cam_dynamicdep addr(base, 0x8) "This register controls the dynamic domain depedencies from CAM domain towards 'target' domains. It is relevant only for domain having INTRCONN master port(s)." {
+        _ 25 mbz;
+        l3_2_dyndep 1 ro type(l3_1_statdep_status) "Dynamic dependency towards L3_2 clock domain";
+        _ 6 mbz;
+    };
+
+    constants stbyst_status width(1) "" {
+        STBYST_0_r = 0 "Module is functional (not in standby)";
+        STBYST_1_r = 1 "Module is in standby";
+    };
+
+    constants idlest_status width(2) "" {
+        IDLEST_0_r = 0 "Module is fully functional, including INTRCONN";
+        IDLEST_1_r = 1 "Module is performing transition: wakeup, or sleep, or sleep abortion";
+        IDLEST_2_r = 2 "Module is in idle mode (only INTRCONN part). It is functional if using separate functional clock";
+        IDLEST_3_r = 3 "Module is disabled and cannot be accessed";
+    };
+
+    constants optfclken_ctrlclk_status width(1) "" {
+        OPTFCLKEN_CTRLCLK_0 = 0 "Optional functional clock is disabled";
+        OPTFCLKEN_CTRLCLK_1 = 1 "Optional functional clock is enabled";
+    };
+
+    constants modulemode_status width(2) "" {
+        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).";
+        MODULEMODE_1_r = 1 "Reserved";
+        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.";
+        MODULEMODE_3_r = 3 "Reserved";
+    };
+    
+    register cm_cam_iss_clkctrl addr(base, 0x20) "This register manages the ISS clocks." {
+        _ 13 mbz;
+        stbyst 1 ro type(stbyst_status) "Module standby status. [warm reset insensitive]";
+        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
+        _ 7 mbz;
+        optfclken_ctrlclk 1 rw type(optfclken_ctrlclk_status) "Optional functional clock control for CAM_PHY_CTRL_GCLK 96Mhz clock.";
+        _ 6 mbz;
+        modulemode 2 rw type(modulemode_status) "Control the way mandatory clocks are managed.";
+    };
+
+    constants clksel_fclk_status width(2) "" {
+        CLKSEL_FCLK_0 = 0 "FDIF_FCLK is divide by 1 of FUNC_128_CLK, to be used for OPP100";
+        CLKSEL_FCLK_1 = 1 "FDIF_FCLK is divide by 2 of FUNC_128_CLK, to be used for OPP50";
+        CLKSEL_FCLK_2 = 2 "FDIF_FCLK is divide by 4 of FUNC_128_CLK";
+        CLKSEL_FCLK_3 = 3 "Reserved";
+    };
+    
+    register cm_cam_fdif_clkctrl addr(base, 0x28) "This register manages the FDIF clocks." {
+        _ 6 mbz;
+        clksel_fclk 2 rw type(clksel_fclk_status) "Select the ration of FDIF_FCLK to FUNC_128M_CLK";
+        _ 5 mbz;
+        stbyst 1 ro type(stbyst_status) "Module standby status. [warm reset insensitive]";
+        idlest 2 ro type(idlest_status) "Module idle status. [warm reset insensitive]";
+        _ 14 mbz;
+        modulemode 2 rw type(modulemode_status) "Control the way mandatory clocks are managed.";
+    };
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_cam_prm.dev b/devices/omap/omap44xx_cam_prm.dev
new file mode 100644 (file)
index 0000000..d1ddc7e
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_cam_prm.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_cam_prm msbfirst ( addr base ) "" {
+    
+
+    constants cam_mem_onstate_status width(2) "" {
+        CAM_MEM_ONSTATE_3_r = 3 "Memory bank is on when the domain is ON.";
+    };
+
+    constants lowpowerstatechange_status width(1) "" {
+        LOWPOWERSTATECHANGE_0 = 0 "Do not request a low power state change.";
+        LOWPOWERSTATECHANGE_1 = 1 "Request a low power state change. This bit is automatically cleared when the power state is effectively changed or when power state is ON.";
+    };
+
+    constants powerstate_status width(2) "" {
+        POWERSTATE_0 = 0 "OFF state";
+        POWERSTATE_1_r = 1 "Reserved";
+        POWERSTATE_2 = 2 "INACTIVE state";
+        POWERSTATE_3 = 3 "ON State";
+    };
+    
+    register pm_cam_pwrstctrl addr(base, 0x0) "This register controls the CAM power state to reach upon a domain sleep transition" {
+        _ 14 mbz;
+        cam_mem_onstate 2 ro type(cam_mem_onstate_status) "CAM_MEM memory state when domain is ON.";
+        _ 11 mbz;
+        lowpowerstatechange 1 rw type(lowpowerstatechange_status) "Power state change request when domain has already performed a sleep transition. Allows going into deeper low power state without waking up the power domain.";
+        _ 2 mbz;
+        powerstate 2 rw type(powerstate_status) "Power state control";
+    };
+
+    constants lastpowerstateentered_status width(2) "" {
+        LASTPOWERSTATEENTERED_3_r = 3 "Power domain was previously ON-ACTIVE";
+        LASTPOWERSTATEENTERED_2_r = 2 "Power domain was previously ON-INACTIVE";
+        LASTPOWERSTATEENTERED_1_r = 1 "Power domain was previously in RETENTION";
+        LASTPOWERSTATEENTERED_0_r = 0 "Power domain was previously OFF";
+    };
+
+    constants intransition_status width(1) "" {
+        INTRANSITION_1_r = 1 "Power domain transition is in progress.";
+        INTRANSITION_0_r = 0 "No on-going transition on power domain";
+    };
+
+    constants cam_mem_statest_status width(2) "" {
+        CAM_MEM_STATEST_3_r = 3 "Memory is ON";
+        CAM_MEM_STATEST_2_r = 2 "Reserved";
+        CAM_MEM_STATEST_1_r = 1 "Reserved";
+        CAM_MEM_STATEST_0_r = 0 "Memory is OFF";
+    };
+
+    constants logicstatest_status width(1) "" {
+        LOGICSTATEST_1_r = 1 "Logic in domain is ON";
+        LOGICSTATEST_0_r = 0 "Logic in domain is OFF";
+    };
+
+    constants powerstatest_status width(2) "" {
+        POWERSTATEST_3_r = 3 "Power domain is ON-ACTIVE";
+        POWERSTATEST_2_r = 2 "Power domain is ON-INACTIVE";
+        POWERSTATEST_1_r = 1 "Power domain is in RETENTION";
+        POWERSTATEST_0_r = 0 "Power domain is OFF";
+    };
+    
+    register pm_cam_pwrstst addr(base, 0x4) "This register provides a status on the current CAM power domain state. [warm reset insensitive]" {
+        _ 6 mbz;
+        lastpowerstateentered 2 rw type(lastpowerstateentered_status) "Last low power state entered. Set to 0x3 upon write of the same only. This register is intended for debug purpose only.";
+        _ 3 mbz;
+        intransition 1 ro type(intransition_status) "Domain transition status";
+        _ 14 mbz;
+        cam_mem_statest 2 ro type(cam_mem_statest_status) "CAM_MEM memory state status";
+        _ 1 mbz;
+        logicstatest 1 ro type(logicstatest_status) "Logic state status";
+        powerstatest 2 ro type(powerstatest_status) "Current power state status";
+    };
+
+    constants lostmem_cam_mem_status width(1) "" {
+        LOSTMEM_CAM_MEM_0 = 0 "Context has been maintained";
+        LOSTMEM_CAM_MEM_1 = 1 "Context has been lost";
+    };
+    
+    register rm_cam_iss_context addr(base, 0x24) "This register contains dedicated ISS context statuses. [warm reset insensitive]" {
+        _ 23 mbz;
+        lostmem_cam_mem 1 rw1c type(lostmem_cam_mem_status) "Specify if memory-based context in CAM_MEM memory bank has been lost due to a previous power transition or other reset source.";
+        _ 7 mbz;
+        lostcontext_dff 1 rw1c type(lostmem_cam_mem_status) "Specify if DFF-based context has been lost due to a previous power transition or other reset source. (set upon assertion of CAM_RST signal)";
+    };
+    
+    register rm_cam_fdif_context addr(base, 0x2C) "This register contains dedicated FDIF context statuses. [warm reset insensitive]" {
+        _ 23 mbz;
+        lostmem_cam_mem 1 rw1c type(lostmem_cam_mem_status) "Specify if memory-based context in CAM_MEM memory bank has been lost due to a previous power transition or other reset source.";
+        _ 7 mbz;
+        lostcontext_dff 1 rw1c type(lostmem_cam_mem_status) "Specify if DFF-based context has been lost due to a previous power transition or other reset source. (set upon assertion of CAM_RST signal)";
+    };
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_cfg_ap.dev b/devices/omap/omap44xx_cfg_ap.dev
new file mode 100644 (file)
index 0000000..386720b
--- /dev/null
@@ -0,0 +1,2163 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_cfg_ap.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_cfg_ap msbfirst ( addr base ) "" {
+    
+    
+    register l4_ap_component_l addr(base, 0x0) "Contains a component code and revision, which are used to identify the hardware of the component." {
+        code 16 ro "Interconnect code";
+        rev 16 ro "Component revision code";
+    };
+    
+    register l4_ap_component_h ro addr(base, 0x4) "Contains a component code and revision, which are used to identify the hardware of the component." type(uint32);
+    
+    register l4_ap_segment_i_l_0 addr(base, 0x100) "Define the base address of each segments" {
+        _ 8 mbz;
+        base 24 ro "The base address of the segment (with 0s from bit 0 to bit SIZE-1).";
+    };
+    
+    register l4_ap_segment_i_l_1 addr(base, 0x108) "Define the base address of each segments" {
+        _ 8 mbz;
+        base 24 ro "The base address of the segment (with 0s from bit 0 to bit SIZE-1).";
+    };
+    
+    register l4_ap_segment_i_l_2 addr(base, 0x110) "Define the base address of each segments" {
+        _ 8 mbz;
+        base 24 ro "The base address of the segment (with 0s from bit 0 to bit SIZE-1).";
+    };
+    
+    register l4_ap_segment_i_l_3 addr(base, 0x118) "Define the base address of each segments" {
+        _ 8 mbz;
+        base 24 ro "The base address of the segment (with 0s from bit 0 to bit SIZE-1).";
+    };
+    
+    register l4_ap_segment_i_l_4 addr(base, 0x120) "Define the base address of each segments" {
+        _ 8 mbz;
+        base 24 ro "The base address of the segment (with 0s from bit 0 to bit SIZE-1).";
+    };
+    
+    register l4_ap_segment_i_l_5 addr(base, 0x128) "Define the base address of each segments" {
+        _ 8 mbz;
+        base 24 ro "The base address of the segment (with 0s from bit 0 to bit SIZE-1).";
+    };
+    
+    register l4_ap_segment_i_l_6 addr(base, 0x130) "Define the base address of each segments" {
+        _ 8 mbz;
+        base 24 ro "The base address of the segment (with 0s from bit 0 to bit SIZE-1).";
+    };
+    
+    register l4_ap_segment_i_h_0 addr(base, 0x104) "Define the size of each segments" {
+        _ 27 mbz;
+        size 5 ro "Segment size is a power of 2, where 2 is the byte size of a segment (all segment registers use the same size).";
+    };
+    
+    register l4_ap_segment_i_h_1 addr(base, 0x10C) "Define the size of each segments" {
+        _ 27 mbz;
+        size 5 ro "Segment size is a power of 2, where 2 is the byte size of a segment (all segment registers use the same size).";
+    };
+    
+    register l4_ap_segment_i_h_2 addr(base, 0x114) "Define the size of each segments" {
+        _ 27 mbz;
+        size 5 ro "Segment size is a power of 2, where 2 is the byte size of a segment (all segment registers use the same size).";
+    };
+    
+    register l4_ap_segment_i_h_3 addr(base, 0x11C) "Define the size of each segments" {
+        _ 27 mbz;
+        size 5 ro "Segment size is a power of 2, where 2 is the byte size of a segment (all segment registers use the same size).";
+    };
+    
+    register l4_ap_segment_i_h_4 addr(base, 0x124) "Define the size of each segments" {
+        _ 27 mbz;
+        size 5 ro "Segment size is a power of 2, where 2 is the byte size of a segment (all segment registers use the same size).";
+    };
+    
+    register l4_ap_segment_i_h_5 addr(base, 0x12C) "Define the size of each segments" {
+        _ 27 mbz;
+        size 5 ro "Segment size is a power of 2, where 2 is the byte size of a segment (all segment registers use the same size).";
+    };
+    
+    register l4_ap_segment_i_h_6 addr(base, 0x134) "Define the size of each segments" {
+        _ 27 mbz;
+        size 5 ro "Segment size is a power of 2, where 2 is the byte size of a segment (all segment registers use the same size).";
+    };
+    
+    register l4_ap_prot_group_members_k_l_0 addr(base, 0x200) "Define ConnID bit vectors for a protection group." {
+        _ 16 mbz;
+        dmm_page_table_walk 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        perf_probe 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        _ 1 rsvd;
+        hs_usb_host_usb 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        _ 1 rsvd;
+        mmc1_mmc2 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        hsi 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        c2c 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        sgx 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        sdma 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        cam_cortexa9_mpu_ss_face_detect 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        iva_hd 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dsp_ss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dap 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        cortexm3_mpu_ss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+    };
+    
+    register l4_ap_prot_group_members_k_l_1 addr(base, 0x208) "Define ConnID bit vectors for a protection group." {
+        _ 16 mbz;
+        dmm_page_table_walk 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        perf_probe 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        _ 1 rsvd;
+        hs_usb_host_usb 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        _ 1 rsvd;
+        mmc1_mmc2 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        hsi 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        c2c 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        sgx 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        sdma 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        cam_cortexa9_mpu_ss_face_detect 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        iva_hd 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dsp_ss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dap 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        cortexm3_mpu_ss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+    };
+    
+    register l4_ap_prot_group_members_k_l_2 addr(base, 0x210) "Define ConnID bit vectors for a protection group." {
+        _ 16 mbz;
+        dmm_page_table_walk 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        perf_probe 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        _ 1 rsvd;
+        hs_usb_host_usb 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        _ 1 rsvd;
+        mmc1_mmc2 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        hsi 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        c2c 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        sgx 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        sdma 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        cam_cortexa9_mpu_ss_face_detect 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        iva_hd 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dsp_ss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dap 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        cortexm3_mpu_ss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+    };
+    
+    register l4_ap_prot_group_members_k_l_3 addr(base, 0x218) "Define ConnID bit vectors for a protection group." {
+        _ 16 mbz;
+        dmm_page_table_walk 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        perf_probe 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        _ 1 rsvd;
+        hs_usb_host_usb 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        _ 1 rsvd;
+        mmc1_mmc2 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        hsi 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        c2c 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        sgx 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        sdma 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        cam_cortexa9_mpu_ss_face_detect 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        iva_hd 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dsp_ss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dap 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        cortexm3_mpu_ss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+    };
+    
+    register l4_ap_prot_group_members_k_l_4 addr(base, 0x220) "Define ConnID bit vectors for a protection group." {
+        _ 16 mbz;
+        dmm_page_table_walk 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        perf_probe 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        _ 1 rsvd;
+        hs_usb_host_usb 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        _ 1 rsvd;
+        mmc1_mmc2 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        hsi 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        c2c 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        sgx 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        sdma 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        cam_cortexa9_mpu_ss_face_detect 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        iva_hd 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dsp_ss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dap 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        cortexm3_mpu_ss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+    };
+    
+    register l4_ap_prot_group_members_k_l_5 addr(base, 0x228) "Define ConnID bit vectors for a protection group." {
+        _ 16 mbz;
+        dmm_page_table_walk 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        perf_probe 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        _ 1 rsvd;
+        hs_usb_host_usb 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        _ 1 rsvd;
+        mmc1_mmc2 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        hsi 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        c2c 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        sgx 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        sdma 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        cam_cortexa9_mpu_ss_face_detect 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        iva_hd 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dsp_ss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dap 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        cortexm3_mpu_ss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+    };
+    
+    register l4_ap_prot_group_members_k_l_6 addr(base, 0x230) "Define ConnID bit vectors for a protection group." {
+        _ 16 mbz;
+        dmm_page_table_walk 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        perf_probe 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        _ 1 rsvd;
+        hs_usb_host_usb 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        _ 1 rsvd;
+        mmc1_mmc2 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        hsi 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        c2c 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        sgx 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        sdma 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        cam_cortexa9_mpu_ss_face_detect 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        iva_hd 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dsp_ss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dap 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        cortexm3_mpu_ss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+    };
+    
+    register l4_ap_prot_group_members_k_l_7 addr(base, 0x238) "Define ConnID bit vectors for a protection group." {
+        _ 16 mbz;
+        dmm_page_table_walk 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        perf_probe 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        _ 1 rsvd;
+        hs_usb_host_usb 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        _ 1 rsvd;
+        mmc1_mmc2 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        hsi 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        c2c 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        sgx 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        sdma 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        cam_cortexa9_mpu_ss_face_detect 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        iva_hd 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dsp_ss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        dap 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+        cortexm3_mpu_ss 1 rw "Included in the protection group k0x0: Not a member0x1: Member";
+    };
+    
+    register l4_ap_prot_group_members_k_h_0 ro addr(base, 0x204) "Define ConnID bit vectors for a protection group." type(uint32);
+    
+    register l4_ap_prot_group_members_k_h_1 ro addr(base, 0x20C) "Define ConnID bit vectors for a protection group." type(uint32);
+    
+    register l4_ap_prot_group_members_k_h_2 ro addr(base, 0x214) "Define ConnID bit vectors for a protection group." type(uint32);
+    
+    register l4_ap_prot_group_members_k_h_3 ro addr(base, 0x21C) "Define ConnID bit vectors for a protection group." type(uint32);
+    
+    register l4_ap_prot_group_members_k_h_4 ro addr(base, 0x224) "Define ConnID bit vectors for a protection group." type(uint32);
+    
+    register l4_ap_prot_group_members_k_h_5 ro addr(base, 0x22C) "Define ConnID bit vectors for a protection group." type(uint32);
+    
+    register l4_ap_prot_group_members_k_h_6 ro addr(base, 0x234) "Define ConnID bit vectors for a protection group." type(uint32);
+    
+    register l4_ap_prot_group_members_k_h_7 ro addr(base, 0x23C) "Define ConnID bit vectors for a protection group." type(uint32);
+    
+    register l4_ap_prot_group_roles_k_l_0 addr(base, 0x280) "Define MReqInfo bit vectors for a protection group." {
+        _ 16 mbz;
+        enable 16 ro "Setting of type acces allowed for the group of initiators.";
+    };
+    
+    register l4_ap_prot_group_roles_k_l_1 addr(base, 0x288) "Define MReqInfo bit vectors for a protection group." {
+        _ 16 mbz;
+        enable 16 ro "Setting of type acces allowed for the group of initiators.";
+    };
+    
+    register l4_ap_prot_group_roles_k_l_2 addr(base, 0x290) "Define MReqInfo bit vectors for a protection group." {
+        _ 16 mbz;
+        enable 16 ro "Setting of type acces allowed for the group of initiators.";
+    };
+    
+    register l4_ap_prot_group_roles_k_l_3 addr(base, 0x298) "Define MReqInfo bit vectors for a protection group." {
+        _ 16 mbz;
+        enable 16 ro "Setting of type acces allowed for the group of initiators.";
+    };
+    
+    register l4_ap_prot_group_roles_k_l_4 addr(base, 0x2A0) "Define MReqInfo bit vectors for a protection group." {
+        _ 16 mbz;
+        enable 16 ro "Setting of type acces allowed for the group of initiators.";
+    };
+    
+    register l4_ap_prot_group_roles_k_l_5 addr(base, 0x2A8) "Define MReqInfo bit vectors for a protection group." {
+        _ 16 mbz;
+        enable 16 ro "Setting of type acces allowed for the group of initiators.";
+    };
+    
+    register l4_ap_prot_group_roles_k_l_6 addr(base, 0x2B0) "Define MReqInfo bit vectors for a protection group." {
+        _ 16 mbz;
+        enable 16 ro "Setting of type acces allowed for the group of initiators.";
+    };
+    
+    register l4_ap_prot_group_roles_k_l_7 addr(base, 0x2B8) "Define MReqInfo bit vectors for a protection group." {
+        _ 16 mbz;
+        enable 16 ro "Setting of type acces allowed for the group of initiators.";
+    };
+    
+    register l4_ap_prot_group_roles_k_h_0 ro addr(base, 0x284) "Define ConnID bit vectors for a protection group." type(uint32);
+    
+    register l4_ap_prot_group_roles_k_h_1 ro addr(base, 0x28C) "Define ConnID bit vectors for a protection group." type(uint32);
+    
+    register l4_ap_prot_group_roles_k_h_2 ro addr(base, 0x294) "Define ConnID bit vectors for a protection group." type(uint32);
+    
+    register l4_ap_prot_group_roles_k_h_3 ro addr(base, 0x29C) "Define ConnID bit vectors for a protection group." type(uint32);
+    
+    register l4_ap_prot_group_roles_k_h_4 ro addr(base, 0x2A4) "Define ConnID bit vectors for a protection group." type(uint32);
+    
+    register l4_ap_prot_group_roles_k_h_5 ro addr(base, 0x2AC) "Define ConnID bit vectors for a protection group." type(uint32);
+    
+    register l4_ap_prot_group_roles_k_h_6 ro addr(base, 0x2B4) "Define ConnID bit vectors for a protection group." type(uint32);
+    
+    register l4_ap_prot_group_roles_k_h_7 ro addr(base, 0x2BC) "Define ConnID bit vectors for a protection group." type(uint32);
+    
+    register l4_ap_region_l_l_0 addr(base, 0x300) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_1 addr(base, 0x308) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_2 addr(base, 0x310) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_3 addr(base, 0x318) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_4 addr(base, 0x320) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_5 addr(base, 0x328) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_6 addr(base, 0x330) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_7 addr(base, 0x338) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_8 addr(base, 0x340) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_9 addr(base, 0x348) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_10 addr(base, 0x350) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_11 addr(base, 0x358) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_12 addr(base, 0x360) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_13 addr(base, 0x368) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_14 addr(base, 0x370) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_15 addr(base, 0x378) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_16 addr(base, 0x380) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_17 addr(base, 0x388) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_18 addr(base, 0x390) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_19 addr(base, 0x398) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_20 addr(base, 0x3A0) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_21 addr(base, 0x3A8) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_22 addr(base, 0x3B0) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_23 addr(base, 0x3B8) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_24 addr(base, 0x3C0) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_25 addr(base, 0x3C8) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_26 addr(base, 0x3D0) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_27 addr(base, 0x3D8) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_28 addr(base, 0x3E0) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_29 addr(base, 0x3E8) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_30 addr(base, 0x3F0) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_31 addr(base, 0x3F8) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_32 addr(base, 0x400) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_33 addr(base, 0x408) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_34 addr(base, 0x410) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_35 addr(base, 0x418) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_36 addr(base, 0x420) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_37 addr(base, 0x428) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_38 addr(base, 0x430) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_39 addr(base, 0x438) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_40 addr(base, 0x440) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_41 addr(base, 0x448) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_42 addr(base, 0x450) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_43 addr(base, 0x458) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_44 addr(base, 0x460) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_45 addr(base, 0x468) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_46 addr(base, 0x470) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_47 addr(base, 0x478) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_48 addr(base, 0x480) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_49 addr(base, 0x488) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_50 addr(base, 0x490) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_51 addr(base, 0x498) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_52 addr(base, 0x4A0) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_53 addr(base, 0x4A8) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_54 addr(base, 0x4B0) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_55 addr(base, 0x4B8) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_56 addr(base, 0x4C0) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_57 addr(base, 0x4C8) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_58 addr(base, 0x4D0) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_59 addr(base, 0x4D8) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_60 addr(base, 0x4E0) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_61 addr(base, 0x4E8) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_62 addr(base, 0x4F0) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_63 addr(base, 0x4F8) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_64 addr(base, 0x500) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_65 addr(base, 0x508) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_66 addr(base, 0x510) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_67 addr(base, 0x518) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_68 addr(base, 0x520) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_69 addr(base, 0x528) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_70 addr(base, 0x530) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_71 addr(base, 0x538) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_72 addr(base, 0x540) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_73 addr(base, 0x548) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_74 addr(base, 0x550) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_75 addr(base, 0x558) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_76 addr(base, 0x560) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_77 addr(base, 0x568) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_78 addr(base, 0x570) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_79 addr(base, 0x578) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_80 addr(base, 0x580) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_81 addr(base, 0x588) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_82 addr(base, 0x590) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_83 addr(base, 0x598) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_84 addr(base, 0x5A0) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_85 addr(base, 0x5A8) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_86 addr(base, 0x5B0) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_87 addr(base, 0x5B8) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_88 addr(base, 0x5C0) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_89 addr(base, 0x5C8) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_90 addr(base, 0x5D0) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_91 addr(base, 0x5D8) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_92 addr(base, 0x5E0) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_93 addr(base, 0x5E8) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_94 addr(base, 0x5F0) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_95 addr(base, 0x5F8) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_96 addr(base, 0x600) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_97 addr(base, 0x608) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_98 addr(base, 0x610) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_99 addr(base, 0x618) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_100 addr(base, 0x620) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_101 addr(base, 0x628) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_102 addr(base, 0x630) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_103 addr(base, 0x638) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_104 addr(base, 0x640) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_105 addr(base, 0x648) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_106 addr(base, 0x650) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_107 addr(base, 0x658) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_108 addr(base, 0x660) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_109 addr(base, 0x668) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_110 addr(base, 0x670) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_111 addr(base, 0x678) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_112 addr(base, 0x680) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_l_113 addr(base, 0x688) "Define the base address of the region in respect to the segment it belongs to." {
+        _ 8 mbz;
+        base 24 ro "Sets the base address of the region relative to its segment base.";
+    };
+    
+    register l4_ap_region_l_h_0 addr(base, 0x304) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_1 addr(base, 0x30C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_2 addr(base, 0x314) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_3 addr(base, 0x31C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_4 addr(base, 0x324) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_5 addr(base, 0x32C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_6 addr(base, 0x334) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_7 addr(base, 0x33C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_8 addr(base, 0x344) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_9 addr(base, 0x34C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_10 addr(base, 0x354) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_11 addr(base, 0x35C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_12 addr(base, 0x364) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_13 addr(base, 0x36C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_14 addr(base, 0x374) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_15 addr(base, 0x37C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_16 addr(base, 0x384) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_17 addr(base, 0x38C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_18 addr(base, 0x394) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_19 addr(base, 0x39C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_20 addr(base, 0x3A4) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_21 addr(base, 0x3AC) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_22 addr(base, 0x3B4) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_23 addr(base, 0x3BC) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_24 addr(base, 0x3C4) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_25 addr(base, 0x3CC) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_26 addr(base, 0x3D4) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_27 addr(base, 0x3DC) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_28 addr(base, 0x3E4) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_29 addr(base, 0x3EC) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_30 addr(base, 0x3F4) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_31 addr(base, 0x3FC) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_32 addr(base, 0x404) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_33 addr(base, 0x40C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_34 addr(base, 0x414) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_35 addr(base, 0x41C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_36 addr(base, 0x424) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_37 addr(base, 0x42C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_38 addr(base, 0x434) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_39 addr(base, 0x43C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_40 addr(base, 0x444) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_41 addr(base, 0x44C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_42 addr(base, 0x454) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_43 addr(base, 0x45C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_44 addr(base, 0x464) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_45 addr(base, 0x46C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_46 addr(base, 0x474) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_47 addr(base, 0x47C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_48 addr(base, 0x484) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_49 addr(base, 0x48C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_50 addr(base, 0x494) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_51 addr(base, 0x49C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_52 addr(base, 0x4A4) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_53 addr(base, 0x4AC) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_54 addr(base, 0x4B4) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_55 addr(base, 0x4BC) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_56 addr(base, 0x4C4) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_57 addr(base, 0x4CC) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_58 addr(base, 0x4D4) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_59 addr(base, 0x4DC) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_60 addr(base, 0x4E4) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_61 addr(base, 0x4EC) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_62 addr(base, 0x4F4) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_63 addr(base, 0x4FC) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_64 addr(base, 0x504) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_65 addr(base, 0x50C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_66 addr(base, 0x514) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_67 addr(base, 0x51C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_68 addr(base, 0x524) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_69 addr(base, 0x52C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_70 addr(base, 0x534) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_71 addr(base, 0x53C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_72 addr(base, 0x544) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_73 addr(base, 0x54C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_74 addr(base, 0x554) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_75 addr(base, 0x55C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_76 addr(base, 0x564) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_77 addr(base, 0x56C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_78 addr(base, 0x574) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_79 addr(base, 0x57C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_80 addr(base, 0x584) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_81 addr(base, 0x58C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_82 addr(base, 0x594) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_83 addr(base, 0x59C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_84 addr(base, 0x5A4) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_85 addr(base, 0x5AC) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_86 addr(base, 0x5B4) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_87 addr(base, 0x5BC) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_88 addr(base, 0x5C4) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_89 addr(base, 0x5CC) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_90 addr(base, 0x5D4) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_91 addr(base, 0x5DC) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_92 addr(base, 0x5E4) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_93 addr(base, 0x5EC) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_94 addr(base, 0x5F4) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_95 addr(base, 0x5FC) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_96 addr(base, 0x604) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_97 addr(base, 0x60C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_98 addr(base, 0x614) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_99 addr(base, 0x61C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_100 addr(base, 0x624) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_101 addr(base, 0x62C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_102 addr(base, 0x634) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_103 addr(base, 0x63C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_104 addr(base, 0x644) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_105 addr(base, 0x64C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_106 addr(base, 0x654) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_107 addr(base, 0x65C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_108 addr(base, 0x664) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_109 addr(base, 0x66C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_110 addr(base, 0x674) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_111 addr(base, 0x67C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_112 addr(base, 0x684) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+    
+    register l4_ap_region_l_h_113 addr(base, 0x68C) "Define the size, protection group and segment ID of the region" {
+        _ 4 mbz;
+        segment_id 4 ro "The segment associated to the region.";
+        _ 1 mbz;
+        prot_group_id 3 rw "The protection group associated to the region.";
+        byte_data_width_exp 3 ro "The target data byte width is 2 bytes.";
+        _ 11 mbz;
+        size 5 ro "Define the size of the region in bytes. 2 equals the region.";
+        enable 1 ro "0x0: Disable the region, no access allows0x1: Enable the region, with access as define in registers";
+    };
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_ckgen_cm1.dev b/devices/omap/omap44xx_ckgen_cm1.dev
new file mode 100644 (file)
index 0000000..af3bb9a
--- /dev/null
@@ -0,0 +1,639 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_ckgen_cm1.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_ckgen_cm1 msbfirst ( addr base ) "" {
+    
+
+    constants clksel_l4_status width(1) "" {
+        CLKSEL_L4_0 = 0 "L4_CLK is L3_CLK divided by 1";
+        CLKSEL_L4_1 = 1 "L4_CLK is L3_CLK divided by 2, to be used for OPP100 and OPP50";
+    };
+
+    constants clksel_l3_status width(1) "" {
+        CLKSEL_L3_0 = 0 "L3_CLK is CORE_CLK divided by 1";
+        CLKSEL_L3_1 = 1 "L3_CLK is CORE_CLK divided by 2, to be used for OPP100 and OPP50";
+    };
+
+    constants clksel_core_status width(1) "" {
+        CLKSEL_CORE_0 = 0 "CORE_CLK is CORE_X2_CLK divided by 1, to be used for OPP100 and OPP50";
+        CLKSEL_CORE_1 = 1 "CORE_CLK is CORE_X2_CLK divided by 2";
+    };
+    
+    register cm_clksel_core addr(base, 0x0) "CORE module clock selection." {
+        _ 23 mbz;
+        clksel_l4 1 rw type(clksel_l4_status) "Selects L4 interconnect clock (L4_clk)";
+        _ 3 mbz;
+        clksel_l3 1 rw type(clksel_l3_status) "Selects L3 interconnect clock (L3_clk)";
+        _ 3 mbz;
+        clksel_core 1 rw type(clksel_core_status) "Selects CORE_CLK configuration";
+    };
+
+    constants slimbus_clk_gate_status width(1) "" {
+        SLIMBUS_CLK_GATE_0 = 0 "The clock is gated";
+        SLIMBUS_CLK_GATE_1 = 1 "The clock is enabled";
+    };
+
+    constants clksel_opp_status width(2) "" {
+        CLKSEL_OPP_0 = 0 "ABE_CLK is divide by 1 of DPLL_ABE_X2_CLK, to be used for OPP100";
+        CLKSEL_OPP_1 = 1 "ABE_CLK is divide by 2 of DPLL_ABE_X2_CLK, to be used for OPP50";
+        CLKSEL_OPP_2 = 2 "ABE_CLK is divide by 4 of DPLL_ABE_X2_CLK";
+        CLKSEL_OPP_3 = 3 "Reserved";
+    };
+    
+    register cm_clksel_abe addr(base, 0x8) "ABE module clock selection." {
+        _ 21 mbz;
+        slimbus_clk_gate 1 rw type(slimbus_clk_gate_status) "Gating control for SLIMBUS_CLK clock tree in ABE. SLIMbus module always gets the ungated version.";
+        _ 1 mbz;
+        pad_clks_gate 1 rw type(slimbus_clk_gate_status) "Gating control for PAD_CLKS clock tree in ABE";
+        _ 6 mbz;
+        clksel_opp 2 rw type(clksel_opp_status) "Selects the OPP divider ABE domain";
+    };
+
+    constants dll_override_status width(1) "" {
+        DLL_OVERRIDE_0 = 0 "Lock and code outputs are not overriden";
+        DLL_OVERRIDE_1 = 1 "Lock output is overriden to 1 and code output is overriden with a value coming from control module.";
+    };
+    
+    register cm_dll_ctrl addr(base, 0x10) "Special register for DLL control" {
+        _ 31 mbz;
+        dll_override 1 rw type(dll_override_status) "Control if DLL lock and code outputs are overriden or not";
+    };
+
+    constants dpll_ssc_downspread_status width(1) "" {
+        DPLL_SSC_DOWNSPREAD_0 = 0 "When SSC is enabled, clock frequency is spread on both sides of the programmed frequency";
+        DPLL_SSC_DOWNSPREAD_1 = 1 "When SSC is enabled, clock frequency is spread only on the lower side of the programmed frequency";
+    };
+
+    constants dpll_ssc_ack_status width(1) "" {
+        DPLL_SSC_ACK_0_r = 0 "SSC has been turned off on PLL o/ps";
+        DPLL_SSC_ACK_1_r = 1 "SSC has been turned on on PLL o/ps";
+    };
+
+    constants dpll_ssc_en_status width(1) "" {
+        DPLL_SSC_EN_0 = 0 "SSC disabled";
+        DPLL_SSC_EN_1 = 1 "SSC enabled";
+    };
+
+    constants dpll_regm4xen_status width(1) "" {
+        DPLL_REGM4XEN_0_r = 0 "REGM4XEN mode of the DPLL is disabled";
+    };
+
+    constants dpll_lpmode_en_status width(1) "" {
+        DPLL_LPMODE_EN_0 = 0 "Low-power mode of the DPLL is disabled";
+        DPLL_LPMODE_EN_1 = 1 "Low-power mode of the DPLL is enabled";
+    };
+
+    constants dpll_driftguard_en_status width(1) "" {
+        DPLL_DRIFTGUARD_EN_0 = 0 "DRIFTGUARD feature is disabled";
+        DPLL_DRIFTGUARD_EN_1 = 1 "DRIFTGUARD feature is enabled";
+    };
+
+    constants dpll_en_status width(3) "" {
+        DPLL_EN_0 = 0 "Reserved";
+        DPLL_EN_1 = 1 "Reserved";
+        DPLL_EN_2 = 2 "Reserved";
+        DPLL_EN_3 = 3 "Reserved";
+        DPLL_EN_4 = 4 "Put the DPLL in MN bypass mode. The DPLL_MULT register bits are reset to 0 automatically by putting the DPLL in this mode.";
+        DPLL_EN_5 = 5 "Put the DPLL in Idle bypass low-power mode.";
+        DPLL_EN_6 = 6 "Put the DPLL in Idle bypass fast-relock mode.";
+        DPLL_EN_7 = 7 "Enables the DPLL in lock mode";
+    };
+    
+    register cm_clkmode_dpll_core addr(base, 0x20) "This register allows controlling the DPLL modes." {
+        _ 17 mbz;
+        dpll_ssc_downspread 1 rw type(dpll_ssc_downspread_status) "Control if only low frequency spread is required";
+        dpll_ssc_ack 1 ro type(dpll_ssc_ack_status) "Acknowledgement from the DPLL regarding start and stop of Spread Spectrum Clocking feature";
+        dpll_ssc_en 1 rw type(dpll_ssc_en_status) "Enable or disable Spread Spectrum Clocking";
+        dpll_regm4xen 1 ro type(dpll_regm4xen_status) "Enable the REGM4XEN mode of the DPLL. Please check the DPLL documentation to check when this mode can be enabled.";
+        dpll_lpmode_en 1 rw type(dpll_lpmode_en_status) "Set the DPLL in low-power mode. Check the DPLL documentation to see when this can be enabled.";
+        _ 1 mbz;
+        dpll_driftguard_en 1 rw type(dpll_driftguard_en_status) "This bit allows to enable or disable the automatic recalibration feature of the DPLL. The DPLL will automatically start a recalibration process upon assertion of the DPLL's RECAL flag if this bit is set.";
+        _ 5 mbz;
+        dpll_en 3 rw type(dpll_en_status) "DPLL control. Upon Warm Reset, the PRCM DPLL control state machine updates this register to reflect MN bypass mode.";
+    };
+
+    constants st_mn_bypass_status width(1) "" {
+        ST_MN_BYPASS_1_r = 1 "DPLL is in MN_Bypass";
+        ST_MN_BYPASS_0_r = 0 "DPLL is not in MN_Bypass";
+    };
+
+    constants st_dpll_clk_status width(1) "" {
+        ST_DPLL_CLK_1_r = 1 "DPLL is LOCKED";
+        ST_DPLL_CLK_0_r = 0 "DPLL is either in bypass mode or in stop mode.";
+    };
+    
+    register cm_idlest_dpll_core addr(base, 0x24) "This register allows monitoring DPLL activity. This register is read only and automatically updated. [warm reset insensitive]" {
+        _ 23 mbz;
+        st_mn_bypass 1 ro type(st_mn_bypass_status) "DPLL MN_BYPASS status";
+        _ 7 mbz;
+        st_dpll_clk 1 ro type(st_dpll_clk_status) "DPLL lock status";
+    };
+
+    constants auto_dpll_mode_status width(3) "" {
+        AUTO_DPLL_MODE_0 = 0 "DPLL auto control disabled";
+        AUTO_DPLL_MODE_1 = 1 "The DPLL is automatically put in low-power stop mode when its DPLL generated clocks are not required anymore. It is also restarted automatically.";
+        AUTO_DPLL_MODE_2 = 2 "The DPLL is automatically put in fast-relock stop mode when its DPLL generated clocks are not required anymore. It is also restarted automatically.";
+        AUTO_DPLL_MODE_3 = 3 "Reserved";
+        AUTO_DPLL_MODE_4 = 4 "Reserved";
+        AUTO_DPLL_MODE_5 = 5 "The DPLL is automatically put in idle bypass low-power mode when its DPLL generated clocks are not required anymore. It is also restarted automatically.";
+        AUTO_DPLL_MODE_6 = 6 "The DPLL is automatically put in idle bypass fast-relock mode when its DPLL generated clocks are not required anymore. It is also restarted automatically.";
+        AUTO_DPLL_MODE_7 = 7 "Reserved";
+    };
+    
+    register cm_autoidle_dpll_core addr(base, 0x28) "This register provides automatic control over the DPLL activity." {
+        _ 29 mbz;
+        auto_dpll_mode 3 rw type(auto_dpll_mode_status) "DPLL automatic control.";
+    };
+
+    constants dpll_clkouthif_clksel_status width(1) "" {
+        DPLL_CLKOUTHIF_CLKSEL_0 = 0 "CLKOUTHIF is generated from the DPLL oscillator (DCO)";
+        DPLL_CLKOUTHIF_CLKSEL_1 = 1 "CLKOUTHIF is generated from CLKINPHIF";
+    };
+    
+    register cm_clksel_dpll_core addr(base, 0x2C) "This register provides controls over the DPLL." {
+        _ 8 mbz;
+        dpll_byp_clksel 1 rw "Allows control of the BYPASS clock of the PLL and the associated HSDIVIDER. Same as ULOWCLKEN on DPLL. In DPLL locked mode, 0 - No impact 1 - No impact In DPLL bypass mode, 0 - CLKINP is selected as the BYPASS clock for CLKOUT/CLKOUTX2 1 - CLKINPULOW is selected as the BYPASS clock for CLKOUT/CLKOUTX2";
+        _ 2 mbz;
+        dpll_clkouthif_clksel 1 rw type(dpll_clkouthif_clksel_status) "Selects the source of the DPLL CLKOUTHIF clock. Same as CLKINPHIFSEL pin on the DPLL";
+        _ 1 mbz;
+        dpll_mult 11 rw type(dpll_en_status) "DPLL multiplier factor (2 to 2047). This register is automatically cleared to 0 when the DPLL_EN field in the *CLKMODE_DPLL* register is set to select MN bypass mode. (equal to input M of DPLL; M=2 to 2047 = DPLL multiplies by M).";
+        _ 1 mbz;
+        dpll_div 7 rw "DPLL divider factor (0 to 127) (equal to input N of DPLL; actual division factor is N+1).";
+    };
+
+    constants st_dpll_clkout_status width(1) "" {
+        ST_DPLL_CLKOUT_0_r = 0 "The clock output is gated";
+        ST_DPLL_CLKOUT_1_r = 1 "The clock output is enabled";
+    };
+
+    constants dpll_clkout_gate_ctrl_status width(1) "" {
+        DPLL_CLKOUT_GATE_CTRL_0 = 0 "Automatically gate this clock when there is no dependency for it";
+        DPLL_CLKOUT_GATE_CTRL_1 = 1 "Force this clock to stay enabled even if there is no request";
+    };
+
+    constants dpll_clkout_div_status width(5) "" {
+        DPLL_CLKOUT_DIV_0 = 0 "Reserved";
+        DPLL_CLKOUT_DIV_1 = 1 "1, to be used for OPP100";
+        DPLL_CLKOUT_DIV_2 = 2 "2, to be used for OPP50";
+    };
+    
+    register cm_div_m2_dpll_core addr(base, 0x30) "This register provides controls over the M2 divider of the DPLL." {
+        _ 22 mbz;
+        st_dpll_clkout 1 ro type(st_dpll_clkout_status) "DPLL CLKOUT status";
+        dpll_clkout_gate_ctrl 1 rw type(dpll_clkout_gate_ctrl_status) "Control gating of DPLL CLKOUT";
+        _ 2 mbz;
+        dpll_clkout_divchack 1 ro "Toggle on this status bit after changing DPLL_CLKOUT_DIV indicates that the change in divider value has taken effect";
+        dpll_clkout_div 5 rw type(dpll_clkout_div_status) "DPLL post-divider factor, M2, for internal clock generation (1 to 31); Divide value from 1 to 31.";
+    };
+
+    constants dpll_clkouthif_div_status width(5) "" {
+        DPLL_CLKOUTHIF_DIV_0 = 0 "Reserved";
+        DPLL_CLKOUTHIF_DIV_5 = 5 "5, to be used for OPP100";
+        DPLL_CLKOUTHIF_DIV_8 = 8 "8, to be used for OPP50";
+    };
+    
+    register cm_div_m3_dpll_core addr(base, 0x34) "This register provides controls over the M3 divider of the DPLL." {
+        _ 22 mbz;
+        st_dpll_clkouthif 1 ro type(st_dpll_clkout_status) "DPLL CLKOUTHIF status";
+        dpll_clkouthif_gate_ctrl 1 rw type(dpll_clkout_gate_ctrl_status) "Control gating of DPLL CLKOUTHIF";
+        _ 2 mbz;
+        dpll_clkouthif_divchack 1 ro "Toggle on this status bit after changing DPLL_CLKOUTHIF_DIV indicates that the change in divider value has taken effect";
+        dpll_clkouthif_div 5 rw type(dpll_clkouthif_div_status) "DPLL post-divider factor, M3, for internal clock generation (1 to 31). Divide value from 1 to 31";
+    };
+
+    constants hsdivider_clkout1_pwdn_status width(1) "" {
+        HSDIVIDER_CLKOUT1_PWDN_0 = 0 "Divider is powered up";
+        HSDIVIDER_CLKOUT1_PWDN_1 = 1 "Divider is powered down";
+    };
+
+    constants hsdivider_clkout1_div_status width(5) "" {
+        HSDIVIDER_CLKOUT1_DIV_0 = 0 "Reserved";
+        HSDIVIDER_CLKOUT1_DIV_8 = 8 "8, to be used for OPP100 and OPP50";
+    };
+    
+    register cm_div_m4_dpll_core addr(base, 0x38) "This register provides controls over the CLKOUT1 o/p of the HSDIVIDER." {
+        _ 19 mbz;
+        hsdivider_clkout1_pwdn 1 rw type(hsdivider_clkout1_pwdn_status) "Direct power down control for HSDIVIDER M4 divider and CLKOUT1 output. Power down should be enabled only when clock is first gated.";
+        _ 2 mbz;
+        st_hsdivider_clkout1 1 ro type(st_dpll_clkout_status) "HSDIVIDER CLKOUT1 status";
+        hsdivider_clkout1_gate_ctrl 1 rw type(dpll_clkout_gate_ctrl_status) "Control gating of HSDIVIDER CLKOUT1";
+        _ 2 mbz;
+        hsdivider_clkout1_divchack 1 ro "Toggle on this status bit after changing HSDIVIDER_CLKOUT1_DIV indicates that the change in divider value has taken effect";
+        hsdivider_clkout1_div 5 rw type(hsdivider_clkout1_div_status) "DPLL M4 post-divider factor (1 to 31).";
+    };
+
+    constants hsdivider_clkout2_div_status width(5) "" {
+        HSDIVIDER_CLKOUT2_DIV_0 = 0 "Reserved";
+        HSDIVIDER_CLKOUT2_DIV_4 = 4 "4, to be used for OPP100";
+        HSDIVIDER_CLKOUT2_DIV_8 = 8 "8, to be used for OPP50";
+    };
+    
+    register cm_div_m5_dpll_core addr(base, 0x3C) "This register provides controls over the CLKOUT2 o/p of the HSDIVIDER." {
+        _ 19 mbz;
+        hsdivider_clkout2_pwdn 1 rw type(hsdivider_clkout1_pwdn_status) "Direct power down control for HSDIVIDER M5 divider and CLKOUT2 output. Power down should be enabled only when clock is first gated.";
+        _ 2 mbz;
+        st_hsdivider_clkout2 1 ro type(st_dpll_clkout_status) "HSDIVIDER CLKOUT2 status";
+        hsdivider_clkout2_gate_ctrl 1 rw type(dpll_clkout_gate_ctrl_status) "Control gating of HSDIVIDER CLKOUT2";
+        _ 2 mbz;
+        hsdivider_clkout2_divchack 1 ro "Toggle on this status bit after changing HSDIVIDER_CLKOUT2_DIV indicates that the change in divider value has taken effect";
+        hsdivider_clkout2_div 5 rw type(hsdivider_clkout2_div_status) "DPLL M5 post-divider factor (1 to 31)";
+    };
+
+    constants hsdivider_clkout3_div_status width(5) "" {
+        HSDIVIDER_CLKOUT3_DIV_0 = 0 "Reserved";
+        HSDIVIDER_CLKOUT3_DIV_6 = 6 "6, to be used for OPP100";
+        HSDIVIDER_CLKOUT3_DIV_8 = 8 "8, to be used for OPP50";
+    };
+    
+    register cm_div_m6_dpll_core addr(base, 0x40) "This register provides controls over the CLKOUT3 o/p of the HSDIVIDER." {
+        _ 19 mbz;
+        hsdivider_clkout3_pwdn 1 rw type(hsdivider_clkout1_pwdn_status) "Direct power down control for HSDIVIDER M6 divider and CLKOUT3 output. Power down should be enabled only when clock is first gated.";
+        _ 2 mbz;
+        st_hsdivider_clkout3 1 ro type(st_dpll_clkout_status) "HSDIVIDER CLKOUT3 status";
+        hsdivider_clkout3_gate_ctrl 1 rw type(dpll_clkout_gate_ctrl_status) "Control gating of HSDIVIDER CLKOUT3";
+        _ 2 mbz;
+        hsdivider_clkout3_divchack 1 ro "Toggle on this status bit after changing HSDIVIDER_CLKOUT3_DIV indicates that the change in divider value has taken effect";
+        hsdivider_clkout3_div 5 rw type(hsdivider_clkout3_div_status) "DPLL M6 post-divider factor (1 to 31)";
+    };
+
+    constants hsdivider_clkout4_div_status width(5) "" {
+        HSDIVIDER_CLKOUT4_DIV_0 = 0 "Reserved";
+        HSDIVIDER_CLKOUT4_DIV_6 = 6 "6, to be used for OPP100 for 266.7-MHz clock output";
+        HSDIVIDER_CLKOUT4_DIV_8 = 8 "8, to be used for OPP100 for 200-MHz clock output";
+        HSDIVIDER_CLKOUT4_DIV_12 = 12 "12, to be used for OPP50 for 133.3-MHz clock output";
+        HSDIVIDER_CLKOUT4_DIV_16 = 16 "16, to be used for OPP50 for 100-MHz clock output";
+    };
+    
+    register cm_div_m7_dpll_core addr(base, 0x44) "This register provides controls over the CLKOUT4 o/p of the HSDIVIDER." {
+        _ 19 mbz;
+        hsdivider_clkout4_pwdn 1 rw type(hsdivider_clkout1_pwdn_status) "Direct power down control for HSDIVIDER M7 divider and CLKOUT4 output. Power down should be enabled only when clock is first gated.";
+        _ 2 mbz;
+        st_hsdivider_clkout4 1 ro type(st_dpll_clkout_status) "HSDIVIDER CLKOUT4 status";
+        hsdivider_clkout4_gate_ctrl 1 rw type(dpll_clkout_gate_ctrl_status) "Control gating of HSDIVIDER CLKOUT4";
+        _ 2 mbz;
+        hsdivider_clkout4_divchack 1 ro "Toggle on this status bit after changing HSDIVIDER_CLKOUT4_DIV indicates that the change in divider value has taken effect";
+        hsdivider_clkout4_div 5 rw type(hsdivider_clkout4_div_status) "DPLL M7 post-divider factor (1 to 31)";
+    };
+    
+    register cm_ssc_deltamstep_dpll_core addr(base, 0x48) "Control the DeltaMStep parameter for Spread Spectrum Clocking. [warm reset insensitive]" {
+        _ 12 mbz;
+        deltamstep 20 rw "DeltaMStep is split into fractional and integer part. For Triangular Spread Spectrum: [19:18] for integer part, [17:0] for fractional part For Square Wave Spread Spectrum [19:14] for integer part, [13:0] for fractional part";
+    };
+    
+    register cm_ssc_modfreqdiv_dpll_core addr(base, 0x4C) "Control the Modulation Frequency (Fm) for Spread Spectrum. [warm reset insensitive]" {
+        _ 21 mbz;
+        modfreqdiv_exponent 3 rw "Set the Exponent component of MODFREQDIV factor";
+        _ 1 mbz;
+        modfreqdiv_mantissa 7 rw "Set the Mantissa component of MODFREQDIV factor";
+    };
+    
+    register cm_emu_override_dpll_core addr(base, 0x50) "This register provides emulation override controls over the CORE DPLL." {
+        _ 12 mbz;
+        override_enable 1 rw type(dpll_clkout_gate_ctrl_status) "This bit allows to enable or disable the emulation override controls";
+        core_dpll_emu_mult 11 rw type(dpll_en_status) "DPLL multiplier factor (2 to 2047). (equal to input M of DPLL; M=2 to 2047 = DPLL multiplies by M)";
+        _ 1 mbz;
+        core_dpll_emu_div 7 rw "CORE DPLL override divider factor (0 to 127) (equal to input N of DPLL; actual division factor is N+1).";
+    };
+    
+    register cm_clkmode_dpll_mpu addr(base, 0x60) "This register allows controlling the DPLL modes." {
+        _ 17 mbz;
+        dpll_ssc_downspread 1 rw type(dpll_ssc_downspread_status) "Control if only low frequency spread is required";
+        dpll_ssc_ack 1 ro type(dpll_ssc_ack_status) "Acknowledgement from the DPLL regarding start and stop of Spread Spectrum Clocking feature";
+        dpll_ssc_en 1 rw type(dpll_ssc_en_status) "Enable or disable Spread Spectrum Clocking";
+        dpll_regm4xen 1 ro type(dpll_regm4xen_status) "Enable the REGM4XEN mode of the DPLL. Please check the DPLL documentation to check when this mode can be enabled.";
+        dpll_lpmode_en 1 rw type(dpll_lpmode_en_status) "Set the DPLL in low-power mode. Check the DPLL documentation to see when this can be enabled.";
+        _ 1 mbz;
+        dpll_driftguard_en 1 rw type(dpll_driftguard_en_status) "This bit allows to enable or disable the automatic recalibration feature of the DPLL. The DPLL will automatically start a recalibration process upon assertion of the DPLL's RECAL flag if this bit is set.";
+        _ 5 mbz;
+        dpll_en 3 rw type(dpll_en_status) "DPLL control. Upon Warm Reset, the PRCM DPLL control state machine updates this register to reflect MN bypass mode.";
+    };
+    
+    register cm_idlest_dpll_mpu addr(base, 0x64) "This register allows monitoring DPLL activity. This register is read only and automatically updated. [warm reset insensitive]" {
+        _ 23 mbz;
+        st_mn_bypass 1 ro type(st_mn_bypass_status) "DPLL MN_BYPASS status";
+        _ 7 mbz;
+        st_dpll_clk 1 ro type(st_dpll_clk_status) "DPLL lock status";
+    };
+    
+    register cm_autoidle_dpll_mpu addr(base, 0x68) "This register provides automatic control over the DPLL activity." {
+        _ 29 mbz;
+        auto_dpll_mode 3 rw type(auto_dpll_mode_status) "DPLL automatic control;";
+    };
+
+    constants dcc_en_status width(1) "" {
+        DCC_EN_0 = 0 "DCC disabled";
+        DCC_EN_1 = 1 "DCC enabled";
+    };
+    
+    register cm_clksel_dpll_mpu addr(base, 0x6C) "This register provides controls over the DPLL." {
+        dcc_count_max 8 rw "The value 'NbCycles' set in this field determines the duration of the clock ramp step during which the output frequency is Fdpll/(2*M2). The duration is computed as 32 x NbCycles of L4 clock cycles (100 MHz). Duration should be 2.5 ┬Ás to allow enough time for DCC to lock. This bit field is relevant only when DCC_EN = 1.";
+        dpll_byp_clksel 1 ro "Only CLKINPULOW bypass clock supported for this PLL";
+        dcc_en 1 rw type(dcc_en_status) "Enable or disable duty cycle correction. Must be enabled only for frequency 1 GHz.When enabled, the CLKOUTHIF output of the DPLL is used after duty cycle correction instead of CLKOUT. The M3 divider is hard-wired to 1 so the lock frequency Fdpll is directly provided to MPU. .";
+        _ 3 mbz;
+        dpll_mult 11 rw type(dpll_en_status) "DPLL multiplier factor (2 to 2047). This register is automatically cleared to 0 when the DPLL_EN field in the *CLKMODE_DPLL* register is set to select MN bypass mode. (equal to input M of DPLL; M=2 to 2047 = DPLL multiplies by M).";
+        _ 1 mbz;
+        dpll_div 7 rw "DPLL divider factor (0 to 127) (equal to input N of DPLL; actual division factor is N+1).";
+    };
+
+    constants dpll_clkout_div_status1 width(5) "" {
+        DPLL_CLKOUT_DIV_0_1 = 0 "Reserved";
+        DPLL_CLKOUT_DIV_1_1 = 1 "1, to be used for OPP100, OPP_TURBO, OPP_NITRO, and OPP_NITROSB";
+        DPLL_CLKOUT_DIV_2_1 = 2 "2, to be used for OPP50";
+    };
+    
+    register cm_div_m2_dpll_mpu addr(base, 0x70) "This register provides controls over the M2 divider of the DPLL." {
+        _ 22 mbz;
+        st_dpll_clkout 1 ro type(st_dpll_clkout_status) "DPLL CLKOUT status";
+        dpll_clkout_gate_ctrl 1 rw type(dpll_clkout_gate_ctrl_status) "Control gating of DPLL CLKOUT";
+        _ 2 mbz;
+        dpll_clkout_divchack 1 ro "Toggle on this status bit after changing DPLL_CLKOUT_DIV indicates that the change in divider value has taken effect";
+        dpll_clkout_div 5 rw type(dpll_clkout_div_status1) "DPLL post-divider factor, M2, for internal clock generation (1 to 31);Divide value from 1 to 31";
+    };
+    
+    register cm_ssc_deltamstep_dpll_mpu addr(base, 0x88) "Control the DeltaMStep parameter for Spread Spectrum Clocking. [warm reset insensitive]" {
+        _ 12 mbz;
+        deltamstep 20 rw "DeltaMStep is split into fractional and integer part. For Triangular Spread Spectrum: [19:18] for integer part, [17:0] for fractional part For Square Wave Spread Spectrum [19:14] for integer part, [13:0] for fractional part";
+    };
+    
+    register cm_ssc_modfreqdiv_dpll_mpu addr(base, 0x8C) "Control the Modulation Frequency (Fm) for Spread Spectrum. [warm reset insensitive]" {
+        _ 21 mbz;
+        modfreqdiv_exponent 3 rw "Set the Exponent component of MODFREQDIV factor";
+        _ 1 mbz;
+        modfreqdiv_mantissa 7 rw "Set the Mantissa component of MODFREQDIV factor";
+    };
+
+    constants clksel_status width(2) "" {
+        CLKSEL_0 = 0 "DPLL_MPU bypass clock is CORE_X2_CLK divided by 1, to be used for OPP100 and OPP50";
+        CLKSEL_1 = 1 "DPLL_MPU bypass clock is CORE_X2_CLK divided by 2";
+        CLKSEL_2 = 2 "DPLL_MPU bypass clock is CORE_X2_CLK divided by 4";
+        CLKSEL_3 = 3 "DPLL_MPU bypass clock is CORE_X2_CLK divided by 8";
+    };
+    
+    register cm_bypclk_dpll_mpu addr(base, 0x9C) "Control MPU PLL BYPASS clock. [warm reset insensitive]" {
+        _ 30 mbz;
+        clksel 2 rw type(clksel_status) "Select the DPLL MPU bypass clock";
+    };
+
+    constants dpll_en_status1 width(3) "" {
+        DPLL_EN_0_2 = 0 "Reserved";
+        DPLL_EN_1_2 = 1 "Reserved";
+        DPLL_EN_2_2 = 2 "Reserved";
+        DPLL_EN_3_2 = 3 "Reserved";
+        DPLL_EN_4_2 = 4 "Put the DPLL in MN bypass mode. The DPLL_MULT register bits are reset to 0 automatically by putting the DPLL in this mode.";
+        DPLL_EN_5_2 = 5 "Put the DPLL in idle bypass low-power mode.";
+        DPLL_EN_6_2 = 6 "Reserved";
+        DPLL_EN_7_2 = 7 "Enables the DPLL in lock mode";
+    };
+    
+    register cm_clkmode_dpll_iva addr(base, 0xA0) "This register allows controlling the DPLL modes." {
+        _ 17 mbz;
+        dpll_ssc_downspread 1 rw type(dpll_ssc_downspread_status) "Control if only low frequency spread is required";
+        dpll_ssc_ack 1 ro type(dpll_ssc_ack_status) "Acknowledgement from the DPLL regarding start and stop of Spread Spectrum Clocking feature";
+        dpll_ssc_en 1 rw type(dpll_ssc_en_status) "Enable or disable Spread Spectrum Clocking";
+        dpll_regm4xen 1 ro type(dpll_regm4xen_status) "Enable the REGM4XEN mode of the DPLL. Please check the DPLL documentation to check when this mode can be enabled.";
+        dpll_lpmode_en 1 rw type(dpll_lpmode_en_status) "Set the DPLL in low-power mode. Check the DPLL documentation to see when this can be enabled.";
+        _ 1 mbz;
+        dpll_driftguard_en 1 rw type(dpll_driftguard_en_status) "This bit allows to enable or disable the automatic recalibration feature of the DPLL. The DPLL will automatically start a recalibration process upon assertion of the DPLL's RECAL flag if this bit is set.";
+        _ 5 mbz;
+        dpll_en 3 rw type(dpll_en_status1) "DPLL control. Upon Warm Reset, the PRCM DPLL control state machine updates this register to reflect MN bypass mode.";
+    };
+    
+    register cm_idlest_dpll_iva addr(base, 0xA4) "This register allows monitoring DPLL activity. This register is read only and automatically updated. [warm reset insensitive]" {
+        _ 23 mbz;
+        st_mn_bypass 1 ro type(st_mn_bypass_status) "DPLL MN_BYPASS status";
+        _ 7 mbz;
+        st_dpll_clk 1 ro type(st_dpll_clk_status) "DPLL lock status";
+    };
+
+    constants auto_dpll_mode_status1 width(3) "" {
+        AUTO_DPLL_MODE_0_2 = 0 "DPLL auto control disabled";
+        AUTO_DPLL_MODE_1_2 = 1 "The DPLL is automatically put in low-power stop mode when its DPLL generated clocks are not required anymore. It is also restarted automatically.";
+        AUTO_DPLL_MODE_2_2 = 2 "The DPLL is automatically put in fast-relock stop mode when its DPLL generated clocks are not required anymore. It is also restarted automatically.";
+        AUTO_DPLL_MODE_3_2 = 3 "Reserved";
+        AUTO_DPLL_MODE_4_2 = 4 "Reserved";
+        AUTO_DPLL_MODE_5_2 = 5 "The DPLL is automatically put in idle bypass low-power mode when its DPLL generated clocks are not required anymore. It is also restarted automatically.";
+        AUTO_DPLL_MODE_6_2 = 6 "Reserved";
+        AUTO_DPLL_MODE_7_2 = 7 "Reserved";
+    };
+    
+    register cm_autoidle_dpll_iva addr(base, 0xA8) "This register provides automatic control over the DPLL activity." {
+        _ 29 mbz;
+        auto_dpll_mode 3 rw type(auto_dpll_mode_status1) "DPLL automatic control;";
+    };
+    
+    register cm_clksel_dpll_iva addr(base, 0xAC) "This register provides controls over the DPLL." {
+        _ 8 mbz;
+        dpll_byp_clksel 1 rw "Allows control of the BYPASS clock of the PLL and the associated HSDIVIDER. Same as ULOWCLKEN on DPLL. In DPLL locked mode, 0 - No impact 1 - No impact In DPLL bypass mode, 0 - CLKINP is selected as the BYPASS clock for CLKOUT/CLKOUTX2 1 - CLKINPULOW is selected as the BYPASS clock for CLKOUT/CLKOUTX2";
+        _ 4 mbz;
+        dpll_mult 11 rw type(dpll_en_status1) "DPLL multiplier factor (2 to 2047). This register is automatically cleared to 0 when the DPLL_EN field in the *CLKMODE_DPLL* register is set to select MN bypass mode. (equal to input M of DPLL; M=2 to 2047 = DPLL multiplies by M).";
+        _ 1 mbz;
+        dpll_div 7 rw "DPLL divider factor (0 to 127) (equal to input N of DPLL; actual division factor is N+1).";
+    };
+
+    constants hsdivider_clkout1_div_status1 width(5) "" {
+        HSDIVIDER_CLKOUT1_DIV_0_1 = 0 "Reserved";
+        HSDIVIDER_CLKOUT1_DIV_2 = 2 "2, to be used for OPP_TURBO and OPP_NITRO";
+        HSDIVIDER_CLKOUT1_DIV_4 = 4 "4, to be used for OPP100";
+        HSDIVIDER_CLKOUT1_DIV_8_1 = 8 "8, to be used for OPP50";
+    };
+    
+    register cm_div_m4_dpll_iva addr(base, 0xB8) "This register provides controls over the CLKOUT1 o/p of the HSDIVIDER." {
+        _ 19 mbz;
+        hsdivider_clkout1_pwdn 1 rw type(hsdivider_clkout1_pwdn_status) "Direct power down control for HSDIVIDER M4 divider and CLKOUT1 output. Power down should be enabled only when clock is first gated.";
+        _ 2 mbz;
+        st_hsdivider_clkout1 1 ro type(st_dpll_clkout_status) "HSDIVIDER CLKOUT1 status";
+        hsdivider_clkout1_gate_ctrl 1 rw type(dpll_clkout_gate_ctrl_status) "Control gating of HSDIVIDER CLKOUT1";
+        _ 2 mbz;
+        hsdivider_clkout1_divchack 1 ro "Toggle on this status bit after changing HSDIVIDER_CLKOUT1_DIV indicates that the change in divider value has taken effect";
+        hsdivider_clkout1_div 5 rw type(hsdivider_clkout1_div_status1) "DPLL M4 post-divider factor (1 to 31)";
+    };
+
+    constants hsdivider_clkout2_div_status1 width(5) "" {
+        HSDIVIDER_CLKOUT2_DIV_0_1 = 0 "Reserved";
+        HSDIVIDER_CLKOUT2_DIV_2 = 2 "2, to be used for OPP_NITRO";
+        HSDIVIDER_CLKOUT2_DIV_3 = 3 "3, to be used for OPP_TURBO";
+        HSDIVIDER_CLKOUT2_DIV_7 = 7 "7, to be used for OPP100";
+        HSDIVIDER_CLKOUT2_DIV_14 = 14 "14, to be used for OPP50";
+    };
+    
+    register cm_div_m5_dpll_iva addr(base, 0xBC) "This register provides controls over the CLKOUT2 o/p of the HSDIVIDER." {
+        _ 19 mbz;
+        hsdivider_clkout2_pwdn 1 rw type(hsdivider_clkout1_pwdn_status) "Direct power down control for HSDIVIDER M5 divider and CLKOUT2 output. Power down should be enabled only when clock is first gated.";
+        _ 2 mbz;
+        st_hsdivider_clkout2 1 ro type(st_dpll_clkout_status) "HSDIVIDER CLKOUT2 status";
+        hsdivider_clkout2_gate_ctrl 1 rw type(dpll_clkout_gate_ctrl_status) "Control gating of HSDIVIDER CLKOUT2";
+        _ 2 mbz;
+        hsdivider_clkout2_divchack 1 ro "Toggle on this status bit after changing HSDIVIDER_CLKOUT2_DIV indicates that the change in divider value has taken effect.";
+        hsdivider_clkout2_div 5 rw type(hsdivider_clkout2_div_status1) "DPLL M5 post-divider factor (1 to 31)";
+    };
+    
+    register cm_ssc_deltamstep_dpll_iva addr(base, 0xC8) "Control the DeltaMStep parameter for Spread Spectrum Clocking. [warm reset insensitive]" {
+        _ 12 mbz;
+        deltamstep 20 rw "DeltaMStep is split into fractional and integer part. For Triangular Spread Spectrum: [19:18] for integer part, [17:0] for fractional part For Square Wave Spread Spectrum [19:14] for integer part, [13:0] for fractional part";
+    };
+    
+    register cm_ssc_modfreqdiv_dpll_iva addr(base, 0xCC) "Control the Modulation Frequency (Fm) for Spread Spectrum. [warm reset insensitive]" {
+        _ 21 mbz;
+        modfreqdiv_exponent 3 rw "Set the Exponent component of MODFREQDIV factor";
+        _ 1 mbz;
+        modfreqdiv_mantissa 7 rw "Set the Mantissa component of MODFREQDIV factor";
+    };
+
+    constants clksel_status1 width(2) "" {
+        CLKSEL_0_1 = 0 "DPLL_IVA bypass clock is CORE_X2_CLK divided by 1, to be used for OPP100 and OPP50";
+        CLKSEL_1_1 = 1 "DPLL_IVA bypass clock is CORE_X2_CLK divided by 2";
+        CLKSEL_2_1 = 2 "DPLL_IVA bypass clock is CORE_X2_CLK divided by 4";
+        CLKSEL_3_1 = 3 "DPLL_IVA bypass clock is CORE_X2_CLK divided by 8";
+    };
+    
+    register cm_bypclk_dpll_iva addr(base, 0xDC) "Control IVA PLL BYPASS clock. [warm reset insensitive]" {
+        _ 30 mbz;
+        clksel 2 rw type(clksel_status1) "Select the DPLL IVA bypass clock";
+    };
+    
+    register cm_clkmode_dpll_abe addr(base, 0xE0) "This register allows controlling the DPLL modes." {
+        _ 17 mbz;
+        dpll_ssc_downspread 1 rw type(dpll_ssc_downspread_status) "Control if only low frequency spread is required";
+        dpll_ssc_ack 1 ro type(dpll_ssc_ack_status) "Acknowledgement from the DPLL regarding start and stop of Spread Spectrum Clocking feature";
+        dpll_ssc_en 1 rw type(dpll_ssc_en_status) "Enable or disable Spread Spectrum Clocking";
+        dpll_regm4xen 1 rw type(dpll_regm4xen_status) "Enable the REGM4XEN mode of the DPLL. Please check the DPLL documentation to check when this mode can be enabled.";
+        dpll_lpmode_en 1 rw type(dpll_lpmode_en_status) "Set the DPLL in low-power mode. Check the DPLL documentation to see when this can be enabled.";
+        _ 1 mbz;
+        dpll_driftguard_en 1 rw type(dpll_driftguard_en_status) "This bit allows to enable or disable the automatic recalibration feature of the DPLL. The DPLL will automatically start a recalibration process upon assertion of the DPLL's RECAL flag if this bit is set.";
+        _ 5 mbz;
+        dpll_en 3 rw type(dpll_en_status) "DPLL control. Upon Warm Reset, the PRCM DPLL control state machine updates this register to reflect MN bypass mode.";
+    };
+    
+    register cm_idlest_dpll_abe addr(base, 0xE4) "This register allows monitoring DPLL activity. This register is read only and automatically updated. [warm reset insensitive]" {
+        _ 23 mbz;
+        st_mn_bypass 1 ro type(st_mn_bypass_status) "DPLL MN_BYPASS status";
+        _ 7 mbz;
+        st_dpll_clk 1 ro type(st_dpll_clk_status) "DPLL lock status";
+    };
+    
+    register cm_autoidle_dpll_abe addr(base, 0xE8) "This register provides automatic control over the DPLL activity." {
+        _ 29 mbz;
+        auto_dpll_mode 3 rw type(auto_dpll_mode_status) "DPLL automatic control;";
+    };
+    
+    register cm_clksel_dpll_abe addr(base, 0xEC) "This register provides controls over the DPLL." {
+        _ 8 mbz;
+        dpll_byp_clksel 1 ro "Only CLKINPULOW bypass clock supported for this PLL";
+        _ 4 mbz;
+        dpll_mult 11 rw type(dpll_en_status1) "DPLL multiplier factor (2 to 2047). This register is automatically cleared to 0 when the DPLL_EN field in the *CLKMODE_DPLL* register is set to select MN bypass mode. (equal to input M of DPLL; M=2 to 2047 = DPLL multiplies by M).";
+        _ 1 mbz;
+        dpll_div 7 rw "DPLL divider factor (0 to 127) (equal to input N of DPLL; actual division factor is N+1).";
+    };
+
+    constants dpll_clkout_div_status2 width(5) "" {
+        DPLL_CLKOUT_DIV_0_2 = 0 "Reserved";
+        DPLL_CLKOUT_DIV_1_2 = 1 "1, to be used for OPP100 and OPP50";
+    };
+    
+    register cm_div_m2_dpll_abe addr(base, 0xF0) "This register provides controls over the M2 divider of the DPLL." {
+        _ 20 mbz;
+        st_dpll_clkoutx2 1 ro type(st_dpll_clkout_status) "DPLL CLKOUTX2 status";
+        dpll_clkoutx2_gate_ctrl 1 rw type(dpll_clkout_gate_ctrl_status) "Control gating of DPLL CLKOUTX2";
+        st_dpll_clkout 1 ro type(st_dpll_clkout_status) "DPLL CLKOUT status";
+        dpll_clkout_gate_ctrl 1 rw type(dpll_clkout_gate_ctrl_status) "Control gating of DPLL CLKOUT";
+        _ 2 mbz;
+        dpll_clkout_divchack 1 ro "Toggle on this status bit after changing DPLL_CLKOUT_DIV indicates that the change in divider value has taken effect.";
+        dpll_clkout_div 5 rw type(dpll_clkout_div_status2) "DPLL post-divider factor, M2, for internal clock generation (1 to 31). Divide value from 1 to 31";
+    };
+    
+    register cm_div_m3_dpll_abe addr(base, 0xF4) "This register provides controls over the M3 divider of the DPLL." {
+        _ 22 mbz;
+        st_dpll_clkouthif 1 ro type(st_dpll_clkout_status) "DPLL CLKOUTHIF status";
+        dpll_clkouthif_gate_ctrl 1 rw type(dpll_clkout_gate_ctrl_status) "Control gating of DPLL CLKOUTHIF";
+        _ 2 mbz;
+        dpll_clkouthif_divchack 1 ro "Toggle on this status bit after changing DPLL_CLKOUTHIF_DIV indicates that the change in divider value has taken effect.";
+        dpll_clkouthif_div 5 rw type(dpll_clkout_div_status2) "DPLL post-divider factor, M3, for internal clock generation (1 to 31). Divide value from 1 to 31";
+    };
+    
+    register cm_ssc_deltamstep_dpll_abe addr(base, 0x108) "Control the DeltaMStep parameter for Spread Spectrum Clocking. [warm reset insensitive]" {
+        _ 12 mbz;
+        deltamstep 20 rw "DeltaMStep is split into fractional and integer part. For Triangular Spread Spectrum: [19:18] for integer part, [17:0] for fractional part For Square Wave Spread Spectrum [19:14] for integer part, [13:0] for fractional part";
+    };
+    
+    register cm_ssc_modfreqdiv_dpll_abe addr(base, 0x10C) "Control the Modulation Frequency (Fm) for Spread Spectrum. [warm reset insensitive]" {
+        _ 21 mbz;
+        modfreqdiv_exponent 3 rw "Set the Exponent component of MODFREQDIV factor";
+        _ 1 mbz;
+        modfreqdiv_mantissa 7 rw "Set the Mantissa component of MODFREQDIV factor";
+    };
+
+    constants dll_reset_status width(1) "" {
+        DLL_RESET_0 = 0 "DLL is not reset during the frequency change hardware sequence";
+        DLL_RESET_1 = 1 "DLL is reset automatically during the frequency change hardware sequence";
+    };
+    
+    register cm_shadow_freq_config1 addr(base, 0x160) "Shadow register to program new DPLL configuration affecting EMIF and GPMC (L3 clock) functional frequency during DVFS. The PRCM h/w automatically applies the new configuration after EMIF/GPMC have been put in idle state." {
+        _ 16 rsvd;
+        dpll_core_m2_div 5 rw type(dpll_clkout_div_status) "Shadow register forCM_DIV_M2_DPLL_CORE.DPLL_CLKOUT_DIV. The main register is automatically loaded with the shadow register value after EMIF IDLE if the FREQ_UPDATE field is set to 1. Divide value from 1 to 31.";
+        dpll_core_dpll_en 3 rw type(dpll_en_status) "Shadow register forCM_CLKMODE_DPLL_CORE.DPLL_EN. The main register is automatically loaded with the shadow register value after EMIF IDLE if the FREQ_UPDATE field is set to 1.";
+        _ 4 mbz;
+        dll_reset 1 rw type(dll_reset_status) "Specify if DLL should be reset or not during the frequency change hardware sequence.";
+        dll_override 1 rw type(dll_override_status) "Shadow register forCM_DLL_CTRL.DLL_OVERRIDE.The main register is automatically loaded with the shadow register value after EMIF IDLE if the FREQ_UPDATE field is set to 1.";
+        _ 1 mbz;
+        freq_update 1 rw "Writing 1 indicates that a new configuration is available. It is automatically cleared by h/w after the configuration has been applied.";
+    };
+
+    constants clksel_l3_status1 width(1) "" {
+        CLKSEL_L3_0_1 = 0 "L3_CLK is CORE_CLK divided by 1";
+        CLKSEL_L3_1_1 = 1 "L3_CLK is CORE_CLK divided by 2";
+    };
+
+    constants clksel_core_status1 width(1) "" {
+        CLKSEL_CORE_0_1 = 0 "CORE_CLK is CORE_X2_CLK divided by 1";
+        CLKSEL_CORE_1_1 = 1 "CORE_CLK is CORE_X2_CLK divided by 2";
+    };
+
+    constants gpmc_freq_update_status width(1) "" {
+        GPMC_FREQ_UPDATE_0 = 0 "GPMC is not put automatically into idle during frequency change operation.";
+        GPMC_FREQ_UPDATE_1 = 1 "GPMC is put automatically into idle during frequency change operation.";
+    };
+    
+    register cm_shadow_freq_config2 addr(base, 0x164) "Shadow register to program new DPLL configuration affecting GPMC (L3 clock) functional frequency during DVFS. The PRCM h/w automatically applies the new configuration after EMIF/GPMC have been put in idle state." {
+        _ 24 mbz;
+        dpll_core_m5_div 5 rw type(dpll_clkout_div_status) "Shadow register forCM_DIV_M5_DPLL_CORE.HSDIVIDER_CLKOUT2_DIV. The main register is automatically loaded with the shadow register value after GPMC IDLE if the CM_SHADOW_FREQ_CONFIG1.FREQ_UPDATE field is set to 1 and GPMC_FREQ_UPDATE is set to 1. Divide value from 1 to 31.";
+        clksel_l3 1 rw type(clksel_l3_status1) "Shadow register forCM_CLKSEL_CORE.CLKSEL_L3. The main register is automatically loaded with the shadow register value after GPMC IDLE if the CM_SHADOW_FREQ_CONFIG1.FREQ_UPDATE field is set to 1 and GPMC_FREQ_UPDATE is set to 1.";
+        clksel_core 1 rw type(clksel_core_status1) "Shadow register forCM_CLKSEL_CORE.CLKSEL_CORE. The main register is automatically loaded with the shadow register value after GPMC IDLE if the CM_SHADOW_FREQ_CONFIG1.FREQ_UPDATE field is set to 1 and GPMC_FREQ_UPDATE is set to 1.";
+        gpmc_freq_update 1 rw type(gpmc_freq_update_status) "Controls whether or not GPMC has to be put automatically into idle during the frequency change operation.";
+    };
+    
+    register cm_dyn_dep_prescal addr(base, 0x170) "Control the time unit of the sliding window for dynamic dependencies (auto-sleep feature)." {
+        _ 26 mbz;
+        prescal 6 rw "Time unit is equal to (PRESCAL + 1) L4 clock cycles.";
+    };
+    
+    register cm_restore_st addr(base, 0x180) "Automatic restore status. This register is used by the system DMA to write a predefined value at the end of end automatic restore phase. [warm reset insensitive]" {
+        _ 29 mbz;
+        phase2b_completed 1 rw "Indicates if restore phase 2b is completed. Must be cleared by software before going to device OFF mode.";
+        phase2a_completed 1 rw "Indicates if restore phase 2a is completed. Must be cleared by software before going to device OFF mode.";
+        phase1_completed 1 rw "Indicates if restore phase 1 is completed. Must be cleared by software before going to device OFF mode.";
+    };
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_ckgen_cm2.dev b/devices/omap/omap44xx_ckgen_cm2.dev
new file mode 100644 (file)
index 0000000..cf0ad46
--- /dev/null
@@ -0,0 +1,420 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_ckgen_cm2.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_ckgen_cm2 msbfirst ( addr base ) "" {
+    
+
+    constants clksel_status width(1) "" {
+        CLKSEL_0 = 0 "Root clock is sourced from CORE_CLK";
+        CLKSEL_1 = 1 "Functional clock is sourced from DPLL_PER";
+    };
+    
+    register cm_clksel_mpu_m3_iss_root addr(base, 0x0) "MPU_A3/ISS root clock selection (MPU_A3_ISS_CLK)." {
+        _ 31 mbz;
+        clksel 1 rw type(clksel_status) "Select the source for the root clock of MPU_A3/ISS";
+    };
+
+    constants clksel_status1 width(1) "" {
+        CLKSEL_0_1 = 0 "Set the divider in bypass mode to support bypass clock from DPLL_USB to pass through without division.";
+        CLKSEL_1_1 = 1 "Set the divider to divide the DPLL o/p (480 MHz typical) by 8 to generate 60-MHz clock, to be used for OPP100 and OPP50.";
+    };
+    
+    register cm_clksel_usb_60mhz addr(base, 0x4) "Selects the configuration of the divider generating 60MHz clock for USB from the DPLL_USB o/p." {
+        _ 31 mbz;
+        clksel 1 rw type(clksel_status1) "Select the configuration of the divider";
+    };
+
+    constants scale_fclk_status width(1) "" {
+        SCALE_FCLK_0 = 0 "The functional clocks run at their default frequencies";
+        SCALE_FCLK_1 = 1 "The functional clocks run at half their typical frequencies";
+    };
+    
+    register cm_scale_fclk addr(base, 0x8) "This register can be used to scale PER_ABE_NC_FCLK, 96M_FCLK, 48M_FCLK, and 64M_FCLK to half their respective typical frequencies." {
+        _ 31 mbz;
+        scale_fclk 1 rw type(scale_fclk_status) "Enable or disable the functional clock scaling.";
+    };
+    
+    register cm_core_dvfs_perf1 addr(base, 0x10) "This register allows to system master #1 to specify which level of performance is required from CORE domain (mainly external memory throughput?)" {
+        _ 24 mbz;
+        perf_req 8 rw "Current performance request. Unit to be defined by user.";
+    };
+    
+    register cm_core_dvfs_perf2 addr(base, 0x14) "This register allows to system master #2 to specify which level of performance is require from CORE domain (mainly external memory throughput?)" {
+        _ 24 mbz;
+        perf_req 8 rw "Current performance request. Unit to be defined by user.";
+    };
+    
+    register cm_core_dvfs_perf3 addr(base, 0x18) "This register allows to system master #3 to specify which level of performance is require from CORE domain (mainly external memory throughput?)" {
+        _ 24 mbz;
+        perf_req 8 rw "Current performance request. Unit to be defined by user.";
+    };
+    
+    register cm_core_dvfs_perf4 addr(base, 0x1C) "This register allows to system master #4 to specify which level of performance is require from CORE domain (mainly external memory throughput?)" {
+        _ 24 mbz;
+        perf_req 8 rw "Current performance request. Unit to be defined by user.";
+    };
+    
+    register cm_core_dvfs_current addr(base, 0x24) "This register hold the current level of performance achievable by the CORE domain, according to the current OPP setting" {
+        _ 24 mbz;
+        perf_current 8 rw "Current achievable performance level. Unit to be defined by user.";
+    };
+    
+    register cm_iva_dvfs_perf_dsp addr(base, 0x28) "This register allows to specify which level of performance is required from IVA domain for DSP to operate." {
+        _ 24 mbz;
+        perf_req 8 rw "Current performance request. Unit to be defined by user.";
+    };
+    
+    register cm_iva_dvfs_perf_ivahd addr(base, 0x2C) "This register allows to specify which level of performance is required from IVA domain for IVAHD to operate." {
+        _ 24 mbz;
+        perf_req 8 rw "Current performance request. Unit to be defined by user.";
+    };
+    
+    register cm_iva_dvfs_perf_abe addr(base, 0x30) "This register allows to specify which level of performance is required from IVA domain for ABE to operate." {
+        _ 24 mbz;
+        perf_req 8 rw "Current performance request. Unit to be defined by user.";
+    };
+    
+    register cm_iva_dvfs_current addr(base, 0x38) "This register hold the current level of performance achievable by the IVA domain, according to the current OPP setting" {
+        _ 24 mbz;
+        perf_current 8 rw "Current achievable performance level. Unit to be defined by user.";
+    };
+
+    constants dpll_ssc_downspread_status width(1) "" {
+        DPLL_SSC_DOWNSPREAD_0 = 0 "When SSC is enabled, clock frequency is spread on both sides of the programmed frequency";
+        DPLL_SSC_DOWNSPREAD_1 = 1 "When SSC is enabled, clock frequency is spread only on the lower side of the programmed frequency";
+    };
+
+    constants dpll_ssc_ack_status width(1) "" {
+        DPLL_SSC_ACK_0_r = 0 "SSC has been turned off on PLL o/ps";
+        DPLL_SSC_ACK_1_r = 1 "SSC has been turned on on PLL o/ps";
+    };
+
+    constants dpll_ssc_en_status width(1) "" {
+        DPLL_SSC_EN_0 = 0 "SSC disabled";
+        DPLL_SSC_EN_1 = 1 "SSC enabled";
+    };
+
+    constants dpll_regm4xen_status width(1) "" {
+        DPLL_REGM4XEN_0_r = 0 "REGM4XEN mode of the DPLL is disabled";
+    };
+
+    constants dpll_lpmode_en_status width(1) "" {
+        DPLL_LPMODE_EN_0 = 0 "Low-power mode of the DPLL is disabled";
+        DPLL_LPMODE_EN_1 = 1 "Low-power mode of the DPLL is enabled";
+    };
+
+    constants dpll_driftguard_en_status width(1) "" {
+        DPLL_DRIFTGUARD_EN_0 = 0 "DRIFTGUARD feature is disabled";
+        DPLL_DRIFTGUARD_EN_1 = 1 "DRIFTGUARD feature is enabled";
+    };
+
+    constants dpll_en_status width(3) "" {
+        DPLL_EN_0 = 0 "Reserved";
+        DPLL_EN_1 = 1 "Reserved";
+        DPLL_EN_2 = 2 "Reserved";
+        DPLL_EN_3 = 3 "Reserved";
+        DPLL_EN_4 = 4 "Put the DPLL in MN bypass mode. The DPLL_MULT register bits are reset to 0 automatically by putting the DPLL in this mode.";
+        DPLL_EN_5 = 5 "Put the DPLL in idle bypass low-power mode.";
+        DPLL_EN_6 = 6 "Put the DPLL in idle bypass fast-relock mode.";
+        DPLL_EN_7 = 7 "Enables the DPLL in lock mode";
+    };
+    
+    register cm_clkmode_dpll_per addr(base, 0x40) "This register allows controlling the DPLL modes." {
+        _ 17 mbz;
+        dpll_ssc_downspread 1 rw type(dpll_ssc_downspread_status) "Control if only low frequency spread is required";
+        dpll_ssc_ack 1 ro type(dpll_ssc_ack_status) "Acknowledgement from the DPLL regarding start and stop of Spread Spectrum Clocking feature";
+        dpll_ssc_en 1 rw type(dpll_ssc_en_status) "Enable or disable Spread Spectrum Clocking";
+        dpll_regm4xen 1 ro type(dpll_regm4xen_status) "Enable the REGM4XEN mode of the DPLL. Please check the DPLL documentation to check when this mode can be enabled.";
+        dpll_lpmode_en 1 rw type(dpll_lpmode_en_status) "Set the DPLL in low-power mode. Check the DPLL documentation to see when this can be enabled.";
+        _ 1 mbz;
+        dpll_driftguard_en 1 rw type(dpll_driftguard_en_status) "This bit allows to enable or disable the automatic recalibration feature of the DPLL. The DPLL will automatically start a recalibration process upon assertion of the DPLL's RECAL flag if this bit is set.";
+        _ 5 mbz;
+        dpll_en 3 rw type(dpll_en_status) "DPLL control. Upon Warm Reset, the PRCM DPLL control state machine updates this register to reflect MN bypass mode.";
+    };
+
+    constants st_mn_bypass_status width(1) "" {
+        ST_MN_BYPASS_1_r = 1 "DPLL is in MN_Bypass";
+        ST_MN_BYPASS_0_r = 0 "DPLL is not in MN_Bypass";
+    };
+
+    constants st_dpll_clk_status width(1) "" {
+        ST_DPLL_CLK_1_r = 1 "DPLL is LOCKED";
+        ST_DPLL_CLK_0_r = 0 "DPLL is either in bypass mode or in stop mode.";
+    };
+    
+    register cm_idlest_dpll_per addr(base, 0x44) "This register allows monitoring DPLL activity. This register is read only and automatically updated. [warm reset insensitive]" {
+        _ 23 mbz;
+        st_mn_bypass 1 ro type(st_mn_bypass_status) "DPLL MN_BYPASS status";
+        _ 7 mbz;
+        st_dpll_clk 1 ro type(st_dpll_clk_status) "DPLL lock status";
+    };
+
+    constants auto_dpll_mode_status width(3) "" {
+        AUTO_DPLL_MODE_0 = 0 "DPLL auto control disabled";
+        AUTO_DPLL_MODE_1 = 1 "The DPLL is automatically put in low-power stop mode when its DPLL generated clocks are not required anymore. It is also restarted automatically.";
+        AUTO_DPLL_MODE_2 = 2 "The DPLL is automatically put in fast-relock stop mode when its DPLL generated clocks are not required anymore. It is also restarted automatically.";
+        AUTO_DPLL_MODE_3 = 3 "Reserved";
+        AUTO_DPLL_MODE_4 = 4 "Reserved";
+        AUTO_DPLL_MODE_5 = 5 "The DPLL is automatically put in idle bypass low-power mode when its DPLL generated clocks are not required anymore. It is also restarted automatically.";
+        AUTO_DPLL_MODE_6 = 6 "The DPLL is automatically put in idle bypass fast-relock mode when its DPLL generated clocks are not required anymore. It is also restarted automatically.";
+        AUTO_DPLL_MODE_7 = 7 "Reserved";
+    };
+    
+    register cm_autoidle_dpll_per addr(base, 0x48) "This register provides automatic control over the DPLL activity." {
+        _ 29 mbz;
+        auto_dpll_mode 3 rw type(auto_dpll_mode_status) "DPLL automatic control;";
+    };
+    
+    register cm_clksel_dpll_per addr(base, 0x4C) "This register provides controls over the DPLL." {
+        _ 8 mbz;
+        dpll_byp_clksel 1 rw "Allows control of the BYPASS clock of the PLL and the associated HSDIVIDER. Same as ULOWCLKEN on DPLL. In DPLL Locked mode, 0 - No impact 1 - No impact In DPLL Bypass mode, 0 - CLKINP is selected as the BYPASS clock for CLKOUT/CLKOUTX2 1 - CLKINPULOW is selected as the BYPASS clock for CLKOUT/CLKOUTX2";
+        _ 4 mbz;
+        dpll_mult 11 rw type(dpll_en_status) "DPLL multiplier factor (2 to 2047). This register is automatically cleared to 0 when the DPLL_EN field in the *CLKMODE_DPLL* register is set to select MN bypass mode. (equal to input M of DPLL; M=2 to 2047 = DPLL multiplies by M).";
+        _ 1 mbz;
+        dpll_div 7 rw "DPLL divider factor (0 to 127) (equal to input N of DPLL; actual division factor is N+1).";
+    };
+
+    constants st_dpll_clkoutx2_status width(1) "" {
+        ST_DPLL_CLKOUTX2_0_r = 0 "The clock output is gated";
+        ST_DPLL_CLKOUTX2_1_r = 1 "The clock output is enabled";
+    };
+
+    constants dpll_clkout_div_status width(5) "" {
+        DPLL_CLKOUT_DIV_0 = 0 "Reserved";
+        DPLL_CLKOUT_DIV_4 = 4 "4, to be used for OPP100 and OPP50 (when DPLL_PER is locked at 768 MHz)";
+        DPLL_CLKOUT_DIV_8 = 8 "8, to be used for OPP100 and OPP50 (when DPLL_PER is locked at 1536 MHz)";
+    };
+    
+    register cm_div_m2_dpll_per addr(base, 0x50) "This register provides controls over the M2 divider of the DPLL." {
+        _ 20 mbz;
+        st_dpll_clkoutx2 1 ro type(st_dpll_clkoutx2_status) "DPLL CLKOUTX2 status";
+        dpll_clkoutx2_gate_ctrl 1 rw type(scale_fclk_status) "Control gating of DPLL CLKOUTX2";
+        st_dpll_clkout 1 ro type(st_dpll_clkoutx2_status) "DPLL CLKOUT status";
+        dpll_clkout_gate_ctrl 1 rw type(scale_fclk_status) "Control gating of DPLL CLKOUT";
+        _ 2 mbz;
+        dpll_clkout_divchack 1 ro "Toggle on this status bit after changing DPLL_CLKOUT_DIV indicates that the change in divider value has taken effect.";
+        dpll_clkout_div 5 rw type(dpll_clkout_div_status) "DPLL post-divider factor, M2, for internal clock generation (1 to 31)";
+    };
+
+    constants st_dpll_clkouthif_status width(1) "" {
+        ST_DPLL_CLKOUTHIF_0_r = 0 "The clock output is gated.";
+        ST_DPLL_CLKOUTHIF_1_r = 1 "The clock output is enabled.";
+    };
+
+    constants dpll_clkouthif_div_status width(5) "" {
+        DPLL_CLKOUTHIF_DIV_0 = 0 "Reserved";
+        DPLL_CLKOUTHIF_DIV_3 = 3 "3, to be used for OPP100 (when DPLL_PER is locked at 768 MHz)";
+        DPLL_CLKOUTHIF_DIV_4 = 4 "4, to be used for OPP50 (when DPLL_PER is locked at 768 MHz)";
+        DPLL_CLKOUTHIF_DIV_6 = 6 "6, to be used for OPP100 (when DPLL_PER is locked at 1536 MHz)";
+        DPLL_CLKOUTHIF_DIV_8 = 8 "8, to be used for OPP50 (when DPLL_PER is locked at 1536 MHz)";
+    };
+    
+    register cm_div_m3_dpll_per addr(base, 0x54) "This register provides controls over the M3 divider of the DPLL." {
+        _ 22 mbz;
+        st_dpll_clkouthif 1 ro type(st_dpll_clkouthif_status) "DPLL CLKOUTHIF status";
+        dpll_clkouthif_gate_ctrl 1 rw type(scale_fclk_status) "Control gating of DPLL CLKOUTHIF";
+        _ 2 mbz;
+        dpll_clkouthif_divchack 1 ro "Toggle on this status bit after changing DPLL_CLKOUTHIF_DIV indicates that the change in divider value has taken effect.";
+        dpll_clkouthif_div 5 rw type(dpll_clkouthif_div_status) "DPLL post-divider factor, M3, for internal clock generation (1 to 31). The values listed below (3, 4, 6 and 8) are used for maximum supported frequency at each OPP. Higher dividers (max 31), thus lower frequencies, are also supported.";
+    };
+
+    constants hsdivider_clkout1_pwdn_status width(1) "" {
+        HSDIVIDER_CLKOUT1_PWDN_0 = 0 "Divider is powered up";
+        HSDIVIDER_CLKOUT1_PWDN_1 = 1 "Divider is powered down";
+    };
+
+    constants hsdivider_clkout1_div_status width(5) "" {
+        HSDIVIDER_CLKOUT1_DIV_0 = 0 "Reserved";
+        HSDIVIDER_CLKOUT1_DIV_6 = 6 "6, to be used for OPP100 and OPP50 (when DPLL_PER is locked at 768 MHz)";
+        HSDIVIDER_CLKOUT1_DIV_12 = 12 "12, to be used for OPP100 and OPP50 (when DPLL_PER is locked at 1536 MHz)";
+    };
+    
+    register cm_div_m4_dpll_per addr(base, 0x58) "This register provides controls over the CLKOUT1 o/p of the HSDIVIDER." {
+        _ 19 mbz;
+        hsdivider_clkout1_pwdn 1 rw type(hsdivider_clkout1_pwdn_status) "Direct power down control for HSDIVIDER M4 divider and CLKOUT1 output. Power down should be enabled only when clock is first gated.";
+        _ 2 mbz;
+        st_hsdivider_clkout1 1 ro type(st_dpll_clkouthif_status) "HSDIVIDER CLKOUT1 status";
+        hsdivider_clkout1_gate_ctrl 1 rw type(scale_fclk_status) "Control gating of HSDIVIDER CLKOUT1";
+        _ 2 mbz;
+        hsdivider_clkout1_divchack 1 ro "Toggle on this status bit after changing HSDIVIDER_CLKOUT1_DIV indicates that the change in divider value has taken effect.";
+        hsdivider_clkout1_div 5 rw type(hsdivider_clkout1_div_status) "DPLL M4 post-divider factor (1 to 31)";
+    };
+
+    constants hsdivider_clkout2_pwdn_status width(1) "" {
+        HSDIVIDER_CLKOUT2_PWDN_0 = 0 "Divider is powered up.";
+        HSDIVIDER_CLKOUT2_PWDN_1 = 1 "Divider is powered down.";
+    };
+
+    constants hsdivider_clkout2_div_status width(5) "" {
+        HSDIVIDER_CLKOUT2_DIV_0 = 0 "Reserved";
+        HSDIVIDER_CLKOUT2_DIV_5 = 5 "5, to be used for OPP100 and OPP50 (when DPLL_PER is locked at 768 MHz)";
+        HSDIVIDER_CLKOUT2_DIV_9 = 9 "9, to be used for OPP100 and OPP50 (when DPLL_PER is locked at 1536 MHz)";
+    };
+    
+    register cm_div_m5_dpll_per addr(base, 0x5C) "This register provides controls over the CLKOUT2 o/p of the HSDIVIDER." {
+        _ 19 mbz;
+        hsdivider_clkout2_pwdn 1 rw type(hsdivider_clkout2_pwdn_status) "Direct power down control for HSDIVIDER M5 divider and CLKOUT2 output. Power down should be enabled only when clock is first gated.";
+        _ 2 mbz;
+        st_hsdivider_clkout2 1 ro type(st_dpll_clkouthif_status) "HSDIVIDER CLKOUT2 status";
+        hsdivider_clkout2_gate_ctrl 1 rw type(scale_fclk_status) "Control gating of HSDIVIDER CLKOUT2";
+        _ 2 mbz;
+        hsdivider_clkout2_divchack 1 ro "Toggle on this status bit after changing HSDIVIDER_CLKOUT2_DIV indicates that the change in divider value has taken effect.";
+        hsdivider_clkout2_div 5 rw type(hsdivider_clkout2_div_status) "DPLL M5 post-divider factor (1 to 31)";
+    };
+
+    constants hsdivider_clkout3_div_status width(5) "" {
+        HSDIVIDER_CLKOUT3_DIV_0 = 0 "Reserved";
+        HSDIVIDER_CLKOUT3_DIV_2 = 2 "2, to be used for OPP100 (when DPLL_PER is locked at 768 MHz)";
+        HSDIVIDER_CLKOUT3_DIV_4 = 4 "4, to be used for OPP100 (when DPLL_PER is locked at 1536 MHz) and for OPP50 (when DPLL_PER is locked at 768 MHz)";
+        HSDIVIDER_CLKOUT3_DIV_8 = 8 "8, to be used for OPP50 (when DPLL_PER is locked at 1536 MHz)";
+    };
+    
+    register cm_div_m6_dpll_per addr(base, 0x60) "This register provides controls over the CLKOUT3 o/p of the HSDIVIDER." {
+        _ 19 mbz;
+        hsdivider_clkout3_pwdn 1 rw type(hsdivider_clkout2_pwdn_status) "Direct power down control for HSDIVIDER M6 divider and CLKOUT3 output. Power down should be enabled only when clock is first gated.";
+        _ 2 mbz;
+        st_hsdivider_clkout3 1 ro type(st_dpll_clkouthif_status) "HSDIVIDER CLKOUT3 status";
+        hsdivider_clkout3_gate_ctrl 1 rw type(scale_fclk_status) "Control gating of HSDIVIDER CLKOUT3";
+        _ 2 mbz;
+        hsdivider_clkout3_divchack 1 ro "Toggle on this status bit after changing HSDIVIDER_CLKOUT3_DIV indicates that the change in divider value has taken effect.";
+        hsdivider_clkout3_div 5 rw type(hsdivider_clkout3_div_status) "DPLL M6 post-divider factor (1 to 31)";
+    };
+
+    constants hsdivider_clkout4_div_status width(5) "" {
+        HSDIVIDER_CLKOUT4_DIV_0 = 0 "Reserved";
+        HSDIVIDER_CLKOUT4_DIV_3 = 3 "3, to be used for OPP100 (when DPLL_PER is locked at 768 MHz)";
+        HSDIVIDER_CLKOUT4_DIV_5 = 5 "5, to be used for OPP100 (when DPLL_PER is locked at 1536 MHz)";
+        HSDIVIDER_CLKOUT4_DIV_6 = 6 "6, to be used for OPP50 (when DPLL_PER is locked at 768 MHz)";
+        HSDIVIDER_CLKOUT4_DIV_10 = 10 "10, to be used for OPP50 (when DPLL_PER is locked at 1536 MHz)";
+    };
+    
+    register cm_div_m7_dpll_per addr(base, 0x64) "This register provides controls over the CLKOUT4 o/p of the HSDIVIDER." {
+        _ 19 mbz;
+        hsdivider_clkout4_pwdn 1 rw type(hsdivider_clkout2_pwdn_status) "Direct power down control for HSDIVIDER M7 divider and CLKOUT4 output. Power down should be enabled only when clock is first gated.";
+        _ 2 mbz;
+        st_hsdivider_clkout4 1 ro type(st_dpll_clkouthif_status) "HSDIVIDER CLKOUT4 status";
+        hsdivider_clkout4_gate_ctrl 1 rw type(scale_fclk_status) "Control gating of HSDIVIDER CLKOUT4";
+        _ 2 mbz;
+        hsdivider_clkout4_divchack 1 ro "Toggle on this status bit after changing HSDIVIDER_CLKOUT4_DIV indicates that the change in divider value has taken effect.";
+        hsdivider_clkout4_div 5 rw type(hsdivider_clkout4_div_status) "DPLL M7 post-divider factor (1 to 31)";
+    };
+    
+    register cm_ssc_deltamstep_dpll_per addr(base, 0x68) "Control the DeltaMStep parameter for Spread Spectrum Clocking. [warm reset insensitive]" {
+        _ 12 mbz;
+        deltamstep 20 rw "DeltaMStep is split into fractional and integer part. For Triangular Spread Spectrum: [19:18] for integer part, [17:0] for fractional part For Square Wave Spread Spectrum [19:14] for integer part, [13:0] for fractional part";
+    };
+    
+    register cm_ssc_modfreqdiv_dpll_per addr(base, 0x6C) "Control the Modulation Frequency (Fm) for Spread Spectrum. [warm reset insensitive]" {
+        _ 21 mbz;
+        modfreqdiv_exponent 3 rw "Set the Exponent component of MODFREQDIV factor";
+        _ 1 mbz;
+        modfreqdiv_mantissa 7 rw "Set the Mantissa component of MODFREQDIV factor";
+    };
+
+    constants dpll_en_status1 width(3) "" {
+        DPLL_EN_0_1 = 0 "Reserved";
+        DPLL_EN_1_1 = 1 "Put the DPLL in low-power stop mode";
+        DPLL_EN_2_1 = 2 "Reserved2";
+        DPLL_EN_3_1 = 3 "Reserved";
+        DPLL_EN_4_1 = 4 "Put the DPLL in MN bypass mode. The DPLL_MULT register bits are reset to 0 automatically by putting the DPLL in this mode.";
+        DPLL_EN_5_1 = 5 "Put the DPLL in idle bypass low-power mode.";
+        DPLL_EN_6_1 = 6 "Reserved";
+        DPLL_EN_7_1 = 7 "Enables the DPLL in lock mode";
+    };
+    
+    register cm_clkmode_dpll_usb addr(base, 0x80) "This register allows controlling the DPLL modes." {
+        _ 17 mbz;
+        dpll_ssc_downspread 1 rw type(dpll_ssc_downspread_status) "Control if only low frequency spread is required";
+        dpll_ssc_ack 1 ro type(dpll_ssc_ack_status) "Acknowledgement from the DPLL regarding start and stop of Spread Spectrum Clocking feature";
+        dpll_ssc_en 1 rw type(dpll_ssc_en_status) "Enable or disable Spread Spectrum Clocking";
+        _ 9 mbz;
+        dpll_en 3 rw type(dpll_en_status1) "DPLL control. Upon Warm Reset, the PRCM DPLL control state machine updates this register to reflect DPLL low-power stop mode.";
+    };
+    
+    register cm_idlest_dpll_usb addr(base, 0x84) "This register allows monitoring DPLL activity. This register is read only and automatically updated. [warm reset insensitive]" {
+        _ 23 mbz;
+        st_mn_bypass 1 ro type(st_mn_bypass_status) "DPLL MN_BYPASS status";
+        _ 7 mbz;
+        st_dpll_clk 1 ro type(st_dpll_clk_status) "DPLL lock status";
+    };
+
+    constants auto_dpll_mode_status1 width(3) "" {
+        AUTO_DPLL_MODE_0_1 = 0 "DPLL auto control disabled";
+        AUTO_DPLL_MODE_1_1 = 1 "The DPLL is automatically put in low-power stop mode when its DPLL generated clocks are not required anymore. It is also restarted automatically.";
+        AUTO_DPLL_MODE_2_1 = 2 "Reserved";
+        AUTO_DPLL_MODE_3_1 = 3 "Reserved";
+        AUTO_DPLL_MODE_4_1 = 4 "Reserved";
+        AUTO_DPLL_MODE_5_1 = 5 "The DPLL is automatically put in idle bypass low-power mode when its DPLL generated clocks are not required anymore. It is also restarted automatically.";
+        AUTO_DPLL_MODE_6_1 = 6 "Reserved";
+        AUTO_DPLL_MODE_7_1 = 7 "Reserved";
+    };
+    
+    register cm_autoidle_dpll_usb addr(base, 0x88) "This register provides automatic control over the DPLL activity." {
+        _ 29 mbz;
+        auto_dpll_mode 3 rw type(auto_dpll_mode_status1) "DPLL automatic control;";
+    };
+    
+    register cm_clksel_dpll_usb addr(base, 0x8C) "This register provides controls over the DPLL." {
+        dpll_sd_div 8 rw type(dpll_en_status) "Sigma-Delta divider select (2-255). This factor must be set by s/w to ensure optimum jitter performance. DPLL_SD_DIV = CEILING ([DPLL_MULT/(DPLL_DIV+1)] * CLKINP / 250), where CLKINP is the input clock of the DPLL in MHz). Must be set with M and N factors, and must not be changed once DPLL is locked.";
+        dpll_byp_clksel 1 rw "Allows control of the BYPASS clock of the PLL and the associated HSDIVIDER. Same as ULOWCLKEN on DPLL. In DPLL locked mode, 0 - No impact 1 - No impact In DPLL bypass mode, 0 - CLKINP is selected as the BYPASS clock for CLKOUT 1 - CLKINPULOW is selected as the BYPASS clock for CLKOUT";
+        _ 3 mbz;
+        dpll_mult 12 rw type(dpll_en_status) "DPLL multiplier factor (2 to 4095). This register is automatically cleared to 0 when the DPLL_EN field in the *CLKMODE_DPLL* register is set to select MN bypass mode. (equal to input M of DPLL; M=2 to 4095 = DPLL multiplies by M).";
+        dpll_div 8 rw "DPLL divider factor (0 to 255) (equal to input N of DPLL; actual division factor is N+1).";
+    };
+
+    constants dpll_clkout_div_status1 width(7) "" {
+        DPLL_CLKOUT_DIV_0_1 = 0 "Reserved";
+        DPLL_CLKOUT_DIV_2 = 2 "2, to be used for OPP100 and OPP50";
+    };
+    
+    register cm_div_m2_dpll_usb addr(base, 0x90) "This register provides controls over the M2 divider of the DPLL." {
+        _ 22 mbz;
+        st_dpll_clkout 1 ro type(st_dpll_clkouthif_status) "DPLL CLKOUT status";
+        dpll_clkout_gate_ctrl 1 rw type(scale_fclk_status) "Control gating of DPLL CLKOUT";
+        dpll_clkout_divchack 1 ro "Toggle on this status bit after changing DPLL_CLKOUT_DIV indicates that the change in divider value has taken effect.";
+        dpll_clkout_div 7 rw type(dpll_clkout_div_status1) "DPLL post-divider factor, M2, for internal clock generation (1 to 127)";
+    };
+    
+    register cm_ssc_deltamstep_dpll_usb addr(base, 0xA8) "Control the DeltaMStep parameter for Spread Spectrum Clocking. [warm reset insensitive]" {
+        _ 11 mbz;
+        deltamstep 21 rw "DeltaMStep is split into fractional and integer part. For Triangular Spread Spectrum: [20:18] for integer part, [17:0] for fractional part For Square Wave Spread Spectrum [19:14] for integer part, [13:0] for fractional part";
+    };
+    
+    register cm_ssc_modfreqdiv_dpll_usb addr(base, 0xAC) "Control the Modulation Frequency (Fm) for Spread Spectrum. [warm reset insensitive]" {
+        _ 21 mbz;
+        modfreqdiv_exponent 3 rw "Set the Exponent component of MODFREQDIV factor";
+        _ 1 mbz;
+        modfreqdiv_mantissa 7 rw "Set the Mantissa component of MODFREQDIV factor";
+    };
+    
+    register cm_clkdcoldo_dpll_usb addr(base, 0xB4) "This register provides controls over the CLKDCOLDO output of the DPLL." {
+        _ 22 mbz;
+        st_dpll_clkdcoldo 1 ro type(st_dpll_clkoutx2_status) "DPLL CLKDCOLDO status";
+        dpll_clkdcoldo_gate_ctrl 1 rw type(scale_fclk_status) "Control gating of DPLL CLKDCOLDO";
+        _ 8 mbz;
+    };
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_ckgen_prm.dev b/devices/omap/omap44xx_ckgen_prm.dev
new file mode 100644 (file)
index 0000000..9339fbd
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_ckgen_prm.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_ckgen_prm msbfirst ( addr base ) "" {
+    
+
+    constants clksel_status width(1) "" {
+        CLKSEL_0 = 0 "Select SYS_CLK divided by 1";
+        CLKSEL_1 = 1 "Select SYS_CLK divided by 2 Must be used for SYS_CLK &gt; 26 MHz";
+    };
+    
+    register cm_abe_dss_sys_clksel addr(base, 0x0) "Select the SYS CLK for ABE and DSS subsystems. [warm reset insensitive]" {
+        _ 31 mbz;
+        clksel 1 rw type(clksel_status) "Selects the divider value";
+    };
+
+    constants clksel_status1 width(1) "" {
+        CLKSEL_0_1 = 0 "Selects SYS_CLK for L4WKUP_ICLK Selects SYS_CLK for ABE_DPLL_BYPASS_CLK";
+        CLKSEL_1_1 = 1 "Selects ABE_LP_CLK for L4WKUP_ICLK Selects 32K_FCLK for ABE_DPLL_BYPASS_CLK";
+    };
+    
+    register cm_l4_wkup_clksel addr(base, 0x8) "Control the functional clock source of L4_WKUP, PRM and Smart Reflex functional clock." {
+        _ 31 mbz;
+        clksel 1 rw type(clksel_status1) "Select the clock source for L4WKUP_ICLK and for ABE_DPLL_BYPASS_CLK clocks.";
+    };
+
+    constants clksel_status2 width(1) "" {
+        CLKSEL_0_2 = 0 "Selects SYS_CLK";
+        CLKSEL_1_2 = 1 "Selects SYS_32K";
+    };
+    
+    register cm_abe_pll_ref_clksel addr(base, 0xC) "Control the source of the reference clock for DPLL_ABE" {
+        _ 31 mbz;
+        clksel 1 rw type(clksel_status2) "Select the source for the DPLL_ABE reference clock.";
+    };
+
+    constants sys_clksel_status width(3) "" {
+        SYS_CLKSEL_0 = 0 "Uninitialized";
+        SYS_CLKSEL_1 = 1 "Input clock is 12 MHz";
+        SYS_CLKSEL_2 = 2 "Reserved";
+        SYS_CLKSEL_3 = 3 "Input clock is 16.8 MHz";
+        SYS_CLKSEL_4 = 4 "Input clock is 19.2 MHz";
+        SYS_CLKSEL_5 = 5 "Input clock is 26 MHz";
+        SYS_CLKSEL_6 = 6 "Reserved";
+        SYS_CLKSEL_7 = 7 "Input clock is 38.4 MHz";
+    };
+    
+    register cm_sys_clksel addr(base, 0x10) "Software sets the SYS_CLK configuration corresponding to the frequency of SYS_CLK. [warm reset insensitive]" {
+        _ 29 mbz;
+        sys_clksel 3 rw type(sys_clksel_status) "System clock input selection.";
+    };
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_clk1_clk1_targ_pwr_disc_clk2.dev b/devices/omap/omap44xx_clk1_clk1_targ_pwr_disc_clk2.dev
new file mode 100644 (file)
index 0000000..489a26d
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_clk1_clk1_targ_pwr_disc_clk2.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_clk1_clk1_targ_pwr_disc_clk2 msbfirst ( addr base ) "" {
+    
+
+    constants stdhosthdr_corereg_vendorcode_status width(1) "" {
+        STDHOSTHDR_COREREG_VENDORCODE_0_r = 0 "Third-party vendor.";
+        STDHOSTHDR_COREREG_VENDORCODE_1_r = 1 "";
+    };
+    
+    register l3_pwr_disc_stdhosthdr_corereg addr(base, 0x0) "" {
+        _ 10 mbz;
+        stdhosthdr_corereg_corecode 6 ro "The Core Code field is a constant reporting a vendor-specific core generator code. Type: Constant. Reset value: 0x38.";
+        _ 15 mbz;
+        stdhosthdr_corereg_vendorcode 1 ro type(stdhosthdr_corereg_vendorcode_status) "The Vendor Code field is a constant reporting the core generator vendor code. Type: Constant. Reset value: 0x1.";
+    };
+    
+    register l3_pwr_disc_stdhosthdr_versionreg addr(base, 0x4) "" {
+        stdhosthdr_versionreg_revisionid 8 ro "The Revision Identifier field is a constant reporting the core generator revision number. Type: Constant. Reset value: 0x0.";
+        stdhosthdr_versionreg_coreparamschecksum 24 ro "Reserved. Type: Reserved. Reset value: Reserved.";
+    };
+    
+    register l3_pwr_disc_stdhosthdr_mainctlreg addr(base, 0x8) "" {
+        _ 27 mbz;
+        _ 1 mbz;
+        stdhosthdr_mainctlreg_cm 1 ro "Reserved for internal testing. Must be set to 0. Type: Control. Reset value: 0x0.";
+        stdhosthdr_mainctlreg_flt 1 ro "Asserted when a Fault condition is detected: if the unit includes Error Logging, Flt is asserted when the FltCnt register field indicates a Fault, and deasserted when FltCnt is reset. If no Error Logging is implemented, this bit becomes unit-dependent. In all cases, Flt bit and Flt pin (service network) have the same logical level. Type: Status. Reset value: X.";
+        _ 2 mbz;
+    };
+
+    constants stderrlog_svrtstdlvl_0_status width(2) "" {
+        STDERRLOG_SVRTSTDLVL_0_0 = 0 "Error logging is disabled.";
+        STDERRLOG_SVRTSTDLVL_0_1 = 1 "Errors are logged with severity level Error.";
+        STDERRLOG_SVRTSTDLVL_0_2 = 2 "Errors are logged with severity level Fault.";
+    };
+    
+    register l3_pwr_disc_stderrlog_svrtstdlvl addr(base, 0x40) "" {
+        _ 30 mbz;
+        stderrlog_svrtstdlvl_0 2 rw type(stderrlog_svrtstdlvl_0_status) "Severity level parameters Type: Control. Reset value: 0x2.";
+    };
+
+    constants stderrlog_main_errtype_status width(1) "" {
+        STDERRLOG_MAIN_ERRTYPE_0_r = 0 "Logged Error format is standard (header and necker recorded).";
+        STDERRLOG_MAIN_ERRTYPE_1_r = 1 "Logged Error format is module dependent. CustomInfo register(s) may be implemented to store additional information.";
+    };
+    
+    register l3_pwr_disc_stderrlog_main addr(base, 0x48) "" {
+        stderrlog_main_clrlog 1 rw "Clears Error Logging Valid bit when written to 1. Type: Give_AutoCleared. Reset value: 0x0.";
+        _ 11 mbz;
+        stderrlog_main_fltcnt 1 rw "Asserted when at least one error with severity level FAULT is detected. Reset when written to 1. Type: Take. Reset value: 0x0.";
+        stderrlog_main_errcnt 1 rw "Asserted when at least one error with severity level ERROR is detected. Reset when written to 1. Type: Take. Reset value: 0x0.";
+        _ 16 mbz;
+        stderrlog_main_errtype 1 ro type(stderrlog_main_errtype_status) "Indicates logging type. Type: Status. Reset value: X.";
+        stderrlog_main_errlogvld 1 ro "Error Logging Valid. Asserted when logging information is valid(indicates that an error has been logged). Type: Status. Reset value: X.";
+    };
+    
+    register l3_pwr_disc_stderrlog_hdr addr(base, 0x4C) "" {
+        _ 8 mbz;
+        stderrlog_hdr_len1 6 ro "This field contains the number of payload cell(s) minus one of the logged packet. Type: Status. Reset value: X.";
+        _ 2 mbz;
+        stderrlog_hdr_stopofswrpsz 4 ro "StopOfs or WrapSize field of the logged packet (meaning depends on Wrp bit of logged opcode). Type: Status. Reset value: X.";
+        stderrlog_hdr_err 1 ro "Err bit of the logged packet. Type: Status. Reset value: X.";
+        _ 4 mbz;
+        stderrlog_hdr_pressure 1 ro "Pressure field of the logged packet. Type: Status. Reset value: X.";
+        _ 2 mbz;
+        stderrlog_hdr_opcode 4 ro "Opcode of the logged packet. Type: Status. Reset value: X.";
+    };
+    
+    register l3_pwr_disc_stderrlog_mstaddr addr(base, 0x50) "" {
+        _ 24 mbz;
+        stderrlog_mstaddr 8 ro "Master Address field of the logged packet. Type: Status. Reset value: X.";
+    };
+    
+    register l3_pwr_disc_stderrlog_slvaddr addr(base, 0x54) "" {
+        _ 27 mbz;
+        stderrlog_slvaddr 5 ro "Slave Address field of the logged packet. Type: Status. Reset value: X.";
+    };
+    
+    register l3_pwr_disc_stderrlog_info addr(base, 0x58) "" {
+        _ 24 mbz;
+        stderrlog_info 8 ro "Info field of the logged packet. Type: Status. Reset value: X.";
+    };
+    
+    register l3_pwr_disc_stderrlog_slvofslsb ro addr(base, 0x5C) "" type(uint32);
+    
+    register l3_pwr_disc_stderrlog_slvofsmsb addr(base, 0x60) "" {
+        _ 31 mbz;
+        stderrlog_slvofsmsb 1 ro "MSB of the slave offset field of the logged packet (according to NTTP packet format, this register field may exceed the actual slave offset size. Unused bits are stuck at 0, if any). Type: Status. Reset value: X.";
+    };
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_clk1_dmm1_targ.dev b/devices/omap/omap44xx_clk1_dmm1_targ.dev
new file mode 100644 (file)
index 0000000..6f57cf9
--- /dev/null
@@ -0,0 +1,146 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_clk1_dmm1_targ.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_clk1_dmm1_targ msbfirst ( addr base ) "" {
+    
+
+    constants stdhosthdr_corereg_vendorcode_status width(1) "" {
+        STDHOSTHDR_COREREG_VENDORCODE_0_r = 0 "Third-party vendor.";
+        STDHOSTHDR_COREREG_VENDORCODE_1_r = 1 "";
+    };
+    
+    register l3_targ_stdhosthdr_corereg addr(base, 0x0) "" {
+        _ 10 mbz;
+        stdhosthdr_corereg_corecode 6 ro "The Core Code field is a constant reporting a vendor-specific core generator code. Type: Constant. Reset value: 0x13.";
+        _ 15 mbz;
+        stdhosthdr_corereg_vendorcode 1 ro type(stdhosthdr_corereg_vendorcode_status) "The Vendor Code field is a constant reporting the core generator vendor code. Type: Constant. Reset value: 0x1.";
+    };
+    
+    register l3_targ_stdhosthdr_versionreg addr(base, 0x4) "" {
+        stdhosthdr_versionreg_revisionid 8 ro "The Revision Identifier field is a constant reporting the core generator revision number. Type: Constant. Reset value: 0x0.";
+        stdhosthdr_versionreg_coreparamschecksum 24 ro "Reserved. Type: Reserved. Reset value: Reserved.";
+    };
+    
+    register l3_targ_stdhosthdr_mainctlreg addr(base, 0x8) "" {
+        _ 27 mbz;
+        _ 1 mbz;
+        stdhosthdr_mainctlreg_cm 1 ro "Reserved for internal testing. Must be set to 0. Type: Control. Reset value: 0x0.";
+        stdhosthdr_mainctlreg_flt 1 ro "Asserted when a Fault condition is detected: if the unit includes Error Logging, Flt is asserted when the FltCnt register field indicates a Fault, and deasserted when FltCnt is reset. If no Error Logging is implemented, this bit becomes unit-dependent. In all cases, Flt bit and Flt pin (service network) have the same logical level. Type: Status. Reset value: X.";
+        _ 1 mbz;
+        stdhosthdr_mainctlreg_en 1 rw "Sets the global core enable. Note: A disabled master does not generate any NTTP requests, and a disabled slave replies with an error packet to any request it receives. Type: Control. Reset value: 0x1.";
+    };
+    
+    register l3_targ_stdhosthdr_nttpaddr_0 addr(base, 0x10) "" {
+        _ 27 mbz;
+        stdhosthdr_nttpaddr_0 5 ro "Sets the RX port address. Type: Control. Reset value: 0x15.";
+    };
+
+    constants stderrlog_svrtstdlvl_0_status width(2) "" {
+        STDERRLOG_SVRTSTDLVL_0_0 = 0 "Error logging is disabled.";
+        STDERRLOG_SVRTSTDLVL_0_1 = 1 "Errors are logged with severity level Error.";
+        STDERRLOG_SVRTSTDLVL_0_2 = 2 "Errors are logged with severity level Fault.";
+    };
+    
+    register l3_targ_stderrlog_svrtstdlvl addr(base, 0x40) "" {
+        _ 30 mbz;
+        stderrlog_svrtstdlvl_0 2 rw type(stderrlog_svrtstdlvl_0_status) "Severity level parameters Type: Control. Reset value: 0x2.";
+    };
+    
+    register l3_targ_stderrlog_svrtcustomlvl addr(base, 0x44) "" {
+        _ 30 mbz;
+        stderrlog_svrtcustomlvl_0 2 rw type(stderrlog_svrtstdlvl_0_status) "Severity level parameters Type: Control. Reset value: 0x2.";
+    };
+
+    constants stderrlog_main_errtype_status width(1) "" {
+        STDERRLOG_MAIN_ERRTYPE_0_r = 0 "Logged Error format is standard (header and necker recorded).";
+        STDERRLOG_MAIN_ERRTYPE_1_r = 1 "Logged Error format is module dependent. CustomInfo register(s) may be implemented to store additional information.";
+    };
+    
+    register l3_targ_stderrlog_main addr(base, 0x48) "" {
+        stderrlog_main_clrlog 1 rw "Clears Error Logging Valid bit when written to 1. Type: Give_AutoCleared. Reset value: 0x0.";
+        _ 11 mbz;
+        stderrlog_main_fltcnt 1 rw "Asserted when at least one error with severity level FAULT is detected. Reset when written to 1. Type: Take. Reset value: 0x0.";
+        stderrlog_main_errcnt 1 rw "Asserted when at least one error with severity level ERROR is detected. Reset when written to 1. Type: Take. Reset value: 0x0.";
+        _ 16 mbz;
+        stderrlog_main_errtype 1 ro type(stderrlog_main_errtype_status) "Indicates logging type. Type: Status. Reset value: X.";
+        stderrlog_main_errlogvld 1 ro "Error Logging Valid. Asserted when logging information is valid(indicates that an error has been logged). Type: Status. Reset value: X.";
+    };
+    
+    register l3_targ_stderrlog_hdr addr(base, 0x4C) "" {
+        _ 8 mbz;
+        stderrlog_hdr_len1 6 ro "This field contains the number of payload cell(s) minus one of the logged packet. Type: Status. Reset value: X.";
+        _ 2 mbz;
+        stderrlog_hdr_stopofswrpsz 4 ro "StopOfs or WrapSize field of the logged packet (meaning depends on Wrp bit of logged opcode). Type: Status. Reset value: X.";
+        stderrlog_hdr_err 1 ro "Err bit of the logged packet. Type: Status. Reset value: X.";
+        _ 4 mbz;
+        stderrlog_hdr_pressure 1 ro "Pressure field of the logged packet. Type: Status. Reset value: X.";
+        _ 2 mbz;
+        stderrlog_hdr_opcode 4 ro "Opcode of the logged packet. Type: Status. Reset value: X.";
+    };
+    
+    register l3_targ_stderrlog_mstaddr addr(base, 0x50) "" {
+        _ 24 mbz;
+        stderrlog_mstaddr 8 ro "Master Address field of the logged packet. (see) Type: Status. Reset value: X.";
+    };
+    
+    register l3_targ_stderrlog_slvaddr addr(base, 0x54) "" {
+        _ 27 mbz;
+        stderrlog_slvaddr 5 ro "Slave Address field of the logged packet. Type: Status. Reset value: X.";
+    };
+    
+    register l3_targ_stderrlog_info addr(base, 0x58) "" {
+        _ 24 mbz;
+        stderrlog_info 8 ro "Info field of the logged packet. Type: Status. Reset value: X.";
+    };
+    
+    register l3_targ_stderrlog_slvofslsb ro addr(base, 0x5C) "" type(uint32);
+    
+    register l3_targ_stderrlog_slvofsmsb addr(base, 0x60) "" {
+        _ 31 mbz;
+        stderrlog_slvofsmsb 1 ro "MSB of the slave offset field of the logged packet (according to NTTP packet format, this register field may exceed the actual slave offset size. Unused bits are stuck at 0, if any). Type: Status. Reset value: X.";
+    };
+    
+    register l3_targ_stderrlog_custominfo_info addr(base, 0x64) "" {
+        _ 24 mbz;
+        stderrlog_custominfo_info 8 ro "Info field of the response packet. Type: Status. Reset value: X.";
+    };
+    
+    register l3_targ_stderrlog_custominfo_mstaddr addr(base, 0x68) "" {
+        _ 24 mbz;
+        stderrlog_custominfo_mstaddr 8 ro "MstAddr field of the response packet. (see) Type: Status. Reset value: X.";
+    };
+    
+    register l3_targ_stderrlog_custominfo_opcode addr(base, 0x6C) "" {
+        _ 30 mbz;
+        stderrlog_custominfo_opcode 2 ro "Opcode of the response packet. Type: Status. Reset value: X.";
+    };
+    
+    register l3_targ_addrspacesizelog addr(base, 0x80) "" {
+        _ 27 mbz;
+        addrspacesizelog 5 rw "The address space size is equal to 2**AddrSpaceSizeLog * 4K in bytes. Type: Control. Reset value: 0x1F.";
+    };
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_clk1_dss_bw_regulator.dev b/devices/omap/omap44xx_clk1_dss_bw_regulator.dev
new file mode 100644 (file)
index 0000000..3b6c0a7
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_clk1_dss_bw_regulator.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_clk1_dss_bw_regulator msbfirst ( addr base ) "" {
+    
+
+    constants stdhosthdr_corereg_vendorcode_status width(1) "" {
+        STDHOSTHDR_COREREG_VENDORCODE_0_r = 0 "Third-party vendor.";
+        STDHOSTHDR_COREREG_VENDORCODE_1_r = 1 "";
+    };
+    
+    register l3_bw_r_stdhosthdr_corereg addr(base, 0x0) "" {
+        _ 10 mbz;
+        stdhosthdr_corereg_corecode 6 ro "The Core Code field is a constant reporting a vendor-specific core generator code. Type: Constant. Reset value: 0x31.";
+        _ 15 mbz;
+        stdhosthdr_corereg_vendorcode 1 ro type(stdhosthdr_corereg_vendorcode_status) "The Vendor Code field is a constant reporting the core generator vendor code. Type: Constant. Reset value: 0x1.";
+    };
+    
+    register l3_bw_r_stdhosthdr_versionreg addr(base, 0x4) "" {
+        stdhosthdr_versionreg_revisionid 8 ro "The Revision Identifier field is a constant reporting the core generator revision number. Type: Constant. Reset value: 0x0.";
+        stdhosthdr_versionreg_coreparamschecksum 24 ro "Reserved. Type: Reserved. Reset value: Reserved.";
+    };
+    
+    register l3_bw_r_bandwidth addr(base, 0x8) "" {
+        _ 16 mbz;
+        bandwidth 16 rw "Bandwidth, in bytes per second. Type: Control. Reset value: 0x0.";
+    };
+    
+    register l3_bw_r_watermark addr(base, 0xC) "" {
+        _ 20 mbz;
+        watermark 12 rw "Peak permissible bandwidth, in bytes. Type: Control. Reset value: 0x1.";
+    };
+    
+    register l3_bw_r_press addr(base, 0x10) "" {
+        _ 30 mbz;
+        press_low 1 ro "Pressure value inserted if the measured bandwidth is over the watermark. The pressure is bar graph encoded. Type: Control. Reset value: 0x0.";
+        press_high 1 ro "Pressure value inserted if the measured bandwidth is under the watermark. The pressure is bar graph encoded. Type: Control. Reset value: 0x1.";
+    };
+    
+    register l3_bw_r_clearhistory addr(base, 0x14) "" {
+        _ 31 mbz;
+        clearhistory 1 rw "Write a 1 clear the traffic counter Type: Give_AutoCleared. Reset value: 0x0.";
+    };
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_clk1_flagmux_clk1.dev b/devices/omap/omap44xx_clk1_flagmux_clk1.dev
new file mode 100644 (file)
index 0000000..023c8e7
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_clk1_flagmux_clk1.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_clk1_flagmux_clk1 msbfirst ( addr base ) "" {
+    
+
+    constants stdhosthdr_corereg_vendorcode_status width(1) "" {
+        STDHOSTHDR_COREREG_VENDORCODE_0_r = 0 "Third-party vendor.";
+        STDHOSTHDR_COREREG_VENDORCODE_1_r = 1 "";
+    };
+    
+    register l3_flagmux_stdhosthdr_corereg addr(base, 0x0) "" {
+        _ 10 mbz;
+        stdhosthdr_corereg_corecode 6 ro "The Core Code field is a constant reporting a vendor-specific core generator code. Type: Constant. Reset value: 0x37.";
+        _ 15 mbz;
+        stdhosthdr_corereg_vendorcode 1 ro type(stdhosthdr_corereg_vendorcode_status) "The Vendor Code field is a constant reporting the core generator vendor code. Type: Constant. Reset value: 0x1.";
+    };
+    
+    register l3_flagmux_stdhosthdr_versionreg addr(base, 0x4) "" {
+        stdhosthdr_versionreg_revisionid 8 ro "The Revision Identifier field is a constant reporting the core generator revision number. Type: Constant. Reset value: 0x0.";
+        stdhosthdr_versionreg_coreparamschecksum 24 ro "Reserved. Type: Reserved. Reset value: Reserved.";
+    };
+    
+    register l3_flagmux_mask0 addr(base, 0x8) "" {
+        _ 14 mbz;
+        mask0 18 rw "Mask flag inputs 0 Type: Control. Reset value: 0x3FFFF.";
+    };
+    
+    register l3_flagmux_regerr0 addr(base, 0xC) "" {
+        _ 14 mbz;
+        regerr0 18 ro "Flag inputs 0 Type: Status. Reset value: X.";
+    };
+    
+    register l3_flagmux_mask1 addr(base, 0x10) "" {
+        _ 14 mbz;
+        mask1 18 rw "Mask flag inputs 1 Type: Control. Reset value: 0x3FFFF.";
+    };
+    
+    register l3_flagmux_regerr1 addr(base, 0x14) "" {
+        _ 14 mbz;
+        regerr1 18 ro "Flag inputs 1 Type: Status. Reset value: X.";
+    };
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_clk1_host_clk1.dev b/devices/omap/omap44xx_clk1_host_clk1.dev
new file mode 100644 (file)
index 0000000..b9f799d
--- /dev/null
@@ -0,0 +1,143 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_clk1_host_clk1.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_clk1_host_clk1 msbfirst ( addr base ) "" {
+    
+
+    constants stdhosthdr_corereg_vendorcode_status width(1) "" {
+        STDHOSTHDR_COREREG_VENDORCODE_0_r = 0 "Third-party vendor.";
+        STDHOSTHDR_COREREG_VENDORCODE_1_r = 1 "";
+    };
+    
+    register l3_host_stdhosthdr_corereg addr(base, 0x0) "" {
+        _ 10 mbz;
+        stdhosthdr_corereg_corecode 6 ro "The Core Code field is a constant reporting a vendor-specific core generator code. Type: Constant. Reset value: 0x1A.";
+        _ 15 mbz;
+        stdhosthdr_corereg_vendorcode 1 ro type(stdhosthdr_corereg_vendorcode_status) "The Vendor Code field is a constant reporting the core generator vendor code. Type: Constant. Reset value: 0x1.";
+    };
+    
+    register l3_host_stdhosthdr_versionreg addr(base, 0x4) "" {
+        stdhosthdr_versionreg_revisionid 8 ro "The Revision Identifier field is a constant reporting the core generator revision number. Type: Constant. Reset value: 0x0.";
+        stdhosthdr_versionreg_coreparamschecksum 24 ro "Reserved. Type: Reserved. Reset value: Reserved.";
+    };
+    
+    register l3_host_stdhosthdr_mainctlreg addr(base, 0x8) "" {
+        _ 29 mbz;
+        stdhosthdr_mainctlreg_flt 1 ro "Asserted when a Fault condition is detected: if the unit includes Error Logging, Flt is asserted when the FltCnt register field indicates a Fault, and deasserted when FltCnt is reset. If no Error Logging is implemented, this bit becomes unit-dependent. In all cases, Flt bit and Flt pin (service network) have the same logical level. Type: Status. Reset value: X.";
+        _ 2 mbz;
+    };
+
+    constants stderrlog_svrtstdlvl_0_status width(2) "" {
+        STDERRLOG_SVRTSTDLVL_0_0 = 0 "Error logging is disabled.";
+        STDERRLOG_SVRTSTDLVL_0_1 = 1 "Errors are logged with severity level Error.";
+        STDERRLOG_SVRTSTDLVL_0_2 = 2 "Errors are logged with severity level Fault.";
+    };
+    
+    register l3_host_stderrlog_svrtstdlvl addr(base, 0x40) "" {
+        _ 30 mbz;
+        stderrlog_svrtstdlvl_0 2 rw type(stderrlog_svrtstdlvl_0_status) "Severity level parameters Type: Control. Reset value: 0x0.";
+    };
+    
+    register l3_host_stderrlog_svrtcustomlvl addr(base, 0x44) "" {
+        _ 30 mbz;
+        stderrlog_svrtcustomlvl_0 2 rw type(stderrlog_svrtstdlvl_0_status) "Severity level parameters Type: Control. Reset value: 0x0.";
+    };
+
+    constants stderrlog_main_errtype_status width(1) "" {
+        STDERRLOG_MAIN_ERRTYPE_0_r = 0 "Logged Error format is standard (header and necker recorded).";
+        STDERRLOG_MAIN_ERRTYPE_1_r = 1 "Logged Error format is module dependent. CustomInfo register(s) may be implemented to store additional information.";
+    };
+    
+    register l3_host_stderrlog_main addr(base, 0x48) "" {
+        stderrlog_main_clrlog 1 rw "Clears Error Logging Valid bit when written to 1. Type: Give_AutoCleared. Reset value: 0x0.";
+        _ 11 mbz;
+        stderrlog_main_fltcnt 1 rw "Asserted when at least one error with severity level FAULT is detected. Reset when written to 1. Type: Take. Reset value: 0x0.";
+        stderrlog_main_errcnt 1 rw "Asserted when at least one error with severity level ERROR is detected. Reset when written to 1. Type: Take. Reset value: 0x0.";
+        _ 16 mbz;
+        stderrlog_main_errtype 1 ro type(stderrlog_main_errtype_status) "Indicates logging type. Type: Status. Reset value: X.";
+        stderrlog_main_errlogvld 1 ro "Error Logging Valid. Asserted when logging information is valid(indicates that an error has been logged). Type: Status. Reset value: X.";
+    };
+    
+    register l3_host_stderrlog_hdr addr(base, 0x4C) "" {
+        _ 8 mbz;
+        stderrlog_hdr_len1 6 ro "This field contains the number of payload cell(s) minus one of the logged packet. Type: Status. Reset value: X.";
+        _ 2 mbz;
+        stderrlog_hdr_stopofswrpsz 4 ro "StopOfs or WrapSize field of the logged packet (meaning depends on Wrp bit of logged opcode). Type: Status. Reset value: X.";
+        stderrlog_hdr_err 1 ro "Err bit of the logged packet. Type: Status. Reset value: X.";
+        _ 4 mbz;
+        stderrlog_hdr_pressure 1 ro "Pressure field of the logged packet. Type: Status. Reset value: X.";
+        _ 2 mbz;
+        stderrlog_hdr_opcode 4 ro "Opcode of the logged packet. Type: Status. Reset value: X.";
+    };
+    
+    register l3_host_stderrlog_mstaddr addr(base, 0x50) "" {
+        _ 24 mbz;
+        stderrlog_mstaddr 8 ro "Master Address field of the logged packet. Type: Status. Reset value: X.";
+    };
+    
+    register l3_host_stderrlog_slvaddr addr(base, 0x54) "" {
+        _ 27 mbz;
+        stderrlog_slvaddr 5 ro "Slave Address field of the logged packet. Type: Status. Reset value: X.";
+    };
+    
+    register l3_host_stderrlog_info addr(base, 0x58) "" {
+        _ 24 mbz;
+        stderrlog_info 8 ro "Info field of the logged packet. Type: Status. Reset value: X.";
+    };
+    
+    register l3_host_stderrlog_slvofslsb ro addr(base, 0x5C) "" type(uint32);
+    
+    register l3_host_stderrlog_slvofsmsb addr(base, 0x60) "" {
+        _ 31 mbz;
+        stderrlog_slvofsmsb 1 ro "MSB of the slave offset field of the logged packet (according to NTTP packet format, this register field may exceed the actual slave offset size. Unused bits are stuck at 0, if any). Type: Status. Reset value: X.";
+    };
+    
+    register l3_host_stderrlog_custominfo_mstaddr addr(base, 0x64) "" {
+        _ 24 mbz;
+        stderrlog_custominfo_mstaddr 8 ro "Type: Status. Reset value: X.";
+    };
+    
+    register l3_host_stderrlog_custominfo_info addr(base, 0x68) "" {
+        _ 24 mbz;
+        stderrlog_custominfo_info 8 ro "Type: Status. Reset value: X.";
+    };
+    
+    register l3_host_stderrlog_custominfo_wr addr(base, 0x6C) "" {
+        _ 31 mbz;
+        stderrlog_custominfo_wr 1 ro "Type: Status. Reset value: X.";
+    };
+    
+    register l3_host_stderrlog_custominfo_addr addr(base, 0x70) "" {
+        _ 11 mbz;
+        stderrlog_custominfo_addr 21 ro "Type: Status. Reset value: X.";
+    };
+    
+    register l3_host_stderrlog_custominfo_decerr addr(base, 0x74) "" {
+        _ 31 mbz;
+        stderrlog_custominfo_decerr 1 ro "Type: Status. Reset value: X.";
+    };
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_clk1_rate_adapt_resp_32to128_clk1.dev b/devices/omap/omap44xx_clk1_rate_adapt_resp_32to128_clk1.dev
new file mode 100644 (file)
index 0000000..e084645
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_clk1_rate_adapt_resp_32to128_clk1.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might not be optimal in terms of naming
+ * conventions for constants and registers (duplicated
+ * namespaces in register and device name etc.).
+ * Also, because of the underlying structure from the original XML
+ * it's possible that some constants appear multiple times (if they
+ * have slightly different descriptions for example).
+ *
+ * You want to clean that up before using the files for the first time!
+ */
+device omap44xx_clk1_rate_adapt_resp_32to128_clk1 msbfirst ( addr base ) "" {
+    
+
+    constants stdhosthdr_corereg_vendorcode_status width(1) "" {
+        STDHOSTHDR_COREREG_VENDORCODE_0_r = 0 "Third-party vendor.";
+        STDHOSTHDR_COREREG_VENDORCODE_1_r = 1 "";
+    };
+    
+    register l3_ra_stdhosthdr_corereg addr(base, 0x0) "" {
+        _ 10 mbz;
+        stdhosthdr_corereg_corecode 6 ro "The Core Code field is a constant reporting a vendor-specific core generator code. Type: Constant. Reset value: 0x2D.";
+        _ 15 mbz;
+        stdhosthdr_corereg_vendorcode 1 ro type(stdhosthdr_corereg_vendorcode_status) "The Vendor Code field is a constant reporting the core generator vendor code. Type: Constant. Reset value: 0x1.";
+    };
+    
+    register l3_ra_stdhosthdr_versionreg addr(base, 0x4) "" {
+        stdhosthdr_versionreg_revisionid 8 ro "The Revision Identifier field is a constant reporting the core generator revision number. Type: Constant. Reset value: 0x0.";
+        stdhosthdr_versionreg_coreparamschecksum 24 ro "Reserved. Type: Reserved. Reset value: Reserved.";
+    };
+    
+    register l3_ra_cnf addr(base, 0x8) "" {
+        _ 27 mbz;
+        cnf_rate 4 rw "Indicates the throughput ratio between input and output (Rate = [16 x (Incoming_Throughput/Outgoing_Throuput)] - 1), when bit StAndFwd bit is reset. Ignored when StAndFwd bit is set. Type: Control. Reset value: 0x3.";
+        cnf_standfwd 1 rw "When this bit is set, the Packet Transport Unit stores the entire NTTP packet, then forwards it on TX port. Type: Control. Reset value: 0x0.";
+    };
+};
\ No newline at end of file
diff --git a/devices/omap/omap44xx_clk3_statcoll_lat0.dev b/devices/omap/omap44xx_clk3_statcoll_lat0.dev
new file mode 100644 (file)
index 0000000..8d9596a
--- /dev/null
@@ -0,0 +1,224 @@
+/*
+ * Copyright (c) 2013 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, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+ * Attn: Systems Group.
+ */
+
+/*
+ * omap44xx_clk3_statcoll_lat0.dev
+ *
+ * DESCRIPTION: 
+ *
+ * NOTE: This file has been automatically generated based on the
+ * XML files extracted from the TI RDT v1.0.0.4p Tool.
+ * Download from here: http://www.ti.com/product/omap4460
+ * This means that the file might&