include/linux/mfd/db8500-prcmu.h
Source file repositories/reference/linux-study-clean/include/linux/mfd/db8500-prcmu.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/mfd/db8500-prcmu.h- Extension
.h- Size
- 21842 bytes
- Lines
- 749
- 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/bitops.h
Detected Declarations
struct prcmu_auto_pm_configenum stateenum ret_stateenum clk_armenum clk_genenum romcode_writeenum romcode_readenum ap_pwrstenum ap_pwrst_transenum hw_acc_stateenum ap_pwrsttr_statusenum dvfs_statenum sva_mmdsp_statenum sia_mmdsp_statenum mbox_to_arm_errenum hw_accenum cs_pwrmgtenum sia_sva_pwr_policyenum auto_enableenum prcmu_power_statusenum prcmu_auto_pm_policyfunction db8500_prcmu_early_initfunction prcmu_get_rc_p2afunction prcmu_get_xp70_current_statefunction prcmu_has_arm_maxoppfunction db8500_prcmu_set_ape_oppfunction db8500_prcmu_get_ape_oppfunction db8500_prcmu_request_ape_opp_100_voltagefunction prcmu_release_usb_wakeup_statefunction db8500_prcmu_get_ddr_oppfunction prcmu_configure_auto_pmfunction prcmu_config_clkoutfunction prcmu_set_clock_dividerfunction db8500_prcmu_config_hotdogfunction db8500_prcmu_config_hotmonfunction db8500_prcmu_start_temp_sensefunction db8500_prcmu_stop_temp_sensefunction prcmu_abb_readfunction prcmu_abb_writefunction prcmu_ac_wake_reqfunction prcmu_ac_sleep_reqfunction db8500_prcmu_get_power_state_resultfunction db8500_prcmu_enable_wakeupsfunction db8500_prcmu_request_clockfunction db8500_prcmu_config_esram0_deep_sleepfunction db8500_prcmu_config_abb_event_readoutfunction db8500_prcmu_config_a9wdogfunction db8500_prcmu_enable_a9wdog
Annotated Snippet
struct prcmu_auto_pm_config {
u8 sia_auto_pm_enable;
u8 sia_power_on;
u8 sia_policy;
u8 sva_auto_pm_enable;
u8 sva_power_on;
u8 sva_policy;
};
#ifdef CONFIG_MFD_DB8500_PRCMU
void db8500_prcmu_early_init(void);
int prcmu_set_rc_a2p(enum romcode_write);
enum romcode_read prcmu_get_rc_p2a(void);
enum ap_pwrst prcmu_get_xp70_current_state(void);
bool prcmu_has_arm_maxopp(void);
struct prcmu_fw_version *prcmu_get_fw_version(void);
int prcmu_release_usb_wakeup_state(void);
void prcmu_configure_auto_pm(struct prcmu_auto_pm_config *sleep,
struct prcmu_auto_pm_config *idle);
bool prcmu_is_auto_pm_enabled(void);
int prcmu_config_clkout(u8 clkout, u8 source, u8 div);
int prcmu_set_clock_divider(u8 clock, u8 divider);
int db8500_prcmu_config_hotdog(u8 threshold);
int db8500_prcmu_config_hotmon(u8 low, u8 high);
int db8500_prcmu_start_temp_sense(u16 cycles32k);
int db8500_prcmu_stop_temp_sense(void);
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_ac_wake_req(void);
void prcmu_ac_sleep_req(void);
void db8500_prcmu_modem_reset(void);
int db8500_prcmu_config_a9wdog(u8 num, bool sleep_auto_off);
int db8500_prcmu_enable_a9wdog(u8 id);
int db8500_prcmu_disable_a9wdog(u8 id);
int db8500_prcmu_kick_a9wdog(u8 id);
int db8500_prcmu_load_a9wdog(u8 id, u32 val);
void db8500_prcmu_system_reset(u16 reset_code);
int db8500_prcmu_set_power_state(u8 state, bool keep_ulp_clk, bool keep_ap_pll);
u8 db8500_prcmu_get_power_state_result(void);
void db8500_prcmu_enable_wakeups(u32 wakeups);
int db8500_prcmu_set_epod(u16 epod_id, u8 epod_state);
int db8500_prcmu_request_clock(u8 clock, bool enable);
void db8500_prcmu_config_abb_event_readout(u32 abb_events);
void db8500_prcmu_get_abb_event_buffer(void __iomem **buf);
int db8500_prcmu_config_esram0_deep_sleep(u8 state);
u16 db8500_prcmu_get_reset_code(void);
bool db8500_prcmu_is_ac_wake_requested(void);
int db8500_prcmu_set_arm_opp(u8 opp);
int db8500_prcmu_get_arm_opp(void);
int db8500_prcmu_set_ape_opp(u8 opp);
int db8500_prcmu_get_ape_opp(void);
int db8500_prcmu_request_ape_opp_100_voltage(bool enable);
int db8500_prcmu_get_ddr_opp(void);
u32 db8500_prcmu_read(unsigned int reg);
void db8500_prcmu_write(unsigned int reg, u32 value);
void db8500_prcmu_write_masked(unsigned int reg, u32 mask, u32 value);
#else /* !CONFIG_MFD_DB8500_PRCMU */
static inline void db8500_prcmu_early_init(void) {}
static inline int prcmu_set_rc_a2p(enum romcode_write code)
{
return 0;
}
static inline enum romcode_read prcmu_get_rc_p2a(void)
{
return INIT;
}
static inline enum ap_pwrst prcmu_get_xp70_current_state(void)
{
return AP_EXECUTE;
}
static inline bool prcmu_has_arm_maxopp(void)
{
return false;
}
static inline struct prcmu_fw_version *prcmu_get_fw_version(void)
{
return NULL;
Annotation
- Immediate include surface: `linux/interrupt.h`, `linux/bitops.h`.
- Detected declarations: `struct prcmu_auto_pm_config`, `enum state`, `enum ret_state`, `enum clk_arm`, `enum clk_gen`, `enum romcode_write`, `enum romcode_read`, `enum ap_pwrst`, `enum ap_pwrst_trans`, `enum hw_acc_state`.
- 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.