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

推荐订阅源

Engineering at Meta
Engineering at Meta
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
B
Blog
T
The Blog of Author Tim Ferriss
MyScale Blog
MyScale Blog
A
About on SuperTechFans
H
Heimdal Security Blog
AI
AI
F
Full Disclosure
The Last Watchdog
The Last Watchdog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
量子位
I
InfoQ
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
WordPress大学
WordPress大学
Hugging Face - Blog
Hugging Face - Blog
小众软件
小众软件
N
News and Events Feed by Topic
腾讯CDC
L
LINUX DO - 最新话题
Attack and Defense Labs
Attack and Defense Labs
Hacker News: Ask HN
Hacker News: Ask HN
Google Online Security Blog
Google Online Security Blog
博客园_首页
Forbes - Security
Forbes - Security
The Register - Security
The Register - Security
博客园 - 三生石上(FineUI控件)
PCI Perspectives
PCI Perspectives
V
Vulnerabilities – Threatpost
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Recent Commits to openclaw:main
Recent Commits to openclaw:main
L
LangChain Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
NISL@THU
NISL@THU
博客园 - Franky
Microsoft Security Blog
Microsoft Security Blog
J
Java Code Geeks
Simon Willison's Weblog
Simon Willison's Weblog
O
OpenAI News
H
Hacker News: Front Page
Project Zero
Project Zero
P
Privacy International News Feed
Cyberwarzone
Cyberwarzone
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
大猫的无限游戏
大猫的无限游戏
Application and Cybersecurity Blog
Application and Cybersecurity Blog

博客园 - 蓝天上的云℡

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文档。