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

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  [[ https://wiki.radxa.com/Rockpi4/hardware/rockpi4#gpio | 40-pin GPIO connector ]], we  find that UART4 and SPI1 share some pins, and I2C6 and SPI2 share some pins.
+
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


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