include/linux/mfd/idtRC38xxx_reg.h

Source file repositories/reference/linux-study-clean/include/linux/mfd/idtRC38xxx_reg.h

File Facts

System
Linux kernel
Corpus path
include/linux/mfd/idtRC38xxx_reg.h
Extension
.h
Size
6903 bytes
Lines
274
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

struct idtfc3_hw_param {
	u32 xtal_freq;
	u32 time_clk_freq;
};

struct idtfc3_fwrc {
	u8 hiaddr;
	u8 loaddr;
	u8 value;
	u8 reserved;
} __packed;

static inline void idtfc3_default_hw_param(struct idtfc3_hw_param *hw_param)
{
	hw_param->xtal_freq = 49152000;
	hw_param->time_clk_freq = 25000000;
}

static inline int idtfc3_set_hw_param(struct idtfc3_hw_param *hw_param,
				      u16 addr, u8 val)
{
	if (addr == XTAL_FREQ_ADDR)
		switch (val) {
		case FREQ_49_152M:
			hw_param->xtal_freq = 49152000;
			break;
		case FREQ_50M:
			hw_param->xtal_freq = 50000000;
			break;
		default:
			return -EINVAL;
		}
	else if (addr == TIME_CLK_FREQ_ADDR)
		switch (val) {
		case FREQ_25M:
			hw_param->time_clk_freq = 25000000;
			break;
		case FREQ_50M:
			hw_param->time_clk_freq = 50000000;
			break;
		case FREQ_100M:
			hw_param->time_clk_freq = 100000000;
			break;
		case FREQ_125M:
			hw_param->time_clk_freq = 125000000;
			break;
		case FREQ_250M:
			hw_param->time_clk_freq = 250000000;
			break;
		default:
			return -EINVAL;
		}
	else
		return -EFAULT;

	return 0;
}

#endif

Annotation

Implementation Notes