深入探究MFD子系统与Syscon API
1. 技术背景与概述
随着设备集成度的不断提高,出现了由多个其他设备或IP组成、能实现特定功能的设备,即多功能设备(MFD,Multi-Function Devices)。从物理角度看,MFD是独立的设备;但从软件层面,它们以父子关系呈现,子设备为子功能单元。
MFD子系统用于处理这类设备,提供了注册设备到多个子系统、复用总线和寄存器访问、处理中断和时钟等功能。Syscon则用于在设备间共享内存区域,由于regmap能处理MMIO寄存器并管理内存访问的锁定,因此基于regmap构建syscon是自然之选。
1.1 技术要求
- C编程技能
- 对Linux设备驱动模型有深入了解
- Linux内核v4.19.X源码,可从 此处 获取
2. MFD子系统与Syscon API介绍
2.1 MFD概念
一些外设或硬件模块通过内置子设备展现多种功能,这些子设备由内核中的不同子系统处理。例如ADP5520,包含背光、键盘、LED和GPIO控制器等子设备,分别属于不同子系统。
MFD子系统定义在 include/linux/mfd/core.h ,实现于 drivers/mfd/mfd-core.c ,其具
超级会员免费看
订阅专栏 解锁全文
27

被折叠的 条评论
为什么被折叠?



