Khadas Docs

Amazing Khadas, always amazes you!

User Tools

Site Tools


Sidebar

products:sbc:vim4:configurations:device-tree-overlay

This is an old revision of the document!


Device Tree Overlay

Introduction

You can use Device Tree Overlay feature to enable/disable some hardware functions without to recompile the kernel source code.

Install Device Tree Overlay Debian Package

You can find the device tree overlays configuration in `/boot/env.txt` for VIM3.

# 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.

* If you want to disable `pwm_f` you can remove `pwm_f` in `overlays` node.

* If you want to enable `onewire`, you can add `onewire` to `overlays` node.

{% note info Note %}

You need to save the file `/boot/env.txt` and reboot the board to take effect.

{% endnote %}

Make Your Own DTBO Files

There are some ready to use dtbo files, you can also add your own dtbos to enable or disable the peripherals.

The default 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

* Write your own device tree overlay file, for example `example.dts`:

/dts-v1/;
/plugin/;

/ {
    fragment@0 {
        target = <&i2c3>;

        __overlay__ {
            status = "okay";
        };
    };
};

This device tree overlay is to enable `i2c3`.

* Compile it to dtbo

khadas@Khadas:~$ dtc -I dts -O dtb -o example.dtbo example.dts
khadas@Khadas:~$ ls example.dtbo
example.dtbo

* Move the dtbo file to `/boot/dtb/overlays/kvim3`

* Edit `/boot/env.txt` to add in node `overlays`

* Reboot the board

Last modified: 2022/07/06 02:46 by nick