Please enable javascript, or click here to visit my ecommerce web site powered by Shopify.
Jump to: navigation, search

Rockpi4/hardware/devtree overlays

    ROCK Pi 4 >  Hardware >  Device Tree Overlays


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 hw_intfc.conf also can be found in [SDK rockchip-bsp] directory, rockchip-bsp/kernel/arch/arm64/boot/dts/rockchip/overlays/

File Structure

 /boot
   |--rockpi-4b-linux.dtb
   |--hw_intfc.conf
   |--overlays
           |--at24c02.dtbo
           |--console-on-ttyS2.dtbo
           |--console-on-ttyS4.dtbo
           |--devspi1.dtbo
           |--devspi2.dtbo
           |--pcie-gen2.dtbo
           |--spi1-waveshare35b-v2.dtbo
           |--spi1-waveshare35c.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 EEPROM AT24C02 over I2C2.
 Load:	intfc:dtoverlay=at24c02

 Name:	two-color-led
 Info:	Overlay for activation of ALLNET 4duino B10/B11 two-coloe-led 
 	module on 40-pin Header Pin#35 and Pin#36
 Load:	intfc:dtoverlay=two-color-led

 Name:	console-on-ttyS2
 Info:	By default, fiq debugger console is disabled.
 	When this dtbo file is loaded, Rock Pi enables fiq debugger console.
 	ttyS2 Pins will output console information.
 	At the same time, it is recommended that you set UART2 to off in
 	file /boot/hw_intfc.conf and do not load console-on-ttyS4.dtbo file.
 Load:	intfc:dtoverlay=console-on-ttyS2

 Name:	console-on-ttyS4
 Info:	By default, fiq debugger console is disabled.
 	When this dtbo file is loaded, Rock Pi enables fiq debugger console.
 	ttyS4 Pins will output console information.
 	At the same time, it is recommended that you set UART4 to off in
 	file /boot/hw_intfc.conf and do not load console-on-ttyS2.dtbo file.
 Load:	intfc:dtoverlay=console-on-ttyS4

 Name:	devspi1
 Info:	Overlay for activation of dummy spi device on SPI1 for test. 
	Need set: intfc:spi1=on
	By default, spi1 is disabled.
 	when use spi1, uart4 must be disabled.
 Load:	intfc:dtoverlay=devspi1
 
 Name:	devspi2
 Info:	Overlay for activation of dummy spi device on SPI2 for test. 
	Need set: intfc:spi2=on
 	When use spi2. i2c6 must be disabled.
 Load:	intfc:dtoverlay=devspi2
 
 Name:	pcie-gen2
 Info:	Overlay for activation of pcie running on GEN2 mode.
 Load:	intfc:dtoverlay=pcie-gen2
 
 Name:	spi1-waveshare35b-v2
 Info:	Overlay for activation of waveshare 3.5inch lcd(B v2).
 	Need set: intfc:uart4=off intfc:spi1=on
 Load: 	intfc:dtoverlay=spi1-0waveshare35b-v2
 
 Name:	spi1-waveshare35c
 Info:	Overlay for activation of waveshare 3.5inch lcd(C).
 	Need set: intfc:uart4=off intfc:spi1=on
 Load:	intfc:dtoverlay=spi1-waveshare35c

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