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.env
Need to reboot the board to take effect.