设备树节点解析

gpio0: gpio@049a8000 {
    
    
		compatible = "snps,dw-apb-gpio";
		reg = <0x049a8000 0x400>;
		port0a: gpio-controller@0 {
    
    
			gpio-controller;
			#gpio-cells = <2>;
			snps,nr-gpios = <32>;
		};
};

这是一个描述特定硬件设备的设备树节点,这个硬件设备是一个名为"snps,dw-apb-gpio"的GPIO控制器。- gpio0: gpio@049a8000:这是该设备树节点的名字,并且标示了它的内存映射IO基地址为0x049a8000。

  • compatible = "snps,dw-apb-gpio":这声明了该硬件设备的类型,是一个"snps,dw-apb-gpio",与设备的驱动匹配关系由此来确定。

  • reg = <0x049a8000 0x400>:定义了硬件设备的物理基地址和寄存器范围,从0x049a8000开始,范围长度为0x400。

  • port0a: gpio-controller@0:定义了下级节点,代表了一个 GPIO 控制器端口。

  • gpio-controller:表示该设备是一个 GPIO 控制器。

  • #gpio-cells = <2>:表示了设备树描述GPIO设备时该使用的参数个数。常见的gpio-cells有两个参数,第一个参数表示GPIO在控制器的编号,第二个参数表示GPIO的电平状态。

  • snps,nr-gpios = <32>:表示有32个GPIO端口可用。

总的来说,这个设备树节点描述了一个 GPIO 控制器,该控制器被映射到物理地址0x049a8000,并且有32个GPIO端口。每一个 GPIO 在描述时需要两个参数,一个是GPIO编号,另一个是GPIO电平状态。

猜你喜欢

转载自blog.csdn.net/qq_41483419/article/details/132578783