This is an old revision of the document!
We can use DT overlays to enable/disable or change configuration for peripherals without recompiling the DT kernel source code.
Android Version | DT overlays folder | DT overlays list variable | DT overlays config file | |
---|---|---|---|---|
Edge2 | 14.0 | /vendor/custom/boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlays | fdt_overlays | /vendor/custom/boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlay.env |
VIM4 | 11.0,14.0 | /mnt/vendor/odm_ext/custom/overlays/kvim4.dtb.overlays | fdt_overlays | /mnt/vendor/odm_ext/custom/overlays/kvim4.dtb.overlays/kvim4.dtb.overlay.env |
DT-overlays dtbo
directory: /vendor/custom/boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlays
khadas@Khadas:~$ ls vendor/custom/boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlays
edge2-io-spi.dtbo
DT-overlays configuration file: /mnt/vendor/odm_ext/custom/overlays/kvim4.dtb.overlays/kvim4.dtb.overlay.env
Enable:
$ echo fdt_overlays=edge2-io-spi > /vendor/custom/boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlay.env
$ cat rk3588s-khadas-edge2.dtb.overlay.env
fdt_overlays=edge2-io-spi
Disable:
$ echo fdt_overlays= > /vendor/custom/boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlay.env
$ cat rk3588s-khadas-edge2.dtb.overlay.env
fdt_overlays=
DT-overlays dtbo
directory: /mnt/vendor/odm_ext/custom/overlays/kvim4.dtb.overlays
.
khadas@Khadas:~$ ls -1 /mnt/vendor/odm_ext/custom/overlays/kvim4.dtb.overlays
i2s.dtbo
pwm_f.dtbo
spdifout.dtbo
uart_e.dtbo
DT-overlays configuration file: /mnt/vendor/odm_ext/custom/overlays/kvim4.dtb.overlay.env
Enable:
$ echo fdt_overlays=i2s > /mnt/vendor/odm_ext/custom/overlays/kvim4.dtb.overlay.env
$ cat kvim4.dtb.overlay.env
fdt_overlays=i2s
Disable:
$ echo fdt_overlays= > /mnt/vendor/odm_ext/custom/overlays/kvim4.dtb.overlay.env
$ cat kvim4.dtb.overlay.env
fdt_overlays=
You need to edit the DT overlays configuration file and add custom DT overlays dtbo
files to special folder.
There are some preparations steps for DT overlays dtbo
files, you can also add custom DT overlays.
Basic DT overlay source example:
/dts-v1/; /plugin/; / { fragment@0 { target = <&i2c3>; __overlay__ { status = "disabled"; }; }; };
dtc -I dts -O dtb -o example.dtbo example.dts
Need reboot board to take effect.