include/linux/mfd/abx500/ab8500-sysctrl.h

Source file repositories/reference/linux-study-clean/include/linux/mfd/abx500/ab8500-sysctrl.h

File Facts

System
Linux kernel
Corpus path
include/linux/mfd/abx500/ab8500-sysctrl.h
Extension
.h
Size
11634 bytes
Lines
302
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.

Dependency Surface

Detected Declarations

Annotated Snippet

#ifndef __AB8500_SYSCTRL_H
#define __AB8500_SYSCTRL_H

#include <linux/bitops.h>

#ifdef CONFIG_AB8500_CORE

int ab8500_sysctrl_read(u16 reg, u8 *value);
int ab8500_sysctrl_write(u16 reg, u8 mask, u8 value);

#else

static inline int ab8500_sysctrl_read(u16 reg, u8 *value)
{
	return 0;
}

static inline int ab8500_sysctrl_write(u16 reg, u8 mask, u8 value)
{
	return 0;
}

#endif /* CONFIG_AB8500_CORE */

static inline int ab8500_sysctrl_set(u16 reg, u8 bits)
{
	return ab8500_sysctrl_write(reg, bits, bits);
}

static inline int ab8500_sysctrl_clear(u16 reg, u8 bits)
{
	return ab8500_sysctrl_write(reg, bits, 0);
}

/* Registers */
#define AB8500_TURNONSTATUS		0x100
#define AB8500_RESETSTATUS		0x101
#define AB8500_PONKEY1PRESSSTATUS	0x102
#define AB8500_SYSCLKREQSTATUS		0x142
#define AB8500_STW4500CTRL1		0x180
#define AB8500_STW4500CTRL2		0x181
#define AB8500_STW4500CTRL3		0x200
#define AB8500_MAINWDOGCTRL		0x201
#define AB8500_MAINWDOGTIMER		0x202
#define AB8500_LOWBAT			0x203
#define AB8500_BATTOK			0x204
#define AB8500_SYSCLKTIMER		0x205
#define AB8500_SMPSCLKCTRL		0x206
#define AB8500_SMPSCLKSEL1		0x207
#define AB8500_SMPSCLKSEL2		0x208
#define AB8500_SMPSCLKSEL3		0x209
#define AB8500_SYSULPCLKCONF		0x20A
#define AB8500_SYSULPCLKCTRL1		0x20B
#define AB8500_SYSCLKCTRL		0x20C
#define AB8500_SYSCLKREQ1VALID		0x20D
#define AB8500_SYSTEMCTRLSUP		0x20F
#define AB8500_SYSCLKREQ1RFCLKBUF	0x210
#define AB8500_SYSCLKREQ2RFCLKBUF	0x211
#define AB8500_SYSCLKREQ3RFCLKBUF	0x212
#define AB8500_SYSCLKREQ4RFCLKBUF	0x213
#define AB8500_SYSCLKREQ5RFCLKBUF	0x214
#define AB8500_SYSCLKREQ6RFCLKBUF	0x215
#define AB8500_SYSCLKREQ7RFCLKBUF	0x216
#define AB8500_SYSCLKREQ8RFCLKBUF	0x217
#define AB8500_DITHERCLKCTRL		0x220
#define AB8500_SWATCTRL			0x230
#define AB8500_HIQCLKCTRL		0x232
#define AB8500_VSIMSYSCLKCTRL		0x233
#define AB9540_SYSCLK12BUFCTRL		0x234
#define AB9540_SYSCLK12CONFCTRL		0x235
#define AB9540_SYSCLK12BUFCTRL2		0x236
#define AB9540_SYSCLK12BUF1VALID	0x237
#define AB9540_SYSCLK12BUF2VALID	0x238
#define AB9540_SYSCLK12BUF3VALID	0x239
#define AB9540_SYSCLK12BUF4VALID	0x23A

/* Bits */
#define AB8500_TURNONSTATUS_PORNVBAT BIT(0)
#define AB8500_TURNONSTATUS_PONKEY1DBF BIT(1)
#define AB8500_TURNONSTATUS_PONKEY2DBF BIT(2)
#define AB8500_TURNONSTATUS_RTCALARM BIT(3)
#define AB8500_TURNONSTATUS_MAINCHDET BIT(4)
#define AB8500_TURNONSTATUS_VBUSDET BIT(5)
#define AB8500_TURNONSTATUS_USBIDDETECT BIT(6)

#define AB8500_RESETSTATUS_RESETN4500NSTATUS BIT(0)
#define AB8500_RESETSTATUS_SWRESETN4500NSTATUS BIT(2)

#define AB8500_PONKEY1PRESSSTATUS_PONKEY1PRESSTIME_MASK 0x7F
#define AB8500_PONKEY1PRESSSTATUS_PONKEY1PRESSTIME_SHIFT 0

Annotation

Implementation Notes