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.
DT-overlays dtbo
directory: /boot/dtb/overlays/BOARD
khadas@Khadas:~$ ls -1 /boot/dtb/overlays/kvim3
disable-ts050.dtbo
i2c3.dtbo
m2x-eth.dtbo
onewire.dtbo
os08a10.dtbo
pwm_f.dtbo
spi1.dtbo
uart3.dtbo
BOARD should be vim1
, vim2
, vim3
, vim3l
or edge
.
DT-overlays configuration file: /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
overlays
list variable value: uart3 pwm_f i2c3 os08a10
pwm_f
you can remove pwm_f
from overlays
list variableonewire
, you can add onewire
to overlays
list variable
DT-overlays dtbo
directory: /boot/dtb/amlogic/kvim4.dtb.overlays
khadas@Khadas:~$ ls -l1 /boot/dtb/amlogic/kvim4.dtb.overlays/
total 28
-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
DT-overlays configuration file: /boot/dtb/amlogic/kvim4.dtb.overlay.env
.
DT-overlays dtbo
directory: /boot/dtb/amlogic/kvim1s.dtb.overlays
khadas@Khadas:~$ ls -l1 /boot/dtb/amlogic/kvim1s.dtb.overlays/
total 28
-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
DT-overlays configuration file is /boot/dtb/amlogic/kvim1s.dtb.overlay.env
.
DT-overlays dtbo
directory: /boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlays
:
khadas@Khadas:~$ ls /boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlays
mipi-panel.dtbo
DT-overlays configuration file: /boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlay.env
Need 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 example:
/dts-v1/; /plugin/; / { fragment@0 { target = <&i2c3>; __overlay__ { status = "okay"; }; }; };
dtc -I dts -O dtb -o example.dtbo example.dts
/boot/dtb/amlogic/kvim4.dtb.overlays
/boot/dtb/amlogic/kvim1s.dtb.overlays
/boot/dtb/rockchip/rk3588s-khadas-edge2.dtb.overlays
/boot/dtb/overlays/BOARD
BOARD should be vim1
, vim2
, vim3
, vim3l
or edge
Edit list variable value inside DT overlay configuration file:
/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.env
Need reboot board to take effect.