Linux 添加dts支持,Linux加载DTS设备节点的过程(以高通8974平台为例) .

本文详细介绍了Linux如何通过DTS加载高通8974平台的设备节点,包括平台总线的注册过程和使用DTS注册i2c设备的步骤。DTS帮助去除内核中的冗余代码,使得硬件细节直接传递给Linux。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DTS是Device Tree Source的缩写,用来描述设备的硬件细节。在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码,相当多数的代码只是在描述板级细节,而这些板级细节对于内核来讲,不过是垃圾,如板上的platform设备、resource、i2c_board_info、spi_board_info以及各种硬件的platform_data。为了去掉这些垃圾代码,Linux采用DTS这种新的数据结构来描述硬件设备。采用Device Tree后,许多硬件的细节可以直接透过它传递给Linux,而不再需要在kernel中进行大量的冗余编码。

有关DTS的语法格式,网上有很多资料,这里我就不再赘述了。本文主要讲Linux是怎样加载DTS设备节点的流程。下面以高通QCT8974平台(Linux内核)为例进行讲解:

(1)使用DTS注册平台总线的过程

在讲注册过程之前,我们先看看DTS是怎样描述平台总线结构的,以i2c总线为例:

/ {

model = "Qualcomm MSM 8974";

compatible = "qcom,msm8974";

interrupt-parent = ;

aliases {

spi0 = &spi_0;

spi7 = &spi_7;

sdhc1 = &sdhc_1; /* SDC1 eMMC slot */

sdhc2 = &sdhc_2; /* SDC2 SD card slot */

sdhc3 = &s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值