目录

瑞芯微-RK3568设备树文件整理

瑞芯微 | RK3568设备树文件整理

平台

soc  : rk3568   
board: EVB1-DDR4-V10
软  件:Android 11
Linux:4.19.232

一、前言

在RK3568平台上进行Android开发时,了解设备树源文件(Device Tree Source,DTS)对于理解硬件资源分配和配置非常重要。DTS文件描述了设备的硬件结构和属性,包括处理器、外设和中断等信息。本文将详细介绍在RK3568平台上使用DTS文件进行硬件资源配置的过程,并提供相应的源代码示例。
瑞芯微平台设备树文件通常位于sdk-xxxxxx/kernel/arch/arm64/boot/dts/rockchip目录下:

https://i-blog.csdnimg.cn/direct/70eb095e17144808b29587f6d08f0864.png

rk3568.dtsi
rk3568-evb.dtsi 
rk3568-pinctrl.dtsi
rk3568-evb1-ddr4-v10.dtsi 

这个几个文件之间关系:

  • rk3568.dtsi 芯片说明书(SoC 自带资源)
  • rk3568-evb.dtsi 官方评估板的参考设计
  • rk3568-pinctrl.dtsi 描述各个外设的引脚配置
  • rk3568-evb1-ddr4-v10.dtsi 底板的硬件电路原理图映射

设备树最终文件xxxx .dtb 的生成通常遵循这样的 include 关系:

rk3568-evb1-ddr4-v10.dts   →   include "rk3568-evb1-ddr4-v10.dtsi"
                                 →   include "rk3568-evb.dtsi"
                                     →   include "rk3568.dtsi"

最终合并后,编译生成的 rk3568-evb1-ddr4-v10.dtb 就描述了完整硬件,可以烧录到板子中了。

二、设备树文件

1. rk3568.dtsi

这是 SoC 级别的设备树,该文件主要是对 RK3568 SoC内部的硬件资源做描述,任何基于 RK3568 的开发板设备树,最终都会包含它。

硬件资源:

  •  CPU、GIC(中断控制器)、timer
  •  UART/I2C/SPI/USB/PCIe/GMAC/DSI/CSI/GPIO/MMC/SATA 等控制器节点
  •  内部电源域、时钟树、复位控制器
  •  基础 pinctrl 配置(但不包含具体板子引脚复用)

https://i-blog.csdnimg.cn/direct/4c95bd000b2b4401aff7385a6568eb95.png

2. rk3568-evb.dtsi

这是通用 EVB(Evaluation Board,评估板)级别的设备树。

在 rk3568.dtsi 的基础上,补充了评估板通用的SoC硬件资源与外设连接关系:

  • 哪些 GPIO 口接了 LED、按键
  • 哪些 I2C 控制器挂了电源管理芯片 (PMIC)、传感器
  • 哪个 UART 做调试串口
  • 哪些接口默认启用(比如 SD 卡、eMMC、SPI-NOR)

https://i-blog.csdnimg.cn/direct/c9ec40b4a2e24c40a3408b8ed1c092d9.png

3. rk3568-pinctrl.dtsi

RK芯片的设备树⼀般把pinctrl节点放在soc.dtsi,例如rk3568.dtsi,⼀般位于最后⼀个节点。

该节点主要描述了rk3568 gpio控制器gpio0~gpio4详细信息。

https://i-blog.csdnimg.cn/direct/27122df9e04c430e97f857253af69f15.png

而文件rk3568-pinctrl.dtsi则详细描述了公板对各个外设引脚配置信息,

引用了父节点pinctrl。

https://i-blog.csdnimg.cn/direct/bd1df9eb1a11411896224b22f7482e57.png

4. rk3568-evb1-ddr4-v10.dtsi

这是瑞芯微提供的公板硬件信息的板级设备树。

在 rk3568-evb.dtsi 的基础上,进一步补充/覆盖:

  • 基于 i2c总线从设备信息(从设备地址,连接到哪个i2c控制器)
  • 存储器配置(比如 DDR4,容量,频率)
  • 电源管理细节(PMIC 的型号、LDO/BUCK 的电压)
  • 板载外设的具体型号(比如 LCD 面板、触摸屏、摄像头模组)
  • 针对厂商开发板的 GPIO/pinctrl 复用(哪些引脚连了什么)
  • 调试开关(比如默认启用 UART2 还是 UART4)

还有csi、dsi、gmac、mdio、sata等控制器所连接的外设信息。

换句话说,这个文件就是“某个厂商某个板子的具体硬件描述”,对应 datasheet 里的原理图。
https://i-blog.csdnimg.cn/direct/6232985877594e5ab9ed310d2885adf3.png

其他厂家往往会基于瑞芯微的SoC定制自己的评估版,比如正点原子的atk-3568开发板,

具体厂商/具体硬件版本的板级设备树,对应的文件如下:

 rk3568-atk-evb1-ddr4-v10.dtsi

然后修改同级目录的Makefile即可。
https://i-blog.csdnimg.cn/direct/dfb8957d52d34e01b7433af0cdb13aae.png

三、举例

例1 摄像头ov13850

比如我们有一个摄像头ov13850,cpu通过i2c对它进行配置。
所以他需要执行父节点i2c4,
同时还要通过节点 remote-endpoint 与对应的mipi控制器csi2-dph0产生联系
https://i-blog.csdnimg.cn/direct/2a9a07fc70fe4f58bfcc45407ac1b076.png

例2 音频编解码芯片rk809

该芯片集成在rk3568 SoC内部的rk809内部,所以瑞芯微将该芯片信息放置在rk3568-evb.dtsi
该芯片是语音编解码芯片,通过i2s总线连接到i2s控制器i2s1_8ch

同时它的主时钟连接到引脚gpio1的A2,所以该引脚描述信息通过属性pinctrl-0指定,信息描述位于文件rockchip-pinconf.dtsi

https://i-blog.csdnimg.cn/direct/ffe8092d26bd4ebc854054dc62d71058.png

更多资料获取

一口君将所有rk3568的camera原创文章整理成pdf文档,
https://i-blog.csdnimg.cn/direct/b01b2b35a35f430280e1bb9462d6dd57.webp

https://i-blog.csdnimg.cn/direct/84557c258758454c8d16ed8201b16196.webp

转发文章,并回复关键字rxw,获取pdf文档