linux 设备树删除不想要的节点

一:删除节点

通常DTS中包含了多个平台的描述文件,且多个平台会共享一些通用的dtsi。这些dtsi的节点对于指定的平台来说,其节点未必全部需要,因此就需要将不需要的节点进行裁剪或者DISABLE。节点删除就是实现这个作用。

语法如下: 
/delete-node/ 节点名;

例如在draz7.dtsi里面定义了rtc的节点,但是在自己的产品中不想使用这个RTC,而使用其他的rtc:

draz7.dtsi 相关内容如下:

 1 / {
 2     ...
 3     ocp {
 4         ...
 5         rtc {
 6             compatible = "ti,am3352-rtc";
 7             reg = <0x48838000 0x100>;
 8             interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>,
 9                      <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>;
10             ti,hwmods = "rtcss";
11             clocks = <&sys_32k_ck>;
12             property1 = <1>;
13             property2;
14         };
15     };
16 };

在am452x-xxx.dts,中删除:
#include "draz7.dtsi"
 
/ {
    ...
    ocp {
        /delete-node/ rtc;
    };
};

二:删除属性

1 #include "draz7.dtsi"
2 ...
3  
4 &rtc {
5     /delete-property/ property1;
6     /delete-property/ property2;
7 };
原文地址:https://www.cnblogs.com/zongfanstudy/p/13595224.html