drivers/pinctrl 源码目录与控制器索引

drivers/pinctrl 源码目录与控制器索引

Core文件

文件 作用
core.c controller/consumer/state/map
pinmux.c function/group和mux ownership
pinconf.c pin/group config
pinconf-generic.c 通用参数、DT解析、debug
devicetree.c pinctrl-N到 maps
pinctrl-utils.c map内存辅助

Rockchip

  • pinctrl-rockchip.c:SoC pinmux/pinconf;
  • pinctrl-rockchip.h:bank/register/SoC结构;
  • pinctrl-rk805.c
  • pinctrl-rk806.c

更准确地说,pinctrl-rockchip.c实现SoC pinmux/pinconf,GPIO data/IRQ/debounce位于目录外的 drivers/gpio/gpio-rockchip.c。RK3588没有单独 pinctrl-rk3588.c,pinctrl数据表和算法内嵌于通用Rockchip文件。

其它平台

目录约500文件,包括 Qualcomm、Samsung、Tegra、Renesas、Sunxi、Intel、STM32等。它们不参与 RK3588构建。

Makefile

1
2
3
4
5
6
core.o + pinctrl-utils.o
PINMUX -> pinmux.o
PINCONF -> pinconf.o
GENERIC_PINCONF -> pinconf-generic.o
OF -> devicetree.o
PINCTRL_ROCKCHIP -> pinctrl-rockchip.o

Kconfig

PINCTRL_ROCKCHIP

  • depends ARCH_ROCKCHIP/COMPILE_TEST;
  • depends OF;
  • select GPIOLIB;
  • select PINMUX;
  • select GENERIC_PINCONF;
  • select GENERIC_IRQ_CHIP;
  • select MFD_SYSCON;
  • select OF_GPIO;
  • default ARCH_ROCKCHIP。

主 defconfig只显式出现 RK805/RK806 pinctrl,但 SoC pinctrl由 ARCH_ROCKCHIP默认选中,不能因文本未出现就判断关闭。

DT文件

  • controller binding:rockchip,pinctrl.yaml
  • GPIO bank binding:rockchip,gpio-bank.yaml
  • pin definitions:rk3588s-pinctrl.dtsi
  • config nodes通常来自公共 Rockchip pinctrl include。

Binding差异

当前 binding对 mux字段声明最大10,但 rk3588s-pinctrl.dtsi中存在 mux 11/12。说明该厂商树的 schema与RK3588数据未完全同步;应以驱动和芯片 TRM验证,同时修订 schema,而非删除有效组。

文章互动

阅读 --

留言

0 条留言

正在加载留言…