pinctrl 子系统
# 挂载 debug 文件系统
mount -t debugfs debugfs /sys/kernel/debug
cd /sys/kernel/debug/pinctrl/1c20800.pinctrl
ls
cat pins # 查看所有引脚
cat pinmux-functions # 查看所有引脚功能
cat pinmux-pins # 查看引脚复用情况
pins 单个引脚信息
pingroups 引脚的组信息
pinmux-pins 单个引脚的复用信息
pinmux-functions function下的group(支持该function的group)
pinconf-pins 单个引脚的配置
pinconf-groups 引脚组的配置
pinconf-config 可以通过写它修改指定设备、指定状态下、指定(组)引脚的config值
可以实现一个虚拟的 pinctrl 以加深理解
GPIO 子系统
cd /sys/class/gpio
# 通过 pinctrl 查询可知编号, 比如这里 1 --> PA1
echo 1 > export
echo out > gpio0/direction
echo 1 > gpio0/value
对设备的理解
在 /sys/devices 存放所有设备(已经匹配驱动的?), 与之相对应的 /proc/devices 显示了所有分配有主设备号的设备
该目录下有 platform software system virtual
platform 平台设备, 注册设备时使用平台设备注册,或者在设备树中注册设备,但是被平台驱动匹配到, 因而挂在平台总线上
system 系统设备
virtual 虚拟设备?
/sys/firmware 存放设备树信息
比如查看设备树顶层信息, 文件为属性, 文件夹为子节点
ls /sys/firmware/devicetree/base/
/sys/bus 包含所有设备总线, 各个设备总线一边是驱动, 一边是设备
/sys/modules 包含所有模块
- 直接查看设备树
dtc -I fs /proc/device-tree
不过需要下载device-tree-compiler
参数说的很明白:-I, --in-format <arg> Input formats are: dts - device tree source text dtb - device tree blob fs - /proc/device-tree style directory
网友评论