惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 司徒正美
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
美团技术团队
WordPress大学
WordPress大学
罗磊的独立博客
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
MongoDB | Blog
MongoDB | Blog
J
Java Code Geeks
H
Hackread – Cybersecurity News, Data Breaches, AI and More
H
Help Net Security
S
SegmentFault 最新的问题
C
Check Point Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
腾讯CDC
Engineering at Meta
Engineering at Meta
The GitHub Blog
The GitHub Blog
F
Fortinet All Blogs
D
DataBreaches.Net
雷峰网
雷峰网
GbyAI
GbyAI
宝玉的分享
宝玉的分享

博客园 - 蓝天上的云℡

简洁低消耗字节内存池设计 ARM崩溃堆栈报错寄存器分析定位 ARM NEON&Thumb加速指令集 事件编程之eventfd 事件驱动编程模式之EventLoop syslog日志查看器GUI图形界面,支持Windows/Linux/Macos开箱即用 ERRNO链条分析 ARM AMBA总线之AXI系 Linux Kernel Init Bootstrap 内核初始化启动 Linux USB子系统之Gadget设备端驱动 远程调试桥接-网络-ADB-GDB 斐讯N1盒子安装飞牛FNOS NAS 安卓以太网链路检测 安卓原生开发-Recovery使用minui绘制图形 蓝牙音频协议——安卓开发 RKxx系列的RK628摄像头配置影响HDMI出图 usb储存之BOT/UAS内核驱动 现代操作系统-音频处理技术1 Linux驱动底层 Linux驱动适配I2C/SPI例子 模块编译的pr_debug Linux内核/GKI内核主线更新-usb网卡名称变更引出的BUG 为Kernel代码生成VSCODE索引,快速跳转 安卓开机时间/性能优化 Linux/Golang/glibC系统调用 SGDMA与普通DMA Linux内核源码-存储驱动之 QSPI Flash golang数据转换技巧
RK芯片平台GPIO控制
蓝天上的云℡ · 2026-04-03 · via 博客园 - 蓝天上的云℡

exam

rockchip,pins = <3 RK_PC5 RK_FUNC_GPIO &pcfg_pull_down>;
# and pcfg_pull_none

dts解析

# drivers/pinctrl/pinconf-generic.c
pinconf_generic_parse_dt_config(device_node *, pinctrl_dev *, unsigned long **, unsigned int *)

static const struct pinconf_generic_params dt_params[] 

image

中间层

# drivers/pinctrl/core.c
pinctrl_commit_state(pinctrl *, pinctrl_state *)
		case PIN_MAP_TYPE_CONFIGS_PIN:
		case PIN_MAP_TYPE_CONFIGS_GROUP:
			ret = pinconf_apply_setting(setting);
			break;

适配层跳转

# drivers/pinctrl/pinconf.c
const struct pinconf_ops *ops = pctldev->desc->confops;
ops->pin_config_set
# drivers/pinctrl/pinctrl-rockchip.c
rockchip_pinconf_set(pinctrl_dev *, unsigned int, unsigned long *, unsigned)
   => rockchip_set_pull
       =>  ctrl->pull_calc_reg

寄存器操作

# drivers/pinctrl/pinctrl-rockchip.c
# by dts compatible match
static struct rockchip_pin_ctrl rv1126b_pin_ctrl 

rv1126b_calc_pull_reg_and_bit(rockchip_pin_bank *, int, regmap **, int *, u8 *)

image

流程

dts配置上下拉/强度别名
别名会被解嵌套解析,最后被pinconf读取,最终调用到rk的pinctrl驱动,写入寄存器。寄存器值详见TRM文档。