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 DT-overlays configuration file and add the dtbo
name to list.
There are some preparations steps 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.env
Need to reboot the board to take effect.