arch/arm/mach-omap2/clock.c
Source file repositories/reference/linux-study-clean/arch/arm/mach-omap2/clock.c
File Facts
- System
- Linux kernel
- Corpus path
arch/arm/mach-omap2/clock.c- Extension
.c- Size
- 4013 bytes
- Lines
- 140
- 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/export.hlinux/list.hlinux/errno.hlinux/err.hlinux/delay.hlinux/clk.hlinux/clk-provider.hlinux/io.hlinux/bitops.hlinux/of_address.hasm/cpu.htrace/events/power.hsoc.hclockdomain.hclock.hcm.hcm2xxx.hcm3xxx.hcm-regbits-24xx.hcm-regbits-34xx.hcommon.h
Detected Declarations
function omap2_clk_setup_ll_opsfunction ti_clk_init_featuresfunction soc_is_omap54xx
Annotated Snippet
soc_is_omap54xx() || soc_is_dra7xx()) {
features.dpll_bypass_vals |=
(1 << OMAP4XXX_EN_DPLL_LPBYPASS) |
(1 << OMAP4XXX_EN_DPLL_FRBYPASS) |
(1 << OMAP4XXX_EN_DPLL_MNBYPASS);
}
/* Jitter correction only available on OMAP343X */
if (cpu_is_omap343x())
features.flags |= TI_CLK_DPLL_HAS_FREQSEL;
if (omap_type() == OMAP2_DEVICE_TYPE_GP)
features.flags |= TI_CLK_DEVICE_TYPE_GP;
/* Idlest value for interface clocks.
* 24xx uses 0 to indicate not ready, and 1 to indicate ready.
* 34xx reverses this, just to keep us on our toes
* AM35xx uses both, depending on the module.
*/
if (cpu_is_omap24xx())
features.cm_idlest_val = OMAP24XX_CM_IDLEST_VAL;
else if (cpu_is_omap34xx())
features.cm_idlest_val = OMAP34XX_CM_IDLEST_VAL;
/* On OMAP3430 ES1.0, DPLL4 can't be re-programmed */
if (omap_rev() == OMAP3430_REV_ES1_0)
features.flags |= TI_CLK_DPLL4_DENY_REPROGRAM;
/* Errata I810 for omap5 / dra7 */
if (soc_is_omap54xx() || soc_is_dra7xx())
features.flags |= TI_CLK_ERRATA_I810;
ti_clk_setup_features(&features);
}
Annotation
- Immediate include surface: `linux/kernel.h`, `linux/export.h`, `linux/list.h`, `linux/errno.h`, `linux/err.h`, `linux/delay.h`, `linux/clk.h`, `linux/clk-provider.h`.
- Detected declarations: `function omap2_clk_setup_ll_ops`, `function ti_clk_init_features`, `function soc_is_omap54xx`.
- 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.