arch/arm/mach-omap2/control.c
Source file repositories/reference/linux-study-clean/arch/arm/mach-omap2/control.c
File Facts
- System
- Linux kernel
- Corpus path
arch/arm/mach-omap2/control.c- Extension
.c- Size
- 24160 bytes
- Lines
- 794
- Domain
- Architecture Layer
- Bucket
- arch/arm
- Inferred role
- Architecture Layer: implementation source
- Status
- source implementation candidate
Why This File Exists
CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/kernel.hlinux/io.hlinux/of_address.hlinux/regmap.hlinux/mfd/syscon.hlinux/cpu_pm.hsoc.hiomap.hcommon.hcm-regbits-34xx.hprm-regbits-34xx.hprm3xxx.hcm3xxx.hsdrc.hpm.hcontrol.hclock.h
Detected Declarations
struct omap3_scratchpadstruct omap3_scratchpad_prcm_blockstruct omap3_scratchpad_sdrc_blockstruct omap3_control_regsstruct control_init_datafunction omap_ctrl_readbfunction omap_ctrl_readwfunction omap_ctrl_readlfunction omap_ctrl_writebfunction omap_ctrl_writewfunction omap_ctrl_writelfunction omap3_ctrl_write_boot_modefunction omap3_save_scratchpad_contentsfunction omap3_control_save_contextfunction omap3_control_restore_contextfunction omap3630_ctrl_disable_rtafunction omap3_ctrl_save_padconffunction omap3_ctrl_set_iva_bootmode_idlefunction omap3_ctrl_setup_d2d_padconffunction omap3_ctrl_initfunction am43xx_control_save_contextfunction am43xx_control_restore_contextfunction cpu_notifierfunction omap2_control_base_initfunction for_each_matching_node_and_matchfunction omap_control_initfunction for_each_matching_node_and_match
Annotated Snippet
struct omap3_scratchpad {
u32 boot_config_ptr;
u32 public_restore_ptr;
u32 secure_ram_restore_ptr;
u32 sdrc_module_semaphore;
u32 prcm_block_offset;
u32 sdrc_block_offset;
};
struct omap3_scratchpad_prcm_block {
u32 prm_contents[2];
u32 cm_contents[11];
u32 prcm_block_size;
};
struct omap3_scratchpad_sdrc_block {
u16 sysconfig;
u16 cs_cfg;
u16 sharing;
u16 err_type;
u32 dll_a_ctrl;
u32 dll_b_ctrl;
u32 power;
u32 cs_0;
u32 mcfg_0;
u16 mr_0;
u16 emr_1_0;
u16 emr_2_0;
u16 emr_3_0;
u32 actim_ctrla_0;
u32 actim_ctrlb_0;
u32 rfr_ctrl_0;
u32 cs_1;
u32 mcfg_1;
u16 mr_1;
u16 emr_1_1;
u16 emr_2_1;
u16 emr_3_1;
u32 actim_ctrla_1;
u32 actim_ctrlb_1;
u32 rfr_ctrl_1;
u16 dcdl_1_ctrl;
u16 dcdl_2_ctrl;
u32 flags;
u32 block_size;
};
void *omap3_secure_ram_storage;
/*
* This is used to store ARM registers in SDRAM before attempting
* an MPU OFF. The save and restore happens from the SRAM sleep code.
* The address is stored in scratchpad, so that it can be used
* during the restore path.
*/
u32 omap3_arm_context[128];
struct omap3_control_regs {
u32 sysconfig;
u32 devconf0;
u32 mem_dftrw0;
u32 mem_dftrw1;
u32 msuspendmux_0;
u32 msuspendmux_1;
u32 msuspendmux_2;
u32 msuspendmux_3;
u32 msuspendmux_4;
u32 msuspendmux_5;
u32 sec_ctrl;
u32 devconf1;
u32 csirxfe;
u32 iva2_bootaddr;
u32 iva2_bootmod;
u32 wkup_ctrl;
u32 debobs_0;
u32 debobs_1;
u32 debobs_2;
u32 debobs_3;
u32 debobs_4;
u32 debobs_5;
u32 debobs_6;
u32 debobs_7;
u32 debobs_8;
u32 prog_io0;
u32 prog_io1;
u32 dss_dpll_spreading;
u32 core_dpll_spreading;
u32 per_dpll_spreading;
u32 usbhost_dpll_spreading;
u32 pbias_lite;
Annotation
- Immediate include surface: `linux/kernel.h`, `linux/io.h`, `linux/of_address.h`, `linux/regmap.h`, `linux/mfd/syscon.h`, `linux/cpu_pm.h`, `soc.h`, `iomap.h`.
- Detected declarations: `struct omap3_scratchpad`, `struct omap3_scratchpad_prcm_block`, `struct omap3_scratchpad_sdrc_block`, `struct omap3_control_regs`, `struct control_init_data`, `function omap_ctrl_readb`, `function omap_ctrl_readw`, `function omap_ctrl_readl`, `function omap_ctrl_writeb`, `function omap_ctrl_writew`.
- Atlas domain: Architecture Layer / arch/arm.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.