【驱动】【设备树】一个简单的系统级芯片(SoC)的设备树节点

简介: 【驱动】【设备树】一个简单的系统级芯片(SoC)的设备树节点

一个简单的系统级芯片(SoC)的设备树节点

`学习设备树

设备树(Device Tree)源代码

soc {
    compatible = "simple-bus";
    #address-cells = <1>;
    #size-cells = <1>;
    ranges = <0x0 0xe0000000 0x00100000>;

    serial@4600 {
        device_type = "serial";
        compatible = "ns16550";
        reg = <0x4600 0x100>;
        clock-frequency = <0>;
        interrupts = <0xA 0x8>;
        interrupt-parent = <&ipic>;
    };
};

节点解释

1、soc 节点

  • compatible = “simple-bus”;
  • 表示该节点是一个简单总线,通常用于描述一个没有复杂总线功能的 SoC。
  • #address-cells = <1>;
  • 指定该节点下的子节点地址的单元数量为 1。这意味着每个子节点的地址由一个单元(32 位)描述。
  • #size-cells = <1>;
  • 指定该节点下的子节点大小的单元数量为 1。这意味着每个子节点的大小由一个单元(32 位)描述。
  • ranges = <0x0 0xe0000000 0x00100000>;

          描述设备树中的地址范围映射。格式为 <子设备总线地址 映射到父总线地址 长度>。在这个例子中,设备的地址空间从 0xe0000000 开始,长度为 0x00100000(1 MB)。即子总线上的地址范围从 0x0 开始,映射到父总线上的地址范围从 0xe0000000 开始,长度为 0x00100000(1 MB)。


2、serial@4600 节点

  • device_type = “serial”;
  • 指定该节点描述的是一个串行设备。
  • compatible = “ns16550”;
  • 指定该设备与 ns16550 兼容。ns16550 是一个常见的 UART(通用异步收发传输器)型号。
  • reg = <0x4600 0x100>;
  • 描述设备的寄存器地址和长度。这里,寄存器基地址为 0x4600,寄存器长度为 0x100(256 字节)。
  • clock-frequency = <0>;
  • 描述设备的时钟频率。这里设置为 0,可能表示设备的时钟频率未指定或不适用。
  • interrupts = <0xA 0x8>;
  • 描述设备的中断信息。格式为 <中断编号 中断类型>。0xA 是中断编号,0x8 可能表示中断触发类型或中断优先级。
  • interrupt-parent = <&ipic>;
  • 指定中断控制器的 phandle。&ipic 表示中断控制器的设备树节点句柄(phandle),表明 serial@4600 节点的中断由该中断控制器管理。

总结

这段设备树代码描述了一个 SoC 节点,其中包含一个串行设备(serial@4600)。该设备使用 ns16550 UART 控制器,与 simple-bus 兼容,并定义了寄存器的地址、时钟频率和中断信息。serial@4600 节点的中断由指定的中断控制器管理。


相关文章
|
6月前
|
Linux API C语言
设备树知识小全(十):由设备树引发的BSP和驱动变更
设备树知识小全(十):由设备树引发的BSP和驱动变更
89 0
|
6月前
|
传感器 芯片
PCF8574芯片介绍及驱动方法
PCF8574芯片介绍及驱动方法
377 0
|
11月前
|
供应链 芯片
一种LED驱动专用控制电路
一、基本概述 TM1620是一种LED(发光二极管显示器)驱动控制专用IC,内部集成有MCU数字接口、数据锁存 器、LED驱动等电路。本产品质量可靠、稳定性好、抗干扰能力强。主要适用于家电设备(智能热 水器、微波炉、洗衣机、空调、电磁炉)、机顶盒、电子称、智能电表等数码管或LED显示设备。 二、基本的特性说明 采用CMOS工艺 显示模式(8 段×6 位~10段×4位) 辉度调节电路(8 级占空比可调) 串行接口(CLK,STB,DIN) 振荡方式:内置RC振荡 内置上电复位电路 内置数据锁存电路 内置针对LED反偏漏电导致暗亮问题优化电路 抗干扰能力强 封装形式:S
|
6月前
|
存储 芯片
一种LED驱动专用控制电路方案
一、基本的概述 TM1651 是一种带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路,内部集成有MCU 数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。本产品性能优良,质量可靠。采用SOP16/DIP16的封装形式。 二、特性说明 采用功率CMOS 工艺 显示模式(7字段×4 位),支持共阳数码管输出 键扫描(7×1bit),增强型抗干扰按键识别电路 辉度调节电路(占空比 8 级可调) 串行接口(CLK,DIO) 振荡方式:内置RC 振荡(450KHz±5%) 内置上电复位电路 内置自动消隐电路 封装形式:DIP16/SOP16 三、具体的应用
|
Linux 芯片
Linux驱动分析之SPI设备
前面我们对SPI控制器驱动进行了分析,接下来来分析SPI设备驱动。我们以DS1302驱动作为分析对象。DS1302是一款RTC芯片,估计很多人在学单片机时用到过。RTC芯片算是比较简单的,也方便分析理解。
Linux驱动分析之SPI设备
|
缓存 Linux API
Linux驱动分析之Uart驱动架构
UART设备驱动可以使用tty驱动的框架来实现,但是因为串口之间有共性,所以Linux在tty接口上封装了一层(serial core)。后面我们再拿一篇文章来解释tty驱动,tty其实就是各种终端设备,串口其实也是终端设备。
Linux驱动分析之Uart驱动架构
|
存储 Linux 开发者
【Linux学习笔记】设备驱动模型详解——总线、设备、驱动和类
设备驱动是计算机系统中的重要组成部分,它们允许操作系统与硬件交互。设备驱动模型是一种通用的抽象框架,用于描述操作系统如何管理硬件设备。这里我们将介绍设备驱动模型中的四个关键概念:总线、设备、驱动和类。
LED模板驱动程序的改造:总线设备驱动模型
LED模板驱动程序的改造:总线设备驱动模型
110 0
LED模板驱动程序的改造:设备树
LED模板驱动程序的改造:设备树
120 0
|
Linux 开发工具 git
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十)LED模板驱动程序的改造:总线设备驱动模型
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十)LED模板驱动程序的改造:总线设备驱动模型
229 1
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十)LED模板驱动程序的改造:总线设备驱动模型