Difference between revisions of "Rockpi4/hardware/devtree overlays"
(→Installing ROCK Pi 4 dtbo package) |
(→Using Overlays) |
||
Line 48: | Line 48: | ||
N.B. It is recommended to only ebable those bus interfaces that are needed. Leaving all interfaces enabled can lead to unwanted behaviour. | N.B. It is recommended to only ebable those bus interfaces that are needed. Leaving all interfaces enabled can lead to unwanted behaviour. | ||
− | Seeing [[ | + | Seeing [[Rockpi4/hardware/rockpi4#gpio | 40-pin GPIO connector ]], we find that UART4 and SPI1 share some pins, and I2C6 and SPI2 share some pins. |
In order to solve the problem of pin conflicts, we make a convention. | In order to solve the problem of pin conflicts, we make a convention. |
Revision as of 04:10, 21 March 2019
ROCK Pi 4 > Hardware > Device Tree Overlays
Contents
Device Tree Overlays
Introduction
This directory contains Device Tree overlays. Device Tree makes it possible to support many hardware configurations with a single kernel and without the need to explicitly load or blacklisr kernel modules.
On Rock Pi, you will find a rockpi-4b-linux.dtb in /boot. This describes the hardware that is part of the Rock Pi board. The loader selects the .dtb file appropriate for the platform by name and pass it to the kernel.
Device Tree Overlays usage is controlled from /boot/hw_intfc.conf. You can do the settings for Rock Pi in your hw_intfc.conf, which should cause your Rock Pi to do your wanted things after a reboot.
In /boot/overlays you will find many .dtbo files. The loader will merge the selected .dtbo files by reading file /boot/hw_intfc.conf.
File Structure
/boot |--rockpi-4b-linux.dtb |--hw_intfc.conf |--overlays |--at24c02.dtbo |--console-disabled.dtbo |--console-on-uart4.dtbo |--two-color-led.dtbo
Using Overlays
Overlays are loaded using "intfc:" directive. As an example, consider the at24c02 module. Add one line in hw_intfc.conf:
intfc:dtoverlay=at24c02
This causes the file /boot/overlays/at24c02.dtbo to be loaded.
The Overlay and Parameter Reference
N.B. It is recommended to only ebable those bus interfaces that are needed. Leaving all interfaces enabled can lead to unwanted behaviour.
Seeing 40-pin GPIO connector , we find that UART4 and SPI1 share some pins, and I2C6 and SPI2 share some pins.
In order to solve the problem of pin conflicts, we make a convention.
When we set UART4 and SPI1 to "on" at the same, the system will forcibly set UART4 to "on" and SPI1 to "off" (Although you see SPI1 is “on” on file hw_intfc.conf,).
When we set I2C6 and SPI2 to "on" at the same time, the system will forcibly set I2C6 to "on" and SPI2 to "off".
Enabling and disabling BUS
Name: pwm0 Info: Overlay for BUS PWM0 Load: intfc:pwm0=<value> Value: on Set to "on" to enable the pwm0 interface (default "off") off Set to "off" to disable the pwm0 interface Name: pwm1 Info: Overlay for BUS PWM1 Load: intfc:pwm1=<value> Value: on Set to "on" to enable the pwm1 interface (default "off") off Set to "off" to disable the pwm2 interface Name: uart2 Info: Overlay for BUS UART2 Load: intfc:uart2=<value> Value: on Set to "on" to enable the uart2 interface (default "off") off Set to "off" to disable the uart2 interface Name: uart4 Info: Overlay for BUS UART4 Load: intfc:uart4=<value> Value: on Set to "on" to enable the uart4 interface (default "off") off Set to "off" to disable the uart4 interface Name: spi1 Info: Overlay for BUS SPI1 Load: intfc:spi1=<value> Value: on Set to "on" to enable the spi1 interface (default "off") off Set to "off" to disable the spi1 interface Name: spi2 Info: Overlay for BUS SPI2 Load: intfc:spi2=<value> Value: on Set to "on" to enable the spi2 interface (default "off") off Set to "off" to disable the spi2 interface Name: i2c2 Info: Overlay for BUS I2C2 Load: intfc:i2c2=<value> Value: on Set to "on" to enable the i2c2 interface (default "off") off Set to "off" to disable the i2c2 interface Name: i2c6 Info: Overlay for BUS I2C6 Load: intfc:i2c6=<value> Value: on Set to "on" to enable the i2c6 interface (default "off") off Set to "off" to disable the i2c6 interface Name: i2c7 Info: Overlay for BUS I2C7 Load: intfc:i2c7=<value> Value: on Set to "on" to enable the i2c7 interface (default "off") off Set to "off" to disable the i2c7 interface
Loading hardware module
Name: at24c02 Info: Overlay for activation of Atmel AT24C02 over I2C Load: intfc:dtoverlay=at24c02 Name: two-color-led Info: Overlay for activation of two color led module. Load: intfc:dtoverlay=two-color-led Name: console-disabled Info: Overlay for disabling fiq debugger console. When this dtbo file is not loaded, Rock Pi enables fiq debugger console by default. And UART2DBG Pins will output console information. When this dtbo is loaded, Rock Pi disables fiq debugger console and UART2DBG pins do not output console information. What's more, UART2DBG pins can be used for serial communication if UART2 is enabled. Load: intfc:dtoverlay=console-disabled Name: console-on-uart4 Info: Overlay for setting uart4 pins as fiq debugger console pins. With this dtbo loaded, UART4 pins output console information after kernel is booted. Note that at the same time, Rock Pi cannot work with other serial communication devices like UART Serial Bluetooth Module through UART4 (even though set "on" for BUS UART4). Load: intfc:dtoverlay=console-on-uart4
Installing ROCK Pi 4 dtbo package
Radxa APT provides rockpi4-dtbo package that includes hw_intfc.conf and .dtbo files. To use it, do:
$ sudo apt-get update $ sudo apt-get install rockchip-fstab $ sudo apt-get install rockpi4-dtbo