arch/arm/mach-s3c/pm-core-s3c64xx.h
Source file repositories/reference/linux-study-clean/arch/arm/mach-s3c/pm-core-s3c64xx.h
File Facts
- System
- Linux kernel
- Corpus path
arch/arm/mach-s3c/pm-core-s3c64xx.h- Extension
.h- Size
- 1628 bytes
- Lines
- 68
- 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.
Dependency Surface
linux/serial_s3c.hlinux/delay.hregs-gpio.hregs-clock.hmap.h
Detected Declarations
function s3c_pm_debug_init_uartfunction s3c_pm_arch_stop_clocksfunction samsung_pm_saved_gpios
Annotated Snippet
#ifndef __MACH_S3C64XX_PM_CORE_H
#define __MACH_S3C64XX_PM_CORE_H __FILE__
#include <linux/serial_s3c.h>
#include <linux/delay.h>
#include "regs-gpio.h"
#include "regs-clock.h"
#include "map.h"
static inline void s3c_pm_debug_init_uart(void)
{
}
static inline void s3c_pm_arch_prepare_irqs(void)
{
/* VIC should have already been taken care of */
/* clear any pending EINT0 interrupts */
__raw_writel(__raw_readl(S3C64XX_EINT0PEND), S3C64XX_EINT0PEND);
}
static inline void s3c_pm_arch_stop_clocks(void)
{
}
static inline void s3c_pm_arch_show_resume_irqs(void)
{
}
/* make these defines, we currently do not have any need to change
* the IRQ wake controls depending on the CPU we are running on */
#ifdef CONFIG_PM_SLEEP
#define s3c_irqwake_eintallow ((1 << 28) - 1)
#define s3c_irqwake_intallow (~0)
#else
#define s3c_irqwake_eintallow 0
#define s3c_irqwake_intallow 0
#endif
static inline void s3c_pm_restored_gpios(void)
{
/* ensure sleep mode has been cleared from the system */
__raw_writel(0, S3C64XX_SLPEN);
}
static inline void samsung_pm_saved_gpios(void)
{
/* turn on the sleep mode and keep it there, as it seems that during
* suspend the xCON registers get re-set and thus you can end up with
* problems between going to sleep and resuming.
*/
__raw_writel(S3C64XX_SLPEN_USE_xSLP, S3C64XX_SLPEN);
}
#endif /* __MACH_S3C64XX_PM_CORE_H */
Annotation
- Immediate include surface: `linux/serial_s3c.h`, `linux/delay.h`, `regs-gpio.h`, `regs-clock.h`, `map.h`.
- Detected declarations: `function s3c_pm_debug_init_uart`, `function s3c_pm_arch_stop_clocks`, `function samsung_pm_saved_gpios`.
- 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.