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 linux5.10"

(Blanked the page)
 
Line 1: Line 1:
−
{{rockpi4_header}}
 
−
{{Languages|rockpi4/dev/devtree_overlays | Linux5.10 Device Tree Overlays}}
 
  
−
      [[rockpi4 | ROCK Pi 4]] > [[rockpi4/dev | Development]] > [[rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10  | Linux5.10 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 Radxa borad which uses linux5.10 kernel, you can use "rsetup" to load overlays that you want to enable, rsetup load overlays' dtbo from [[https://github.com/radxa/overlays/tree/main/arch/arm64/boot/dts/rockchip/overlays Radxa/overlay]]
 
−
 
−
 
−
==== How to enable a overlay  dtbo ====
 
−
===== usage =====
 
−
run "rsetup" command as below:
 
−
radxa@rock-4c-plus:~$ rsetup
 
−
 
−
Please select an option below:                                             
 
−
                                                                           
 
−
                            System Maintaince                               
 
−
                            Onboard Hardware                                 
 
−
                            Overlay Management                               
 
−
                            Connectivity                                   
 
−
                            User Settings                                   
 
−
                            Localization                                     
 
−
                            Common Tasks                                   
 
−
                            About                                           
 
−
                                                                       
 
−
                                                                           
 
−
                                                                           
 
−
              <Ok>                        <Cancel> 
 
−
 
−
 
−
Select "Overlay Management" 
 
−
 
−
Configure Device Tree Overlay 
 
−
                        Install overlay from source
 
−
                        Manage installed overlay
 
−
                        Rebuild boot configuration
 
−
                        Reset overlay libraries with kernel's default
 
−
                                                                       
 
−
                                                                           
 
−
              <Ok>                        <Cancel>
 
−
 
−
Select "Manage installed overlay",
 
−
 
−
 
−
    [ ] audioinjector-isolated-soundcard.dtbo                               
 
−
    [ ] cm3-sodimm-io-sata.dtbo                                             
 
−
    [ ] radxa-5inch-touchscreen-on-cm3-sodimm-io.dtbo                   
 
−
    [ ] radxa-5inch-touchscreen-on-rock-3a.dtbo                         
 
−
    [ ] radxa-5inch-touchscreen-on-rock-3b.dtbo                       
 
−
    [ ] radxa-cm3-io-dual-cameras-gc2053.dtbo                         
 
−
    [ ] radxa-cm3-io-hd101boe9365-display.dtbo                         
 
−
    [ ] radxa-cm3-io-headphone.dtbo                                   
 
−
    [ ] radxa-cm3-io-i2c0-hym8563.dtbo                                 
 
−
    [ ] radxa-cm3-io-pcie2x1.dtbo                                       
 
−
    [ ] radxa-cm3-io-radxa-10p1inch-display.dtbo                       
 
−
    [ ] radxa-cm3-io-sata1.dtbo                                         
 
−
    [ ] radxa-cm3-io-sata2.dtbo                                         
 
−
    [ ] radxa-cm3-io-sharp-lq133t1jw01-without-hdmi.dtbo                 
 
−
    [ ] radxa-cm3-raspcm4io-pcie2x1.dtbo                               
 
−
    [ ] radxa-cm3-sodimm-io-raspberrypi-7inch-touchscreen.dtbo 
 
−
    [ ] radxa-cm3i-gmac1.dtbo                                           
 
−
    [ ] rk3399-dwc3-0-host.dtbo                                           
 
−
    [ ] rk3399-dwc3-0-otg.dtbo                                         
 
−
    [ ] rk3399-dwc3-0-peripheral.dtbo
 
−
    [ ] rk3399-i2c2.dtbo
 
−
    [ ] rk3399-i2c6.dtbo
 
−
    [ ] rk3399-i2c7.dtbo                                   
 
−
    [ ] rk3399-opp-1800.dtbo                                           
 
−
    [ ] rk3399-opp-2000.dtbo                                         
 
−
    [ ] rk3399-opp-2200.dtbo                                             
 
−
    [ ] rk3399-opp-2400.dtbo
 
−
    [ ] rk3399-pwm0.dtbo
 
−
    [ ] rk3399-pwm1.dtbo
 
−
    [ ] rk3399-spi-5-enc28j60.dtbo                                   
 
−
    [ ] rk3399-spi-gpio-enc28j60.dtbo
 
−
    [ ] rk3399-spi1-m1-cs0-spidev.dtbo                               
 
−
    [ ] rk3399-spi2-m1-cs0-spidev.dtbo       
 
−
    [ ] rk3399-uart0.dtbo       
 
−
    [ ] rk3399-uart2.dtbo
 
−
    [ ] rk3399-uart4.dtbo     
 
−
    [ ] rk3399-w1-gpio4-d6.dtbo                           
 
−
    [ ] rk3568-can1-m0.dtbo                                                 
 
−
    [ ] rk3568-can1-m1.dtbo                                             
 
−
    [ ] rk3568-disable-gmac1.dtbo                                       
 
−
    [ ] rk3568-disable-npu.dtbo                                         
 
−
    [ ] rk3568-fiq-debugger-uart0.dtbo                                 
 
−
    [ ] rk3568-fiq-debugger-uart2m0.dtbo                                 
 
−
    [ ] rk3568-fiq-debugger-uart3m0.dtbo                               
 
−
    [ ] rk3568-fiq-debugger-uart5m1.dtbo                               
 
−
    [ ] rk3568-fiq-debugger-uart7m1.dtbo                               
 
−
    [ ] rk3568-fiq-debugger-uart8m1.dtbo                             
 
−
    [ ] rk3568-fiq-debugger-uart9m1.dtbo                                 
 
−
    [ ] rk3568-i2c2-m0.dtbo 
 
−
                                                                       
 
−
                                                                           
 
−
              <Ok>                        <Cancel>
 
−
 
−
 
−
Select the overlays you want to load with the space bar,
 
−
 
−
    [*] rk3399-uart0.dtbo 
 
−
 
−
Overlay with a "*" indicates that it is enabled.
 
−
 
−
reboot, to make overlays work
 
−
<pre>
 
−
sudo reboot
 
−
</pre>
 
−
 
−
 
−
=====  uart2 =====
 
−
Select the "rk3399-uart2.dtbo" overlay with the space bar
 
−
    [*] rk3399-uart2.dtbo
 
−
then reboot , the ttyS2 device is generated in the /dev/ directory
 
−
 
−
=====  uart4 =====
 
−
Select the "rk3399-uart4.dtbo" overlay with the space bar
 
−
    [*] rk3399-uart4.dtbo
 
−
then reboot , the ttyS4 device is generated in the /dev/ directory
 
−
 
−
=====  i2c2 =====
 
−
Select the "rk3399-i2c2.dtbo" overlay with the space bar
 
−
    [*] rk3399-i2c2.dtbo
 
−
then reboot , the i2c-2 device is generated in the /dev/ directory
 
−
 
−
=====  i2c6 =====
 
−
Select the "rk3399-i2c6.dtbo" overlay with the space bar
 
−
    [*] rk3399-i2c6.dtbo
 
−
then reboot , the i2c-6 device is generated in the /dev/ directory
 
−
 
−
=====  i2c7 =====
 
−
Select the "rk3399-i2c7.dtbo" overlay with the space bar
 
−
    [*] rk3399-i2c7.dtbo
 
−
then reboot , the i2c-7 device is generated in the /dev/ directory
 
−
 
−
=====  spi1 =====
 
−
Select the "rk3399-spi1-m1-cs0-spidev.dtbo" overlay with the space bar
 
−
    [*] rk3399-spi1-m1-cs0-spidev.dtbo
 
−
then reboot , the spi1.0 device is generated in the /dev/ directory
 
−
 
−
=====  spi2 =====
 
−
Select the "rk3399-spi1-m1-cs0-spidev.dtbo" overlay with the space bar
 
−
    [*] rk3399-spi2-m1-cs0-spidev.dtbo
 
−
then reboot , the spi2.0 device is generated in the /dev/ directory
 
−
 
−
=====  pwm0 =====
 
−
Select the "rk3399-pwm0.dtbo" overlay with the space bar
 
−
    [*] rk3399-pwm0.dtbo
 
−
then reboot , the pwmchip0 device is generated in the /sys/class/pwm/ directory
 
−
 
−
=====  pwm1 =====
 
−
Select the "rk3399-pwm1.dtbo" overlay with the space bar
 
−
    [*] rk3399-pwm1.dtbo
 
−
then reboot , the pwmchip1 device is generated in the /sys/class/pwm/ directory
 
−
 
−
=====  one wire =====
 
−
Select the "rk3399-w1-gpio4-d6.dtbo" overlay with the space bar
 
−
    [*] rk3399-w1-gpio4-d6.dtbo
 
−
then reboot , the 28-80000028f6a0 device is generated in the /sys/bus/w1/devices/ directory
 
−
 
−
 
−
 
−
 
−
==== How to use a overylay written by yourselt ====
 
−
===== DTBO code specification =====
 
−
 
−
Because of the number of products we have, writing the device tree overlay(dtbo) for each product has become a significant burden. To improve code reuse, you now need to specify metadata for dtbo to facilitate sharing of the same dtbo across different products.
 
−
In our dtbo source file, you need add a new node named "matedata", this node needs the following fields:
 
−
* title: it's property is text, used to display in the rsetup menu, there is  no necessary to also indicate the supported development board.
 
−
* compatible: it's property is array, Compatible products or SOCs can be specified. If dtbo is not cross-product compatible, the corresponding SoC cannot be filled in.
 
−
* category: text, Used to classify in the rsetup menu. At present, only 'display', 'camera' and 'misc' are defined
 
−
* description: text, The functions and precautions of dtbo are briefly introduced, used to display dtbo when installing rsetup.
 
−
 
−
===== get the sdk source =====
 
−
[[https://github.com/radxa/rockchip-bsp SDK rockchip-bsp]]
 
−
install the tools
 
−
<pre>
 
−
sudo apt-get update
 
−
sudo apt-get install git device-tree-compiler build-essential
 
−
</pre>
 
−
 
−
=====  get the source code and update it =====
 
−
<pre>
 
−
git clone -b master https://github.com/radxa/rockchip-bsp.git
 
−
cd rockchip-bsp
 
−
git submodule init
 
−
git submodule update
 
−
cd rockchip-bsp
 
−
git checkout master
 
−
git fetch origin
 
−
git rebase origin/master
 
−
git submodule update
 
−
</pre>
 
−
 
−
 
−
overlay source code are located under the directory "rockchip-bsp/kerne/arch/arm64/boot/dts/rockchip/overlay/",
 
−
 
−
===== write overlay code =====
 
−
example:
 
−
rk3399-rock4-i2c7.dts
 
−
<pre>
 
−
/dts-v1/;
 
−
/plugin/;
 
−
 
−
/ {
 
−
metadata {
 
−
title = "Enable i2c7 on ROCK 4 plus";
 
−
compatible = "radxa,rock-4c-plus", "rockchip,rk3399";
 
−
category = "misc";
 
−
description = "Enable Radxa rock-4c-plus i2c7";
 
−
};
 
−
 
−
fragment@0 {
 
−
target = <&i2c7>;
 
−
__overlay__ {
 
−
status = "okay";
 
−
};
 
−
};
 
−
};
 
−
</pre>
 
−
 
−
===== compile the dts to dtbo =====
 
−
 
−
<pre>
 
−
rockchip-bsp/kernel$ make dtbs
 
−
</pre>
 
−
 
−
===== Upload it to the board =====
 
−
<pre>
 
−
scp rk3399-rock4-i2c7.dts [email protected]:~
 
−
</pre>
 
−
 
−
===== move the dtbo to correct directory =====
 
−
radxa@rock-4c-plus:~$ sudo mv rk3399-rock4-i2c7.dtbo /boot/dtbo
 
−
 
−
Then, use rsetup to check to whether that overlay is enabled, the steps are similar to "How to enable a overlay  dtbo" .
 
−
Finally, reboot the board, you will see i2c-7 under the /dev/ directory.
 

Latest revision as of 03:00, 11 April 2023