include/linux/mfd/dbx500-prcmu.h
Source file repositories/reference/linux-study-clean/include/linux/mfd/dbx500-prcmu.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/mfd/dbx500-prcmu.h- Extension
.h- Size
- 13074 bytes
- Lines
- 576
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/interrupt.hlinux/notifier.hlinux/err.hdt-bindings/mfd/dbx500-prcmu.hlinux/mfd/db8500-prcmu.h
Detected Declarations
struct prcmu_fw_versionenum prcmu_wakeup_indexenum prcmu_wdog_idenum ape_oppenum arm_oppenum ddr_oppenum ddr_pwrstfunction prcmu_early_initfunction prcmu_set_power_statefunction prcmu_get_power_state_resultfunction prcmu_set_epodfunction prcmu_enable_wakeupsfunction prcmu_disable_wakeupsfunction prcmu_config_abb_event_readoutfunction prcmu_get_abb_event_bufferfunction prcmu_request_clockfunction prcmu_get_ddr_oppfunction prcmu_set_arm_oppfunction prcmu_get_arm_oppfunction prcmu_set_ape_oppfunction prcmu_get_ape_oppfunction prcmu_request_ape_opp_100_voltagefunction prcmu_system_resetfunction prcmu_get_reset_codefunction prcmu_modem_resetfunction prcmu_is_ac_wake_requestedfunction prcmu_config_esram0_deep_sleepfunction prcmu_config_hotdogfunction prcmu_config_hotmonfunction prcmu_start_temp_sensefunction prcmu_stop_temp_sensefunction prcmu_readfunction prcmu_writefunction prcmu_write_maskedfunction prcmu_enable_a9wdogfunction prcmu_disable_a9wdogfunction prcmu_kick_a9wdogfunction prcmu_load_a9wdogfunction prcmu_config_a9wdogfunction prcmu_early_initfunction prcmu_set_epodfunction prcmu_enable_wakeupsfunction prcmu_abb_writefunction prcmu_abb_write_maskedfunction prcmu_config_clkoutfunction prcmu_request_clockfunction prcmu_round_clock_ratefunction prcmu_set_clock_rate
Annotated Snippet
struct prcmu_fw_version {
u32 project; /* Notice, project shifted with 8 on ux540 */
u8 api_version;
u8 func_version;
u8 errata;
char project_name[PRCMU_FW_PROJECT_NAME_LEN];
};
#include <linux/mfd/db8500-prcmu.h>
#if defined(CONFIG_UX500_SOC_DB8500)
static inline void __init prcmu_early_init(void)
{
db8500_prcmu_early_init();
}
static inline int prcmu_set_power_state(u8 state, bool keep_ulp_clk,
bool keep_ap_pll)
{
return db8500_prcmu_set_power_state(state, keep_ulp_clk,
keep_ap_pll);
}
static inline u8 prcmu_get_power_state_result(void)
{
return db8500_prcmu_get_power_state_result();
}
static inline int prcmu_set_epod(u16 epod_id, u8 epod_state)
{
return db8500_prcmu_set_epod(epod_id, epod_state);
}
static inline void prcmu_enable_wakeups(u32 wakeups)
{
db8500_prcmu_enable_wakeups(wakeups);
}
static inline void prcmu_disable_wakeups(void)
{
prcmu_enable_wakeups(0);
}
static inline void prcmu_config_abb_event_readout(u32 abb_events)
{
db8500_prcmu_config_abb_event_readout(abb_events);
}
static inline void prcmu_get_abb_event_buffer(void __iomem **buf)
{
db8500_prcmu_get_abb_event_buffer(buf);
}
int prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size);
int prcmu_abb_write(u8 slave, u8 reg, u8 *value, u8 size);
int prcmu_abb_write_masked(u8 slave, u8 reg, u8 *value, u8 *mask, u8 size);
int prcmu_config_clkout(u8 clkout, u8 source, u8 div);
static inline int prcmu_request_clock(u8 clock, bool enable)
{
return db8500_prcmu_request_clock(clock, enable);
}
unsigned long prcmu_clock_rate(u8 clock);
long prcmu_round_clock_rate(u8 clock, unsigned long rate);
int prcmu_set_clock_rate(u8 clock, unsigned long rate);
static inline int prcmu_get_ddr_opp(void)
{
return db8500_prcmu_get_ddr_opp();
}
static inline int prcmu_set_arm_opp(u8 opp)
{
return db8500_prcmu_set_arm_opp(opp);
}
static inline int prcmu_get_arm_opp(void)
{
return db8500_prcmu_get_arm_opp();
}
static inline int prcmu_set_ape_opp(u8 opp)
{
return db8500_prcmu_set_ape_opp(opp);
}
static inline int prcmu_get_ape_opp(void)
Annotation
- Immediate include surface: `linux/interrupt.h`, `linux/notifier.h`, `linux/err.h`, `dt-bindings/mfd/dbx500-prcmu.h`, `linux/mfd/db8500-prcmu.h`.
- Detected declarations: `struct prcmu_fw_version`, `enum prcmu_wakeup_index`, `enum prcmu_wdog_id`, `enum ape_opp`, `enum arm_opp`, `enum ddr_opp`, `enum ddr_pwrst`, `function prcmu_early_init`, `function prcmu_set_power_state`, `function prcmu_get_power_state_result`.
- Atlas domain: Core OS / Core Kernel Interface.
- 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.