我想删除overlay dts上的设备节点,但它不起作用。
示例代码如下:
a.dtsi:
&soc {
gpio_keys {
compatible = "gpio-keys";
label = "gpio-keys";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&gpio_key_active>;
pinctrl-1 = <&gpio_key_suspend>;
vol_up {
label = "volume_up";
gpios = <&tlmm 85 GPIO_ACTIVE_LOW>;
linux,input-type = <1>;
linux,code = <115>;
gpio-key,wakeup;
debounce-interval = <15>;
linux,can-disable;
};
};
};
b.dts
#include "a.dtsi"
&soc {
/delete-node/ gpio_keys;
};
我想删除 b.dts 上的 gpio_keys 节点。但这不起作用。
有哪位大佬能解释一下原因吗
我刚刚使用您所做的确切语法实现了它,基于此处所述:设备树源未记录
因此,只需添加我自己的 dts(如下所示),我就能够删除不需要的节点,并实现我想要的配置。
#include "am335x-nand-eeprom-rtc.dtsi"
#include "am335x-pcm-953.dtsi"
//Remove ecap node
/delete-node/ &ecap0_pins;
/delete-node/ &ecap0;
// Remove touchscreen related nodes
/delete-node/ &i2c_ts;
/delete-node/ &ts_irq_pin;
/delete-node/ &backlight;
/delete-node/ &lcd_pins;
/delete-node/ &lcdc;
/delete-node/ &lcd_3v3;
/delete-node/ &panel;
&sound {
status = "disabled";
};
根据下面的来源,这是不可能的:
和/delete-node/
指令仅由dtc编译器在单个编译中使用。/delete-prop/
devicetree blob 格式中没有任何内容可以表示删除属性或节点的概念。
您无法删除覆盖 dtb 中的属性或节点。