devicetree編集メモ
dtsファイルを修正する際には
dtsファイルは、上から下に向けて読み込まれていき、同じプロパティ名では上書きされていきます。
例
&emac1 {
status = "okay";
status = "disable";
}
と書くと、statusは最後に書いたstatus = “disable”が有効となる。
dtsファイルでは先頭に、
#include “hogehoge.dtsi”
と書かれている際は、まずそのファイルの定義が設定される。
例
hogehoge.dtsi
/ {
mmc2: mmc@4022000 {
compatible = "allwinner,sun50i-h616-emmc",
"allwinner,sun50i-a100-emmc";
reg = <0x04022000 0x1000>;
clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
clock-names = "ahb", "mmc";
status = "disabled";
cap-sd-highspeed;
cap-mmc-highspeed;
#address-cells = <1>;
#size-cells = <0>;
};
};
foobar.dts
/dts-v1/;
#include "hogehoge.dtsi"
&mmc2 {
interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&mmc2_pins>;
status = "okay";
};
と書いて、dtbファイルへ変換すると、
mmc2: mmc@4022000 {
compatible = "allwinner,sun50i-h616-emmc",
"allwinner,sun50i-a100-emmc";
reg = <0x04022000 0x1000>;
clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
clock-names = "ahb", "mmc";
interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&mmc2_pins>;
status = "okay";
cap-sd-highspeed;
cap-mmc-highspeed;
#address-cells = <1>;
#size-cells = <0>;
となり、未定義のプロパティ名は追加され、定義済みのプロパティ名は値が更新される。
プロパティを削除したい場合
dtsiファイルで、
status = “disabled”;
となっていても、
dtsファイルで、
status = “okay”;
となっていれば、dtbファイルは、
status = “okay”;
となるが、「cap-sd-highspeed;」を削除したい場合は、
/delete-property/ プロパティ名;
を使用する。
foobar.dtsで
&mmc2 {
interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&mmc2_pins>;
status = "okay";
/delete-property/ cap-sd-highspeed;
};
と書けば、以下の様にdtbファイルでは「cap-sd-highspeed」は削除される
mmc2: mmc@4022000 {
compatible = "allwinner,sun50i-h616-emmc",
"allwinner,sun50i-a100-emmc";
reg = <0x04022000 0x1000>;
clocks = <&ccu CLK_BUS_MMC2>, <&ccu CLK_MMC2>;
clock-names = "ahb", "mmc";
interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&mmc2_pins>;
status = "okay";
cap-mmc-highspeed;
#address-cells = <1>;
#size-cells = <0>;
ノードを削除したい場合
/delete-node/ ノード名;
を利用する。
/delete-node/ mmc2;
と書けば、ノード名 mmc2が削除される(mmc2内で定義された全てのプロパティが削除される)
devicetree編集メモ.txt · 最終更新: by admin
