This is an old revision of the document!
We can use DT overlays to enable or disable the peripherals without recompiling the kernel source code.
| DT Overlays Directory | DT Overlays Node | DT Overlays Configuration File | |
|---|---|---|---|
| VIM1 | /boot/dtb/overlays/kvim | overlays | /boot/env.txt |
| VIM2 | /boot/dtb/overlays/kvim2 | ||
| VIM3 | /boot/dtb/overlays/kvim3 | ||
| VIM3L | /boot/dtb/overlays/kvim3l | ||
| VIM1S | /boot/dtb/amlogic/kvim1s.dtb.overlays | fdt_overlays | /boot/dtb/amlogic/kvim1s.dtb.overlay.env |
| VIM4 | /boot/dtb/amlogic/kvim4.dtb.overlays | /boot/dtb/amlogic/kvim4.dtb.overlay.env | |
| Edge2 | /boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlays | /boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlay.env | |
| Edge1 | /boot/dtb/rockchip/overlays/caption | overlays | /boot/env.txt |
| /boot/dtb/rockchip/overlays/edgev |
This page takes VIM3 as an example, which can be different from yours but the structure is the same.
The dtbo files are stored in directory /boot/dtb/overlays/#BOARD#:
khadas@Khadas:~$ ll /boot/dtb/overlays/kvim3 total 40 drwxr-xr-x 2 root root 4096 Jan 29 11:13 ./ drwxr-xr-x 6 root root 4096 Jan 29 11:13 ../ -rw-r--r-- 1 root root 352 Jan 29 09:35 disable-ts050.dtbo -rw-r--r-- 1 root root 223 Jan 29 09:35 i2c3.dtbo -rw-r--r-- 1 root root 277 Jan 29 09:35 m2x-eth.dtbo -rw-r--r-- 1 root root 472 Jan 29 09:35 onewire.dtbo -rw-r--r-- 1 root root 1072 Jan 29 09:35 os08a10.dtbo -rw-r--r-- 1 root root 345 Jan 29 09:35 pwm_f.dtbo -rw-r--r-- 1 root root 447 Jan 29 09:35 spi1.dtbo -rw-r--r-- 1 root root 225 Jan 29 09:35 uart3.dtbo
#BOARD# should be vim1, vim2, vim3, vim3l or edge.
The releated dtbo configuration file is /boot/env.txt.
# Device Tree Overlays # uart3 -- Enable UART3 (uart_C, GPIO Header PIN15 & PIN16) # pwm_f -- Enable PWM_F (GPIO Header PIN35) # i2c3 -- Enable i2c3 (GPIO Header PIN22 & PIN23) # spi1 -- Enable SPI1 (GPIO Header PIN15 & PIN16 & PIN35 & PIN37), pwm_f need to be removed # os08a10 -- Enable OS08A10 Camera # onewire -- Enable onewire bus (PIO Header PIN15) # disable-ts050 -- Disable TS050 LCD # m2x-eth -- Enable M2X 100M ethernet. Note: 1G ethernet will be disabled. # otg-device -- Enable USB OTG Device overlays=uart3 pwm_f i2c3 os08a10
uart3 pwm_f i2c3 os08a10 are enabled by default.
pwm_f you can remove pwm_f in overlays node.onewire, you can add onewire to overlays node.
The dtbo files are stored in directory /boot/dtb/amlogic/kvim4.dtb.overlays:
khadas@Khadas:~$ ls -al /boot/dtb/amlogic/kvim4.dtb.overlays/ total 28 drwxr-xr-x 2 root root 4096 Jul 6 14:55 . drwxr-xr-x 3 root root 4096 Jul 6 14:55 .. -rwxr-xr-x 1 root root 462 Jul 6 14:55 ext_board.dtbo -rwxr-xr-x 1 root root 223 Jul 6 14:55 i2cm_a.dtbo -rwxr-xr-x 1 root root 223 Jul 6 14:55 i2cm_f.dtbo -rwxr-xr-x 1 root root 225 Jul 6 14:55 pwm_f.dtbo -rwxr-xr-x 1 root root 225 Jul 6 14:55 uart_e.dtbo
The releated dtbo configuration file is /boot/dtb/amlogic/kvim4.dtb.overlay.env.
The dtbo files are stored in directory /boot/dtb/amlogic/kvim1s.dtb.overlays:
khadas@Khadas:~$ ls -al /boot/dtb/amlogic/kvim1s.dtb.overlays/ total 28 drwxrwxr-x 2 root root 4096 Aug 19 09:21 ./ drwxr-xr-x 3 root root 4096 Aug 19 09:21 ../ -rw-rw-r-- 1 root root 223 Aug 12 10:59 i2cm_b.dtbo -rw-rw-r-- 1 root root 223 Aug 12 10:59 i2cm_e.dtbo -rw-rw-r-- 1 root root 345 Aug 12 10:59 pwm_f.dtbo -rw-rw-r-- 1 root root 225 Aug 12 10:59 uart_c.dtbo
The releated dtbo configuration file is /boot/dtb/amlogic/kvim1s.dtb.overlay.env.
The dtbo files are stored in directory /boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlays:
khadas@Khadas:~$ ls /boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlays mipi-panel.dtbo
The releated dtbo configuration file is /boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlay.env.
If you want to enable the peripherals, you can edit the dtbo configuration file and add the dtbo name to the node.
There are some preparations using DT overlays -dtbo files, you can also add custom DT overlays to enable or disable the peripherals.
For example:
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target = <&i2c3>;
__overlay__ {
status = "okay";
};
};
};
dtc -I dts -O dtb -o example.dtbo example.dts
/boot/dtb/overlays/BOARD /boot/dtb/amlogic/kvim4.dtb.overlays /boot/dtb/amlogic/kvim1s.dtb.overlays/boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlays
BOARD should be vim1, vim2, vim3, vim3l or edge.
Add example to the node
/boot/env.txt/boot/dtb/amlogic/kvim4.dtb.overlay.env/boot/dtb/amlogic/kvim4.dtb.overlay.env/boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlay.envNeed to reboot the board to take effect.