<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.radxa.com/mw/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.radxa.com/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nascs</id>
		<title>Radxa Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.radxa.com/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nascs"/>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Special:Contributions/Nascs"/>
		<updated>2026-06-04T14:47:38Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.23.3</generator>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/dev/libmraa</id>
		<title>Rockpi4/dev/libmraa</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/dev/libmraa"/>
				<updated>2023-07-12T01:53:24Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock3/hardware/3c/gpio</id>
		<title>Rock3/hardware/3c/gpio</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock3/hardware/3c/gpio"/>
				<updated>2023-06-29T03:21:53Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-midnight-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3&amp;gt;Hardware V1.1/V1.2&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3&amp;gt; [https://github.com/nascs/wiringX/blob/rock3/docs/source/platforms/radxa/rock3c.rst wiringX GPIO mapping] &amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center; vertical-align:middle;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! GPIO number&lt;br /&gt;
! Function5&lt;br /&gt;
! Function4&lt;br /&gt;
! Function3&lt;br /&gt;
! Function2&lt;br /&gt;
! Function1&lt;br /&gt;
! Pin#&lt;br /&gt;
! &lt;br /&gt;
! Pin#&lt;br /&gt;
! Function1&lt;br /&gt;
! Function2&lt;br /&gt;
! Function3&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot; | Function4&lt;br /&gt;
! Function5&lt;br /&gt;
! GPIO number&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#F00; color:#ffffff;&amp;quot; | +3.3V&lt;br /&gt;
| style=&amp;quot;background-color:#FF0;&amp;quot; | 1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#F00; color:#FFF;&amp;quot; | 2&lt;br /&gt;
| style=&amp;quot;background-color:#F00; color:#FFF;&amp;quot; | +5.0V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| &lt;br /&gt;
| I2C3_SDA_M0&lt;br /&gt;
| UART3_RX_M0&lt;br /&gt;
| GPIO1_A0&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 3&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#F00; color:#FFF;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;background-color:#F00; color:#ffffff;&amp;quot; | +5.0V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| &lt;br /&gt;
| I2C3_SCL_M0&lt;br /&gt;
| UART3_TX_M0&lt;br /&gt;
| GPIO1_A1&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 5&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 116&lt;br /&gt;
| &lt;br /&gt;
| PWM14_M0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO3_C4&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 7&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 8&lt;br /&gt;
| GPIO0_D1&lt;br /&gt;
| style=&amp;quot;background-color:#FFA500;&amp;quot; | UART2_TX_M0&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| 25&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | GND&lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | 9&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 10&lt;br /&gt;
| GPIO0_D0&lt;br /&gt;
| style=&amp;quot;background-color:#FFA500;&amp;quot; | UART2_RX_M0&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| 24&lt;br /&gt;
|-&lt;br /&gt;
| 97&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO3_A1&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 11&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 12&lt;br /&gt;
| GPIO3_A3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| I2S3_SCLK_M0&lt;br /&gt;
| 99&lt;br /&gt;
|-&lt;br /&gt;
| 98&lt;br /&gt;
| &lt;br /&gt;
| I2S3_MCLK_M0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO3_A2&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 13&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 104&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO3_B0&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 15&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 16&lt;br /&gt;
| GPIO3_B1&lt;br /&gt;
| UART4_RX_M1&lt;br /&gt;
| PWM8_M0&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| 105&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#F00; color:#ffffff;&amp;quot; | +3.3V&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 17&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 18&lt;br /&gt;
| GPIO3_B2&lt;br /&gt;
| UART4_TX_M1&lt;br /&gt;
| PWM9_M0&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| 106&lt;br /&gt;
|-&lt;br /&gt;
| 147&lt;br /&gt;
| &lt;br /&gt;
| PWM15_IR_M1&lt;br /&gt;
| I2S3_SCLK_M1&lt;br /&gt;
| SPI3_MOSI_M1&lt;br /&gt;
| GPIO4_C3&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 19&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 149&lt;br /&gt;
| UART9_TX_M1&lt;br /&gt;
| PWM12_M1&lt;br /&gt;
| I2S3_SDO_M1&lt;br /&gt;
| SPI3_MISO_M1&lt;br /&gt;
| GPIO4_C5&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 21&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 22&lt;br /&gt;
| GPIO3_C1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| I2S1_SDO2_M2&lt;br /&gt;
| 113&lt;br /&gt;
|-&lt;br /&gt;
| 146&lt;br /&gt;
| &lt;br /&gt;
| PWM14_M1&lt;br /&gt;
| I2S3_MCLK_M1&lt;br /&gt;
| SPI3_CLK_M1&lt;br /&gt;
| GPIO4_C2&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 23&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 24&lt;br /&gt;
| GPIO4_C6&lt;br /&gt;
| SPI3_CS0_M1&lt;br /&gt;
| PWM13_M1&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | UART9_RX_M1&lt;br /&gt;
| I2S3_SDI_M1&lt;br /&gt;
| 150&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | GND&lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | 25&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 26&lt;br /&gt;
| NC&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 138&lt;br /&gt;
| &lt;br /&gt;
| I2C4_SDA_M0&lt;br /&gt;
| I2S2_SDI_M1&lt;br /&gt;
| &lt;br /&gt;
| GPIO4_B2&lt;br /&gt;
| style=&amp;quot;background-color:#0070C0; color:#FFF;&amp;quot; | 27&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#0070C0; color:#FFF;&amp;quot; | 28&lt;br /&gt;
| GPIO4_B3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | I2C4_SCL_M0&lt;br /&gt;
| I2S2_SDO_M1&lt;br /&gt;
| 139&lt;br /&gt;
|-&lt;br /&gt;
| 107&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO3_B3&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 29&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#ffffff;&amp;quot; | GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 108&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO3_B4&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 31&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 32&lt;br /&gt;
| GPIO3_C2&lt;br /&gt;
| UART5_TX_M1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| I2S1_SDO3_M2&lt;br /&gt;
| 114&lt;br /&gt;
|-&lt;br /&gt;
| 115&lt;br /&gt;
| UART5_RX_M1&lt;br /&gt;
| &lt;br /&gt;
| I2S1_SCLK_RX_M2&lt;br /&gt;
| &lt;br /&gt;
| GPIO3_C3&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 33&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | 34&lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 100&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| I2S3_LRCK_M0&lt;br /&gt;
| &lt;br /&gt;
| GPIO3_A4&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 35&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 36&lt;br /&gt;
| GPIO3_A7&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| 103&lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| I2S1_SCLK_RX_M0&lt;br /&gt;
| &lt;br /&gt;
| GPIO1_A4&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 37&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 38&lt;br /&gt;
| GPIO3_A6&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| I2S3_SDI_M0&lt;br /&gt;
| 102&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | GND&lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | 39&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 40&lt;br /&gt;
| GPIO3_A5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| I2S3_SDO_M0&lt;br /&gt;
| 101&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== GPIO number ===&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3566 GPIO has 5 banks, GPIO0 to GPIO4, each bank has 32pins, naming as below:&lt;br /&gt;
&lt;br /&gt;
 GPIO0_A0 ~ A7 &lt;br /&gt;
 GPIO0_B0 ~ B7&lt;br /&gt;
 GPIO0_C0 ~ C7&lt;br /&gt;
 GPIO0_D0 ~ D7&lt;br /&gt;
    &lt;br /&gt;
 GPIO1_A0 ~ A7&lt;br /&gt;
 ....&lt;br /&gt;
 GPIO1_D0 ~ D7&lt;br /&gt;
&lt;br /&gt;
For Rockchip 4.19 kernel, the GPIO number can be calculated as below, take GPIO4_A7 (PIN26 on 40-PIN HEADER) as an example:&lt;br /&gt;
&lt;br /&gt;
 GPIO4_A7 = 4*32 + 0*8 + 7 = 135&lt;br /&gt;
 (A=0, B=1, C=2, D=3)&lt;br /&gt;
&lt;br /&gt;
To set GPIO4_A7 output&lt;br /&gt;
 &lt;br /&gt;
cd /sys/class/gpio&lt;br /&gt;
 echo 135 &amp;gt; export&lt;br /&gt;
 cd gpio135&lt;br /&gt;
 echo out &amp;gt; direction&lt;br /&gt;
 echo 1 &amp;gt; value     # output high&lt;br /&gt;
 echo 0 &amp;gt; value     # output low&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Mraa</id>
		<title>Mraa</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Mraa"/>
				<updated>2023-06-12T02:20:08Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Languages|rockpiN10}}&lt;br /&gt;
&lt;br /&gt;
=== Mraa on ROCK Pi boards ===&lt;br /&gt;
This document describes how to build and use mraa for ROCK Pi boards.&lt;br /&gt;
&lt;br /&gt;
==== List of ROCK Pi Boards supported ====&lt;br /&gt;
* ROCK Pi 4 A/B/C&lt;br /&gt;
* ROCK Pi E&lt;br /&gt;
* ROCK Pi N10&lt;br /&gt;
* ROCK Pi S&lt;br /&gt;
* ROCK Pi X&lt;br /&gt;
&lt;br /&gt;
==== List of Linux Distributions ====&lt;br /&gt;
* Ubuntu&lt;br /&gt;
* Debian&lt;br /&gt;
* Yocto (mraa-radxa_git.bb)&lt;br /&gt;
&lt;br /&gt;
==== Install example: Install Mraa on ROCK Pi N10 Debian system ====&lt;br /&gt;
For Debian Distribution the below commands install the essential set:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rockpin10bc:/home/rock# apt-get install -y git build-essential swig3.0 python-dev  cmake libjson-c-dev libnode-dev&lt;br /&gt;
root@rockpin10bc:/home/rock# apt-get install -y libc6 libjson-c3 libgcc1 libstdc++6 python2.7 libpython2.7 python3.7 libpython3.7 python3-dev&lt;br /&gt;
root@rockpin10bc:/home/rock# apt-get install -y libgtest-dev pkg-config cmake-data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get source code.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rockpin10bc:/home/rock# git clone -b master https://github.com/radxa/mraa.git&lt;br /&gt;
root@rockpin10bc:/home/rock# cd mraa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Patch the source code for building mraa with Python.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/CMakeLists.txt b/CMakeLists.txt&lt;br /&gt;
index 250d910..f1880e1 100644&lt;br /&gt;
--- a/CMakeLists.txt&lt;br /&gt;
+++ b/CMakeLists.txt&lt;br /&gt;
@@ -145,7 +145,7 @@ include_directories (${SYSTEM_USR_DIR})&lt;br /&gt;
 option (BUILDDOC &amp;quot;Build all doc.&amp;quot; OFF)&lt;br /&gt;
 option (BUILDSWIG &amp;quot;Build swig modules.&amp;quot; ON)&lt;br /&gt;
 option (BUILDSWIGPYTHON &amp;quot;Build swig python modules.&amp;quot; ON)&lt;br /&gt;
-option (BUILDSWIGNODE &amp;quot;Build swig node modules.&amp;quot; ON)&lt;br /&gt;
+option (BUILDSWIGNODE &amp;quot;Build swig node modules.&amp;quot; OFF)&lt;br /&gt;
 option (BUILDSWIGJAVA &amp;quot;Build Java API.&amp;quot; OFF)&lt;br /&gt;
 option (USBPLAT &amp;quot;Detection USB platform.&amp;quot; OFF)&lt;br /&gt;
 option (FIRMATA &amp;quot;Add Firmata support to mraa.&amp;quot; OFF)&lt;br /&gt;
@@ -156,7 +156,7 @@ option (FTDI4222 &amp;quot;Build with FTDI FT4222 subplatform support.&amp;quot; OFF)&lt;br /&gt;
 option (ENABLEEXAMPLES &amp;quot;Disable building of examples&amp;quot; ON)&lt;br /&gt;
 option (INSTALLTOOLS &amp;quot;Install all tools&amp;quot; ON)&lt;br /&gt;
 option (BUILDTESTS &amp;quot;Override the addition of tests&amp;quot; ON)&lt;br /&gt;
-option (USEPYTHON3TESTS &amp;quot;Force tests to run with python3&amp;quot; OFF)&lt;br /&gt;
+option (USEPYTHON3TESTS &amp;quot;Force tests to run with python3&amp;quot; ON)&lt;br /&gt;
 &lt;br /&gt;
 set (BUILDARCH &amp;quot;&amp;quot; CACHE STRING &amp;quot;Override architecture to build for&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build and install mraa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rockpin10bc:/home/rock/mraa# mkdir build&lt;br /&gt;
root@rockpin10bc:/home/rock/mraa# cd build/&lt;br /&gt;
root@rockpin10bc:/home/rock/mraa/build# cmake ..&lt;br /&gt;
root@rockpin10bc:/home/rock/mraa/build# make&lt;br /&gt;
root@rockpin10bc:/home/rock/mraa/build# make install&lt;br /&gt;
root@rockpin10bc:/home/rock/mraa/build# ldconfig&lt;br /&gt;
root@rockpin10bc:/home/rock/mraa/build# mraa-gpio version&lt;br /&gt;
Version v2.1.0-11-g06b2be2 on Radxa ROCK Pi N10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Install example: Install Mraa on CM3 IO Debian11 system ====&lt;br /&gt;
For Debian11 Distribution the below commands install the essential set:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@radxa-cm3-io:/home/rock# apt-get install -y git build-essential swig4.0 python-dev cmake libnode-dev python3-dev pkg-config &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get source code.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@radxa-cm3-io:/home/rock# git clone -b master https://github.com/radxa/mraa.git&lt;br /&gt;
root@radxa-cm3-io:/home/rock# cd mraa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Patch the source code for building mraa with Python.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/CMakeLists.txt b/CMakeLists.txt&lt;br /&gt;
index 250d910..f1880e1 100644&lt;br /&gt;
--- a/CMakeLists.txt&lt;br /&gt;
+++ b/CMakeLists.txt&lt;br /&gt;
@@ -145,7 +145,7 @@ include_directories (${SYSTEM_USR_DIR})&lt;br /&gt;
 option (BUILDDOC &amp;quot;Build all doc.&amp;quot; OFF)&lt;br /&gt;
 option (BUILDSWIG &amp;quot;Build swig modules.&amp;quot; ON)&lt;br /&gt;
 option (BUILDSWIGPYTHON &amp;quot;Build swig python modules.&amp;quot; ON)&lt;br /&gt;
-option (BUILDSWIGNODE &amp;quot;Build swig node modules.&amp;quot; ON)&lt;br /&gt;
+option (BUILDSWIGNODE &amp;quot;Build swig node modules.&amp;quot; OFF)&lt;br /&gt;
 option (BUILDSWIGJAVA &amp;quot;Build Java API.&amp;quot; OFF)&lt;br /&gt;
 option (USBPLAT &amp;quot;Detection USB platform.&amp;quot; OFF)&lt;br /&gt;
 option (FIRMATA &amp;quot;Add Firmata support to mraa.&amp;quot; OFF)&lt;br /&gt;
@@ -156,7 +156,7 @@ option (FTDI4222 &amp;quot;Build with FTDI FT4222 subplatform support.&amp;quot; OFF)&lt;br /&gt;
 option (ENABLEEXAMPLES &amp;quot;Disable building of examples&amp;quot; ON)&lt;br /&gt;
 option (INSTALLTOOLS &amp;quot;Install all tools&amp;quot; ON)&lt;br /&gt;
 option (BUILDTESTS &amp;quot;Override the addition of tests&amp;quot; ON)&lt;br /&gt;
-option (USEPYTHON3TESTS &amp;quot;Force tests to run with python3&amp;quot; OFF)&lt;br /&gt;
+option (USEPYTHON3TESTS &amp;quot;Force tests to run with python3&amp;quot; ON)&lt;br /&gt;
 &lt;br /&gt;
 set (BUILDARCH &amp;quot;&amp;quot; CACHE STRING &amp;quot;Override architecture to build for&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Patch for later compilation with make&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/include/version.h b/include/version.h&lt;br /&gt;
index 47366ef..3a567a1 100644&lt;br /&gt;
--- a/include/version.h&lt;br /&gt;
+++ b/include/version.h&lt;br /&gt;
@@ -11,8 +11,8 @@&lt;br /&gt;
 extern &amp;quot;C&amp;quot; {&lt;br /&gt;
 #endif&lt;br /&gt;
 &lt;br /&gt;
-const char* gVERSION;&lt;br /&gt;
-const char* gVERSION_SHORT;&lt;br /&gt;
+extern const char* gVERSION;&lt;br /&gt;
+extern const char* gVERSION_SHORT;&lt;br /&gt;
 &lt;br /&gt;
 #ifdef __cplusplus&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build and install mraa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@radxa-cm3-io:/home/rock/mraa# mkdir build&lt;br /&gt;
root@radxa-cm3-io:/home/rock/mraa# cd build/&lt;br /&gt;
root@radxa-cm3-io:/home/rock/mraa/build# cmake ..&lt;br /&gt;
root@radxa-cm3-io:/home/rock/mraa/build# make&lt;br /&gt;
root@radxa-cm3-io:/home/rock/mraa/build# make install&lt;br /&gt;
root@radxa-cm3-io:/home/rock/mraa/build# ldconfig&lt;br /&gt;
root@radxa-cm3-io:/home/rock/mraa/build# mraa-gpio version&lt;br /&gt;
Version v2.1.0-23-gfc8c906 on Radxa CM3 IO&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Install example: Install Mraa on ROCK Pi 4C Ubuntu Focal system ====&lt;br /&gt;
For Ubuntu Distribution the below commands install the essential set:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rockpin10bc:/home/rock# apt-get install -y git build-essential swig3.0 python-dev python3-dev libnode-dev  cmake libjson-c-dev&lt;br /&gt;
root@rockpin10bc:/home/rock# apt-get install -y libc6 libgcc1 libstdc++6 python python2.7 libpython2.7 python3.8 libpython3.8 python3-dev python3&lt;br /&gt;
root@rockpin10bc:/home/rock# apt-get install -y libgtest-dev pkg-config cmake-data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Get source code.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rockpin10bc:/home/rock# git clone -b master https://github.com/radxa/mraa.git&lt;br /&gt;
root@rockpin10bc:/home/rock# cd mraa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Patch the source code for building mraa with Python.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/CMakeLists.txt b/CMakeLists.txt&lt;br /&gt;
index 250d910..f1880e1 100644&lt;br /&gt;
--- a/CMakeLists.txt&lt;br /&gt;
+++ b/CMakeLists.txt&lt;br /&gt;
@@ -145,7 +145,7 @@ include_directories (${SYSTEM_USR_DIR})&lt;br /&gt;
 option (BUILDDOC &amp;quot;Build all doc.&amp;quot; OFF)&lt;br /&gt;
 option (BUILDSWIG &amp;quot;Build swig modules.&amp;quot; ON)&lt;br /&gt;
 option (BUILDSWIGPYTHON &amp;quot;Build swig python modules.&amp;quot; ON)&lt;br /&gt;
-option (BUILDSWIGNODE &amp;quot;Build swig node modules.&amp;quot; ON)&lt;br /&gt;
+option (BUILDSWIGNODE &amp;quot;Build swig node modules.&amp;quot; OFF)&lt;br /&gt;
 option (BUILDSWIGJAVA &amp;quot;Build Java API.&amp;quot; OFF)&lt;br /&gt;
 option (USBPLAT &amp;quot;Detection USB platform.&amp;quot; OFF)&lt;br /&gt;
 option (FIRMATA &amp;quot;Add Firmata support to mraa.&amp;quot; OFF)&lt;br /&gt;
@@ -156,7 +156,7 @@ option (FTDI4222 &amp;quot;Build with FTDI FT4222 subplatform support.&amp;quot; OFF)&lt;br /&gt;
 option (ENABLEEXAMPLES &amp;quot;Disable building of examples&amp;quot; ON)&lt;br /&gt;
 option (INSTALLTOOLS &amp;quot;Install all tools&amp;quot; ON)&lt;br /&gt;
 option (BUILDTESTS &amp;quot;Override the addition of tests&amp;quot; ON)&lt;br /&gt;
-option (USEPYTHON3TESTS &amp;quot;Force tests to run with python3&amp;quot; OFF)&lt;br /&gt;
+option (USEPYTHON3TESTS &amp;quot;Force tests to run with python3&amp;quot; ON)&lt;br /&gt;
 &lt;br /&gt;
 set (BUILDARCH &amp;quot;&amp;quot; CACHE STRING &amp;quot;Override architecture to build for&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build and install mraa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rockpin10bc:/home/rock/mraa# mkdir build&lt;br /&gt;
root@rockpin10bc:/home/rock/mraa# cd build/&lt;br /&gt;
root@rockpin10bc:/home/rock/mraa/build# cmake ..&lt;br /&gt;
root@rockpin10bc:/home/rock/mraa/build# make&lt;br /&gt;
root@rockpin10bc:/home/rock/mraa/build# make install&lt;br /&gt;
root@rockpin10bc:/home/rock/mraa/build# ldconfig&lt;br /&gt;
root@rockpin10bc:/home/rock/mraa/build# mraa-gpio version&lt;br /&gt;
Version v2.1.0-11-g06b2be2 on ROCK Pi 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install example: Install Mraa on ROCK Pi 4C Debian Bullseye system ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Configure the linux java environment&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Download jdk for linux arm64 version, for example, openjdk-18.0.2.1_linux-aarch64&lt;br /&gt;
root@rock-4c-plus:/home/rock# cd /usr/local&lt;br /&gt;
root@rock-4c-plus:/home/rock# mkdir java&lt;br /&gt;
root@rock-4c-plus:/home/rock# cd java&lt;br /&gt;
root@rock-4c-plus:/home/rock# tar xzvf openjdk-18.0.2.1_linux-aarch64_bin.tar.gz&lt;br /&gt;
root@rock-4c-plus:/home/rock# ls &lt;br /&gt;
jdk-18.0.2.1  openjdk-18.0.2.1_linux-aarch64_bin.tar.gz&lt;br /&gt;
root@rock-4c-plus:/home/rock# mv  jdk-18.0.2.1  jdk18&lt;br /&gt;
&lt;br /&gt;
# modify /etc/profile&lt;br /&gt;
root@rock-4c-plus:/usr/local/java# cat /etc/profile&lt;br /&gt;
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))&lt;br /&gt;
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$(id -u)&amp;quot; -eq 0 ]; then&lt;br /&gt;
  PATH=&amp;quot;/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
  PATH=&amp;quot;/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
export PATH&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;${PS1-}&amp;quot; ]; then&lt;br /&gt;
  if [ &amp;quot;${BASH-}&amp;quot; ] &amp;amp;&amp;amp; [ &amp;quot;$BASH&amp;quot; != &amp;quot;/bin/sh&amp;quot; ]; then&lt;br /&gt;
    # The file bash.bashrc already sets the default PS1.&lt;br /&gt;
    # PS1='\h:\w\$ '&lt;br /&gt;
    if [ -f /etc/bash.bashrc ]; then&lt;br /&gt;
      . /etc/bash.bashrc&lt;br /&gt;
    fi&lt;br /&gt;
  else&lt;br /&gt;
    if [ &amp;quot;$(id -u)&amp;quot; -eq 0 ]; then&lt;br /&gt;
      PS1='# '&lt;br /&gt;
    else&lt;br /&gt;
      PS1='$ '&lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ -d /etc/profile.d ]; then&lt;br /&gt;
  for i in /etc/profile.d/*.sh; do&lt;br /&gt;
    if [ -r $i ]; then&lt;br /&gt;
      . $i&lt;br /&gt;
    fi&lt;br /&gt;
  done&lt;br /&gt;
  unset i&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
export JAVA_HOME=/usr/local/java/jdk18&lt;br /&gt;
export JRE_HOME=${JAVA_HOME}/jre&lt;br /&gt;
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib&lt;br /&gt;
export PATH=${JAVA_HOME}/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
# Bring into effect&lt;br /&gt;
root@rock-4c-plus:/usr/local/java# source /etc/profile&lt;br /&gt;
&lt;br /&gt;
# verification&lt;br /&gt;
root@rock-4c-plus:/usr/local/java# java -version&lt;br /&gt;
openjdk version &amp;quot;18.0.2.1&amp;quot; 2022-08-18&lt;br /&gt;
OpenJDK Runtime Environment (build 18.0.2.1+1-1)&lt;br /&gt;
OpenJDK 64-Bit Server VM (build 18.0.2.1+1-1, mixed mode, sharing)&lt;br /&gt;
&lt;br /&gt;
root@rock-4c-plus:/usr/local/java# javac -version&lt;br /&gt;
javac 18.0.2.1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For Debian Bullseye Distribution the below commands install the essential set:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rock-4c-plus:/home/rock# apt-get install -y git build-essential swig python-dev python3-dev libnode-dev  cmake libjson-c-dev&lt;br /&gt;
root@rock-4c-plus:/home/rock# apt-get install -y libc6 libgcc1 libstdc++6 python python2.7 libpython2.7 python3.8 libpython3.8 python3-dev python3&lt;br /&gt;
root@rock-4c-plus:/home/rock# apt-get install -y libgtest-dev pkg-config cmake-data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Get source code.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rock-4c-plus:/home/rock# git clone -b master https://github.com/radxa/mraa.git&lt;br /&gt;
root@rock-4c-plus:/home/rock# cd mraa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Patch the source code for building mraa with Python and java&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/CMakeLists.txt b/CMakeLists.txt&lt;br /&gt;
index 250d910..6446f11 100644&lt;br /&gt;
--- a/CMakeLists.txt&lt;br /&gt;
+++ b/CMakeLists.txt&lt;br /&gt;
@@ -1,4 +1,4 @@&lt;br /&gt;
-cmake_minimum_required (VERSION 2.8.11)&lt;br /&gt;
+cmake_minimum_required (VERSION 3.13.0)&lt;br /&gt;
 project (mraa C CXX)&lt;br /&gt;
 &lt;br /&gt;
 FIND_PACKAGE (Threads REQUIRED)&lt;br /&gt;
@@ -9,6 +9,8 @@ if (CMAKE_VERSION VERSION_LESS &amp;quot;3.1&amp;quot;)&lt;br /&gt;
   endif ()&lt;br /&gt;
 else ()&lt;br /&gt;
   set (CMAKE_C_STANDARD 99)&lt;br /&gt;
+  cmake_policy(SET CMP0078 OLD)&lt;br /&gt;
+  cmake_policy(SET CMP0086 NEW)&lt;br /&gt;
 endif ()&lt;br /&gt;
 &lt;br /&gt;
 ###############################################################################&lt;br /&gt;
@@ -145,8 +147,8 @@ include_directories (${SYSTEM_USR_DIR})&lt;br /&gt;
 option (BUILDDOC &amp;quot;Build all doc.&amp;quot; OFF)&lt;br /&gt;
 option (BUILDSWIG &amp;quot;Build swig modules.&amp;quot; ON)&lt;br /&gt;
 option (BUILDSWIGPYTHON &amp;quot;Build swig python modules.&amp;quot; ON)&lt;br /&gt;
-option (BUILDSWIGNODE &amp;quot;Build swig node modules.&amp;quot; ON)&lt;br /&gt;
-option (BUILDSWIGJAVA &amp;quot;Build Java API.&amp;quot; OFF)&lt;br /&gt;
+option (BUILDSWIGNODE &amp;quot;Build swig node modules.&amp;quot; OFF)&lt;br /&gt;
+option (BUILDSWIGJAVA &amp;quot;Build Java API.&amp;quot; ON)&lt;br /&gt;
 option (USBPLAT &amp;quot;Detection USB platform.&amp;quot; OFF)&lt;br /&gt;
 option (FIRMATA &amp;quot;Add Firmata support to mraa.&amp;quot; OFF)&lt;br /&gt;
 option (ONEWIRE &amp;quot;Add Onewire support to mraa.&amp;quot; ON)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
diff --git a/include/version.h b/include/version.h&lt;br /&gt;
index 47366ef..3a567a1 100644&lt;br /&gt;
--- a/include/version.h&lt;br /&gt;
+++ b/include/version.h&lt;br /&gt;
@@ -11,8 +11,8 @@&lt;br /&gt;
 extern &amp;quot;C&amp;quot; {&lt;br /&gt;
 #endif&lt;br /&gt;
 &lt;br /&gt;
-const char* gVERSION;&lt;br /&gt;
-const char* gVERSION_SHORT;&lt;br /&gt;
+extern const char* gVERSION;&lt;br /&gt;
+extern const char* gVERSION_SHORT;&lt;br /&gt;
 &lt;br /&gt;
 #ifdef __cplusplus&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build and install mraa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rock-4c-plus:/home/rock# mkdir build&lt;br /&gt;
root@rock-4c-plus:/home/rock# cd build/&lt;br /&gt;
root@rock-4c-plus:/home/rock# cmake ..&lt;br /&gt;
root@rock-4c-plus:/home/rock# make&lt;br /&gt;
rooroot@rock-4c-plus:/home/rock# make install&lt;br /&gt;
root@rock-4c-plus:/home/rock# ldconfig&lt;br /&gt;
root@rock-4c-plus:/home/rock# mraa-gpio version&lt;br /&gt;
Version v2.1.0 on ROCK Pi 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Install example: Install Mraa on ROCK Pi 4B Debian11 armhf system ====&lt;br /&gt;
For Debian11 Distribution the below commands install the essential set:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rockpi-4b:/home/rock# apt-get install -y git build-essential swig4.0 python-dev cmake libnode-dev python3-dev pkg-config tree&lt;br /&gt;
root@rockpi-4b:/home/rock# apt-get install -y libc6 libjson-c5 libjson-c-dev libgtest-dev libgcc1 libstdc++6 python python2.7 libpython2.7 python3.9 libpython3.9&lt;br /&gt;
root@rockpi-4b:/home/rock# apt-get install -y libgtest-dev pkg-config cmake-data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get source code.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rockpi-4b:/home/rock# git clone -b master https://github.com/radxa/mraa.git&lt;br /&gt;
root@rockpi-4b:/home/rock# cd mraa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Patch the source code for building mraa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
diff --git a/CMakeLists.txt b/CMakeLists.txt&lt;br /&gt;
index 250d910..9050100 100644&lt;br /&gt;
--- a/CMakeLists.txt&lt;br /&gt;
+++ b/CMakeLists.txt&lt;br /&gt;
@@ -1,4 +1,4 @@&lt;br /&gt;
-cmake_minimum_required (VERSION 2.8.11)&lt;br /&gt;
+cmake_minimum_required (VERSION 3.14.0)&lt;br /&gt;
 project (mraa C CXX)&lt;br /&gt;
 &lt;br /&gt;
 FIND_PACKAGE (Threads REQUIRED)&lt;br /&gt;
@@ -9,6 +9,8 @@ if (CMAKE_VERSION VERSION_LESS &amp;quot;3.1&amp;quot;)&lt;br /&gt;
   endif ()&lt;br /&gt;
 else ()&lt;br /&gt;
   set (CMAKE_C_STANDARD 99)&lt;br /&gt;
+  cmake_policy(SET CMP0078 OLD)&lt;br /&gt;
+  cmake_policy(SET CMP0086 NEW)&lt;br /&gt;
 endif ()&lt;br /&gt;
 &lt;br /&gt;
 ###############################################################################&lt;br /&gt;
diff --git a/include/version.h b/include/version.h&lt;br /&gt;
index 47366ef..3a567a1 100644&lt;br /&gt;
--- a/include/version.h&lt;br /&gt;
+++ b/include/version.h&lt;br /&gt;
@@ -11,8 +11,8 @@&lt;br /&gt;
 extern &amp;quot;C&amp;quot; {&lt;br /&gt;
 #endif&lt;br /&gt;
 &lt;br /&gt;
-const char* gVERSION;&lt;br /&gt;
-const char* gVERSION_SHORT;&lt;br /&gt;
+extern const char* gVERSION;&lt;br /&gt;
+extern const char* gVERSION_SHORT;&lt;br /&gt;
 &lt;br /&gt;
 #ifdef __cplusplus&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build and install mraa&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rockpi-4b:/home/rock/mraa# mkdir build&lt;br /&gt;
root@rockpi-4b:/home/rock/mraa# cd build&lt;br /&gt;
root@rockpi-4b:/home/rock/mraa/build# cmake ..&lt;br /&gt;
root@rockpi-4b:/home/rock/mraa/build# make&lt;br /&gt;
root@rockpi-4b:/home/rock/mraa/build# make install&lt;br /&gt;
root@rockpi-4b:/home/rock/mraa/build# ldconfig&lt;br /&gt;
root@rockpi-4b:/home/rock/mraa/build# mraa-gpio version&lt;br /&gt;
Version v2.1.0-25-gf854463 on ROCK Pi 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Backup prebuilt mraa on directory output.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@rockpi-4b:/home/rock/mraa/build# mkdir output&lt;br /&gt;
root@rockpi-4b:/home/rock/mraa/build# make install DESTDIR=output&lt;br /&gt;
root@rockpi-4b:/home/rock/mraa/build# tree output&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Use mraa ====&lt;br /&gt;
Since we have installed mraa successfully, now we start to use it. At this part, you can check out the following guides.&lt;br /&gt;
&lt;br /&gt;
* [[rockpi4/dev/libmraa  | mraa on ROCK Pi 4 ]]&lt;br /&gt;
* [[rockpiE/dev/libmraa  | mraa on ROCK Pi E ]]&lt;br /&gt;
* [[rockpiN10/dev/libmraa  | mraa on ROCK Pi N10 ]]&lt;br /&gt;
* [[rockpiS/dev/libmraa  | mraa on ROCK Pi S ]]&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
* If you have an issue, start a new post on the forum. https://forum.radxa.com/.&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock3/dev/libmraa-cm3-io</id>
		<title>Rock3/dev/libmraa-cm3-io</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock3/dev/libmraa-cm3-io"/>
				<updated>2023-06-06T01:51:55Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|Rock3/dev/libmraa_cm3_io}}&lt;br /&gt;
&lt;br /&gt;
       [[rock3 | ROCK 3]] &amp;gt; [[rock3/dev | Development]] &amp;gt; [[rock3/dev/libmraa_cm3_io  |  Libmraa on cm3 io]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Functional interface === &lt;br /&gt;
For function interface of libmraa, you can refer to the folder &amp;quot;/usr/local/include/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Enable interface === &lt;br /&gt;
See Radxa CM3 IO [[https://wiki.radxa.com/Rock3/CM3/IO/GPIO | GPIO pinout]]. ROCK 4 has a 40-pin expansion header. Each pin is distinguished by color. mraa define follow:  &lt;br /&gt;
&lt;br /&gt;
27 GPIO:&lt;br /&gt;
    PIN03    GPIO0_B6&lt;br /&gt;
    PIN05    GPIO0_B5&lt;br /&gt;
    PIN07    GPIO3_D5&lt;br /&gt;
    PIN11    GPIO0_C7&lt;br /&gt;
    PIN13    GPIO0_B7&lt;br /&gt;
    PIN15    GPIO0_C3&lt;br /&gt;
    PIN19    GPIO4_B2&lt;br /&gt;
    PIN21    GPIO4_B0&lt;br /&gt;
    PIN23    GPIO4_B3&lt;br /&gt;
    PIN27    GPIO4_B4&lt;br /&gt;
    PIN29    GPIO4_B1&lt;br /&gt;
    PIN31    GPIO0_C5&lt;br /&gt;
    PIN33    GPIO0_C6&lt;br /&gt;
    PIN35    GPIO3_D0&lt;br /&gt;
    PIN37    GPIO0_C2&lt;br /&gt;
    PIN08    GPIO0_D1&lt;br /&gt;
    PIN10    GPIO0_D0&lt;br /&gt;
    PIN12    GPIO3_C7&lt;br /&gt;
    PIN16    GPIO3_D4&lt;br /&gt;
    PIN18    GPIO3_D3&lt;br /&gt;
    PIN22    GPIO3_C6&lt;br /&gt;
    PIN24    GPIO4_A6&lt;br /&gt;
    PIN28    GPIO4_B5&lt;br /&gt;
    PIN32    GPIO4_C0&lt;br /&gt;
    PIN36    GPIO4_A7&lt;br /&gt;
    PIN38    GPIO3_D2&lt;br /&gt;
    PIN40    GPIO3_D1&lt;br /&gt;
&lt;br /&gt;
3 I2C:&lt;br /&gt;
    PIN3     I2C2_SDA_M0&lt;br /&gt;
    PIN5     I2C2_SCL_M0&lt;br /&gt;
    PIN19    I2C4_SDA_M0&lt;br /&gt;
    PIN23    I2C4_SCL_M0&lt;br /&gt;
    PIN29    I2C2_SDA_M1&lt;br /&gt;
    PIN31    I2C2_SCL_M1&lt;br /&gt;
2 SPI:&lt;br /&gt;
    PIN3     SPI0_MOSI_M0&lt;br /&gt;
    PIN5     SPI0_CLK_M0&lt;br /&gt;
    PIN31    SPI0_MISO_M0&lt;br /&gt;
    PIN33    SPI0_CS0_M0&lt;br /&gt;
    PIN19    SPI0_CS0_M0&lt;br /&gt;
    PIN31    SPI3_MISO_M0&lt;br /&gt;
    PIN7     SPI3_CLK_M0&lt;br /&gt;
    PIN33    SPI3_CS0_M0&lt;br /&gt;
1 UART:&lt;br /&gt;
    PIN8      UART2_TX_M0&lt;br /&gt;
    PIN10     UART2_RX_M0&lt;br /&gt;
9 PWM:&lt;br /&gt;
    PIN3     PWM2_M1&lt;br /&gt;
    PIN5     PWM1_M1&lt;br /&gt;
    PIN11    PWM0_M1&lt;br /&gt;
    PIN13    PWM0_M0&lt;br /&gt;
    PIN15    PWM4&lt;br /&gt;
    PIN31    PWM6&lt;br /&gt;
    PIN33    PWM7_IR&lt;br /&gt;
    PIN37    PWM3_IR&lt;br /&gt;
    PIN32    PWM11_IR_M1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 ADC:&lt;br /&gt;
    PIN26      SARADC_VIN3&lt;br /&gt;
&lt;br /&gt;
=== Test ===&lt;br /&gt;
==== GPIO Test ====&lt;br /&gt;
&lt;br /&gt;
Use '''mraa-gpio''' tool to test  &lt;br /&gt;
&lt;br /&gt;
    radxa@radxa-cm3-io:~$ sudo mraa-gpio list&lt;br /&gt;
    [sudo] password for radxa: &lt;br /&gt;
    01         3V3: &lt;br /&gt;
    02          5V: &lt;br /&gt;
    03        SDA2: GPIO I2C  &lt;br /&gt;
    04          5V: &lt;br /&gt;
    05        SCL2: GPIO I2C  &lt;br /&gt;
    06         GND: &lt;br /&gt;
    07    GPIO3_D5: GPIO &lt;br /&gt;
    08        TXD2: GPIO UART &lt;br /&gt;
    09         GND: &lt;br /&gt;
    10        RXD2: GPIO UART &lt;br /&gt;
    11     PWM0_M0: GPIO PWM  &lt;br /&gt;
    12    GPIO3_A7: GPIO &lt;br /&gt;
    13     PWM0_M1: GPIO PWM  &lt;br /&gt;
    14         GND: &lt;br /&gt;
    15        PWM4: GPIO PWM  &lt;br /&gt;
    16    GPIO3_D4: GPIO &lt;br /&gt;
    17         3V3: &lt;br /&gt;
    18    GPIO3_D3: GPIO &lt;br /&gt;
    19 SPI3_MOSI_M: GPIO SPI  UART &lt;br /&gt;
    20         GND: &lt;br /&gt;
    21 SPI3_MISO_M: GPIO SPI  UART &lt;br /&gt;
    22    GPIO3_C6: GPIO &lt;br /&gt;
    23  SPI1CLK_M0: GPIO SPI  UART &lt;br /&gt;
    24 SPI3_CS0_M0: GPIO SPI  &lt;br /&gt;
    25         GND: &lt;br /&gt;
    26      SARADC: AIO  &lt;br /&gt;
    27     SDA2_M1: GPIO I2C  &lt;br /&gt;
    28     SCL2_M1: GPIO I2C  &lt;br /&gt;
    29 SDO2,SPI3_C: GPIO I2C  SPI  &lt;br /&gt;
    30         GND: &lt;br /&gt;
    31 SDA6,SPI0_M: GPIO I2C  SPI  &lt;br /&gt;
    32 PWM11_IR_M1: GPIO &lt;br /&gt;
    33 SPI0_SC0_M0: GPIO SPI  &lt;br /&gt;
    34         GND: &lt;br /&gt;
    35    GPIO3_D0: GPIO &lt;br /&gt;
    36 SPI3_SC1_M0: GPIO &lt;br /&gt;
    37     PWM3_IR: GPIO &lt;br /&gt;
    38    GPIO3_D2: GPIO &lt;br /&gt;
    39         GND: &lt;br /&gt;
    40    GPIO3_D1: GPIO &lt;br /&gt;
&lt;br /&gt;
    radxa@radxa-cm3-io:~$   sudo mraa-gpio set 40 1  //pin40 pull high                                                                                                                      &lt;br /&gt;
    radxa@radxa-cm3-io:~$   sudo mraa-gpio set 40 0  //pin40 pull low&lt;br /&gt;
&lt;br /&gt;
==== I2C Test ====&lt;br /&gt;
Firstly, use rsetup command to enable i2c2, i2c4&lt;br /&gt;
&lt;br /&gt;
Then, use '''mraa-i2c''' tool to test,we must have a i2c slave device,for example,we use I2C led(0x20):&lt;br /&gt;
&lt;br /&gt;
    radxa@radxa-cm3-io:~$ sudo mraa-i2c list&lt;br /&gt;
    Bus   0: id=02 type=linux  default&lt;br /&gt;
    Bus   1: id=04 type=linux&lt;br /&gt;
    radxa@radxa-cm3-io:~$ sudo i2cdetect -r -y 0&lt;br /&gt;
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f&lt;br /&gt;
    00:                         -- -- -- -- -- -- -- -- &lt;br /&gt;
    10: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- &lt;br /&gt;
    20: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
    50: 50 51 52 53 54 55 56 57 -- -- -- -- -- -- -- -- &lt;br /&gt;
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
    70: -- -- -- -- -- -- -- -- &lt;br /&gt;
    &lt;br /&gt;
    then download the test example [https://github.com/nascs/sample_code/blob/main/mraa/c/led_i2c_blink.c led_i2c_blink]&lt;br /&gt;
    radxa@radxa-cm3-io:~$ gcc i2c_led_blink.c -lmraa -o i2c_led_blink&lt;br /&gt;
    radxa@radxa-cm3-io:~$ sudo ./i2c_led_blink&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
==== SPI Test ====&lt;br /&gt;
    Firstly, use rsetup command to enable spi0,&lt;br /&gt;
    compile the example file /usr/local/share/mraa/examples/c/spi.c&lt;br /&gt;
    then short pin2 and pin31 and run the ./a.out&lt;br /&gt;
    radxa@radxa-cm3-io:~$  gcc /usr/local/share/mraa/examples/c/spi.c -lmraa &lt;br /&gt;
    radxa@radxa-cm3-io:~$  sudo ./a.out&lt;br /&gt;
 &lt;br /&gt;
    0xaa&lt;br /&gt;
    0xaa&lt;br /&gt;
    ......&lt;br /&gt;
&lt;br /&gt;
==== PWM test ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use c program in /usr/local/share/mraa/examples/c/pwm.c to test:  &lt;br /&gt;
&lt;br /&gt;
Modify the macro PWM in /usr/local/share/mraa/examples/c/pwm.c as follows to test PWM0. To test PWM1, change #define PWM 11 to #define PWM 13. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===More examples===&lt;br /&gt;
More examples (including examples written in python and java) can be found  at:&lt;br /&gt;
&lt;br /&gt;
/usr/local/share/mraa/examples/&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock3/dev</id>
		<title>Rock3/dev</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock3/dev"/>
				<updated>2023-06-05T09:24:15Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rock3_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|rock3/dev}}&lt;br /&gt;
&lt;br /&gt;
    [[rock3 | ROCK 3]] &amp;gt; [[rock3/dev | Development Guide]]&lt;br /&gt;
&lt;br /&gt;
This page describes development tips for ROCK 3.&lt;br /&gt;
&lt;br /&gt;
* [[rock3/Debian | How to use Radxa Official Debian]]&lt;br /&gt;
* [[rock3/Ubuntu | How to use Radxa Official Ubuntu]]&lt;br /&gt;
* [[rock3/radxa-apt | Radxa APT]]&lt;br /&gt;
* [[radxa-configuration | Radxa Configuration]]&lt;br /&gt;
* [[Device-tree-overlays | Device Tree Overlays]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/radxa/debos-radxa debos-radxa] build Radxa official system images&lt;br /&gt;
* [[rock3/dev/Debian | Build Debian from scratch]]&lt;br /&gt;
* [[rock3/dev/serial-console | Using Serial Console]]&lt;br /&gt;
* [[rock3/dev/pxe-boot | PXE Boot ]]&lt;br /&gt;
* [[rock3/dev/adb | Using Android Debug Bridge]]&lt;br /&gt;
* [[rock3/dev/can | Using CAN bus communication]]&lt;br /&gt;
* [[rock3/dev/install-coral-pcie-driver-and edge tpu-runtime-packages | Using Coral Edge TPU]]&lt;br /&gt;
* [[rock3/dev/npu-run-test | NPU Run Test]]&lt;br /&gt;
* [[rock3/dev/rknn-toolkit-with-pc | RKNN Toolkit with PC]]&lt;br /&gt;
* [[rock3/dev/libmraa | Install libmraa]]&lt;br /&gt;
* [[rock3/dev/libmraa-cm3-io | libmraa on Radxa CM3 IO]]&lt;br /&gt;
* [[rock3/install/spi | SPI]] + [[rock3/install/nvme | NVME SSD]] boot&lt;br /&gt;
* [[rock3/dev/change-kernel-params | Change kernel params ]]&lt;br /&gt;
* [[rock3/dev/mainline | Mainline Development]]&lt;br /&gt;
* [[rock3/dev/uefi | Unified Extensible Firmware Interface]]&lt;br /&gt;
* [[rock3/dev/sata-on-radxa-cm3-io | Use SATA SSD on Radxa CM3 IO]]&lt;br /&gt;
* [[rock3/dev/install-docker-engineer-on-docker | Install Docker Engine on Debian]]&lt;br /&gt;
* [[rock3/dev/usb-device-network | USB Device Network]]&lt;br /&gt;
* [[rock3/dev/ap-mode-on-radxa-e25 | AP mode on Radxa E25]]&lt;br /&gt;
* [[rock3/dev/radxa-e25-ums | Radxa E25 as USB Mass Storage]]&lt;br /&gt;
* [[rock3/dev/radxa-e23-audio | Radxa E23 Audio Test]]&lt;br /&gt;
* [[rock3/dev/radxa-cm3-io-display | Use Radxa Display 10HD on Radxa CM3 IO]]&lt;br /&gt;
* [[rock3/dev/uart | Use the debug serial port as a normal serial port]]&lt;br /&gt;
* [[rock3/dev/usb-gadget | USB Gadget Support]]&lt;br /&gt;
* [[rock3/dev/qt | porting qt to rockchip platforms]]&lt;br /&gt;
* [[rock3/dev/qt_and_libwiringX | Embed wiringX into the qt project]]&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
* [[AI | AI Development]]&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
* [[Rock3/Android11 | Android11]]&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock3/dev/libmraa-cm3-io</id>
		<title>Rock3/dev/libmraa-cm3-io</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock3/dev/libmraa-cm3-io"/>
				<updated>2023-06-05T09:21:03Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|Rock3/dev/libmraa_cm3_io}}&lt;br /&gt;
&lt;br /&gt;
       [[rock3 | ROCK 3]] &amp;gt; [[rock3/dev | Development]] &amp;gt; [[rock3/dev/libmraa_cm3_io  | Install Libmraa ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Functional interface === &lt;br /&gt;
For function interface of libmraa, you can refer to the folder &amp;quot;/usr/local/include/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Enable interface === &lt;br /&gt;
See Radxa CM3 IO [[https://wiki.radxa.com/Rock3/CM3/IO/GPIO | GPIO pinout]]. ROCK 4 has a 40-pin expansion header. Each pin is distinguished by color. mraa define follow:  &lt;br /&gt;
&lt;br /&gt;
27 GPIO:&lt;br /&gt;
    PIN03    GPIO0_B6&lt;br /&gt;
    PIN05    GPIO0_B5&lt;br /&gt;
    PIN07    GPIO3_D5&lt;br /&gt;
    PIN11    GPIO0_C7&lt;br /&gt;
    PIN13    GPIO0_B7&lt;br /&gt;
    PIN15    GPIO0_C3&lt;br /&gt;
    PIN19    GPIO4_B2&lt;br /&gt;
    PIN21    GPIO4_B0&lt;br /&gt;
    PIN23    GPIO4_B3&lt;br /&gt;
    PIN27    GPIO4_B4&lt;br /&gt;
    PIN29    GPIO4_B1&lt;br /&gt;
    PIN31    GPIO0_C5&lt;br /&gt;
    PIN33    GPIO0_C6&lt;br /&gt;
    PIN35    GPIO3_D0&lt;br /&gt;
    PIN37    GPIO0_C2&lt;br /&gt;
    PIN08    GPIO0_D1&lt;br /&gt;
    PIN10    GPIO0_D0&lt;br /&gt;
    PIN12    GPIO3_C7&lt;br /&gt;
    PIN16    GPIO3_D4&lt;br /&gt;
    PIN18    GPIO3_D3&lt;br /&gt;
    PIN22    GPIO3_C6&lt;br /&gt;
    PIN24    GPIO4_A6&lt;br /&gt;
    PIN28    GPIO4_B5&lt;br /&gt;
    PIN32    GPIO4_C0&lt;br /&gt;
    PIN36    GPIO4_A7&lt;br /&gt;
    PIN38    GPIO3_D2&lt;br /&gt;
    PIN40    GPIO3_D1&lt;br /&gt;
&lt;br /&gt;
3 I2C:&lt;br /&gt;
    PIN3     I2C2_SDA_M0&lt;br /&gt;
    PIN5     I2C2_SCL_M0&lt;br /&gt;
    PIN19    I2C4_SDA_M0&lt;br /&gt;
    PIN23    I2C4_SCL_M0&lt;br /&gt;
    PIN29    I2C2_SDA_M1&lt;br /&gt;
    PIN31    I2C2_SCL_M1&lt;br /&gt;
2 SPI:&lt;br /&gt;
    PIN3     SPI0_MOSI_M0&lt;br /&gt;
    PIN5     SPI0_CLK_M0&lt;br /&gt;
    PIN31    SPI0_MISO_M0&lt;br /&gt;
    PIN33    SPI0_CS0_M0&lt;br /&gt;
    PIN19    SPI0_CS0_M0&lt;br /&gt;
    PIN31    SPI3_MISO_M0&lt;br /&gt;
    PIN7     SPI3_CLK_M0&lt;br /&gt;
    PIN33    SPI3_CS0_M0&lt;br /&gt;
1 UART:&lt;br /&gt;
    PIN8      UART2_TX_M0&lt;br /&gt;
    PIN10     UART2_RX_M0&lt;br /&gt;
9 PWM:&lt;br /&gt;
    PIN3     PWM2_M1&lt;br /&gt;
    PIN5     PWM1_M1&lt;br /&gt;
    PIN11    PWM0_M1&lt;br /&gt;
    PIN13    PWM0_M0&lt;br /&gt;
    PIN15    PWM4&lt;br /&gt;
    PIN31    PWM6&lt;br /&gt;
    PIN33    PWM7_IR&lt;br /&gt;
    PIN37    PWM3_IR&lt;br /&gt;
    PIN32    PWM11_IR_M1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 ADC:&lt;br /&gt;
    PIN26      SARADC_VIN3&lt;br /&gt;
&lt;br /&gt;
=== Test ===&lt;br /&gt;
==== GPIO Test ====&lt;br /&gt;
&lt;br /&gt;
Use '''mraa-gpio''' tool to test  &lt;br /&gt;
&lt;br /&gt;
    radxa@radxa-cm3-io:~$ sudo mraa-gpio list&lt;br /&gt;
    [sudo] password for radxa: &lt;br /&gt;
    01         3V3: &lt;br /&gt;
    02          5V: &lt;br /&gt;
    03        SDA2: GPIO I2C  &lt;br /&gt;
    04          5V: &lt;br /&gt;
    05        SCL2: GPIO I2C  &lt;br /&gt;
    06         GND: &lt;br /&gt;
    07    GPIO3_D5: GPIO &lt;br /&gt;
    08        TXD2: GPIO UART &lt;br /&gt;
    09         GND: &lt;br /&gt;
    10        RXD2: GPIO UART &lt;br /&gt;
    11     PWM0_M0: GPIO PWM  &lt;br /&gt;
    12    GPIO3_A7: GPIO &lt;br /&gt;
    13     PWM0_M1: GPIO PWM  &lt;br /&gt;
    14         GND: &lt;br /&gt;
    15        PWM4: GPIO PWM  &lt;br /&gt;
    16    GPIO3_D4: GPIO &lt;br /&gt;
    17         3V3: &lt;br /&gt;
    18    GPIO3_D3: GPIO &lt;br /&gt;
    19 SPI3_MOSI_M: GPIO SPI  UART &lt;br /&gt;
    20         GND: &lt;br /&gt;
    21 SPI3_MISO_M: GPIO SPI  UART &lt;br /&gt;
    22    GPIO3_C6: GPIO &lt;br /&gt;
    23  SPI1CLK_M0: GPIO SPI  UART &lt;br /&gt;
    24 SPI3_CS0_M0: GPIO SPI  &lt;br /&gt;
    25         GND: &lt;br /&gt;
    26      SARADC: AIO  &lt;br /&gt;
    27     SDA2_M1: GPIO I2C  &lt;br /&gt;
    28     SCL2_M1: GPIO I2C  &lt;br /&gt;
    29 SDO2,SPI3_C: GPIO I2C  SPI  &lt;br /&gt;
    30         GND: &lt;br /&gt;
    31 SDA6,SPI0_M: GPIO I2C  SPI  &lt;br /&gt;
    32 PWM11_IR_M1: GPIO &lt;br /&gt;
    33 SPI0_SC0_M0: GPIO SPI  &lt;br /&gt;
    34         GND: &lt;br /&gt;
    35    GPIO3_D0: GPIO &lt;br /&gt;
    36 SPI3_SC1_M0: GPIO &lt;br /&gt;
    37     PWM3_IR: GPIO &lt;br /&gt;
    38    GPIO3_D2: GPIO &lt;br /&gt;
    39         GND: &lt;br /&gt;
    40    GPIO3_D1: GPIO &lt;br /&gt;
&lt;br /&gt;
    radxa@radxa-cm3-io:~$   sudo mraa-gpio set 40 1  //pin40 pull high                                                                                                                      &lt;br /&gt;
    radxa@radxa-cm3-io:~$   sudo mraa-gpio set 40 0  //pin40 pull low&lt;br /&gt;
&lt;br /&gt;
==== I2C Test ====&lt;br /&gt;
Firstly, use rsetup command to enable i2c2, i2c4&lt;br /&gt;
&lt;br /&gt;
Then, use '''mraa-i2c''' tool to test,we must have a i2c slave device,for example,we use I2C led(0x20):&lt;br /&gt;
&lt;br /&gt;
    radxa@radxa-cm3-io:~$ sudo mraa-i2c list&lt;br /&gt;
    Bus   0: id=02 type=linux  default&lt;br /&gt;
    Bus   1: id=04 type=linux&lt;br /&gt;
    radxa@radxa-cm3-io:~$ sudo i2cdetect -r -y 0&lt;br /&gt;
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f&lt;br /&gt;
    00:                         -- -- -- -- -- -- -- -- &lt;br /&gt;
    10: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- &lt;br /&gt;
    20: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
    50: 50 51 52 53 54 55 56 57 -- -- -- -- -- -- -- -- &lt;br /&gt;
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
    70: -- -- -- -- -- -- -- -- &lt;br /&gt;
    &lt;br /&gt;
    then download the test example [https://github.com/nascs/sample_code/blob/main/mraa/c/led_i2c_blink.c led_i2c_blink]&lt;br /&gt;
    radxa@radxa-cm3-io:~$ gcc i2c_led_blink.c -lmraa -o i2c_led_blink&lt;br /&gt;
    radxa@radxa-cm3-io:~$ sudo ./i2c_led_blink&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
==== SPI Test ====&lt;br /&gt;
    Firstly, use rsetup command to enable spi0,&lt;br /&gt;
    compile the example file /usr/local/share/mraa/examples/c/spi.c&lt;br /&gt;
    then short pin2 and pin31 and run the ./a.out&lt;br /&gt;
    radxa@radxa-cm3-io:~$  gcc /usr/local/share/mraa/examples/c/spi.c -lmraa &lt;br /&gt;
    radxa@radxa-cm3-io:~$  sudo ./a.out&lt;br /&gt;
 &lt;br /&gt;
    0xaa&lt;br /&gt;
    0xaa&lt;br /&gt;
    ......&lt;br /&gt;
&lt;br /&gt;
==== PWM test ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use c program in /usr/local/share/mraa/examples/c/pwm.c to test:  &lt;br /&gt;
&lt;br /&gt;
Modify the macro PWM in /usr/local/share/mraa/examples/c/pwm.c as follows to test PWM0. To test PWM1, change #define PWM 11 to #define PWM 13. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===More examples===&lt;br /&gt;
More examples (including examples written in python and java) can be found  at:&lt;br /&gt;
&lt;br /&gt;
/usr/local/share/mraa/examples/&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock3/dev/libmraa-cm3-io</id>
		<title>Rock3/dev/libmraa-cm3-io</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock3/dev/libmraa-cm3-io"/>
				<updated>2023-06-05T09:16:53Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: Created page with &amp;quot;{{rockpi4_header}}  {{Languages|Rock3/dev/libmraa_cm3_io}}          ROCK 3 &amp;gt;  Development &amp;gt;  Install Libmraa    === En...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|Rock3/dev/libmraa_cm3_io}}&lt;br /&gt;
&lt;br /&gt;
       [[rock3 | ROCK 3]] &amp;gt; [[rock3/dev | Development]] &amp;gt; [[rock3/dev/libmraa_cm3_io  | Install Libmraa ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enable interface === &lt;br /&gt;
See Radxa CM3 IO [[https://wiki.radxa.com/Rock3/CM3/IO/GPIO | GPIO pinout]]. ROCK 4 has a 40-pin expansion header. Each pin is distinguished by color. mraa define follow:  &lt;br /&gt;
&lt;br /&gt;
27 GPIO:&lt;br /&gt;
    PIN03    GPIO0_B6&lt;br /&gt;
    PIN05    GPIO0_B5&lt;br /&gt;
    PIN07    GPIO3_D5&lt;br /&gt;
    PIN11    GPIO0_C7&lt;br /&gt;
    PIN13    GPIO0_B7&lt;br /&gt;
    PIN15    GPIO0_C3&lt;br /&gt;
    PIN19    GPIO4_B2&lt;br /&gt;
    PIN21    GPIO4_B0&lt;br /&gt;
    PIN23    GPIO4_B3&lt;br /&gt;
    PIN27    GPIO4_B4&lt;br /&gt;
    PIN29    GPIO4_B1&lt;br /&gt;
    PIN31    GPIO0_C5&lt;br /&gt;
    PIN33    GPIO0_C6&lt;br /&gt;
    PIN35    GPIO3_D0&lt;br /&gt;
    PIN37    GPIO0_C2&lt;br /&gt;
    PIN08    GPIO0_D1&lt;br /&gt;
    PIN10    GPIO0_D0&lt;br /&gt;
    PIN12    GPIO3_C7&lt;br /&gt;
    PIN16    GPIO3_D4&lt;br /&gt;
    PIN18    GPIO3_D3&lt;br /&gt;
    PIN22    GPIO3_C6&lt;br /&gt;
    PIN24    GPIO4_A6&lt;br /&gt;
    PIN28    GPIO4_B5&lt;br /&gt;
    PIN32    GPIO4_C0&lt;br /&gt;
    PIN36    GPIO4_A7&lt;br /&gt;
    PIN38    GPIO3_D2&lt;br /&gt;
    PIN40    GPIO3_D1&lt;br /&gt;
&lt;br /&gt;
3 I2C:&lt;br /&gt;
    PIN3     I2C2_SDA_M0&lt;br /&gt;
    PIN5     I2C2_SCL_M0&lt;br /&gt;
    PIN19    I2C4_SDA_M0&lt;br /&gt;
    PIN23    I2C4_SCL_M0&lt;br /&gt;
    PIN29    I2C2_SDA_M1&lt;br /&gt;
    PIN31    I2C2_SCL_M1&lt;br /&gt;
2 SPI:&lt;br /&gt;
    PIN3     SPI0_MOSI_M0&lt;br /&gt;
    PIN5     SPI0_CLK_M0&lt;br /&gt;
    PIN31    SPI0_MISO_M0&lt;br /&gt;
    PIN33    SPI0_CS0_M0&lt;br /&gt;
    PIN19    SPI0_CS0_M0&lt;br /&gt;
    PIN31    SPI3_MISO_M0&lt;br /&gt;
    PIN7     SPI3_CLK_M0&lt;br /&gt;
    PIN33    SPI3_CS0_M0&lt;br /&gt;
1 UART:&lt;br /&gt;
    PIN8      UART2_TX_M0&lt;br /&gt;
    PIN10     UART2_RX_M0&lt;br /&gt;
9 PWM:&lt;br /&gt;
    PIN3     PWM2_M1&lt;br /&gt;
    PIN5     PWM1_M1&lt;br /&gt;
    PIN11    PWM0_M1&lt;br /&gt;
    PIN13    PWM0_M0&lt;br /&gt;
    PIN15    PWM4&lt;br /&gt;
    PIN31    PWM6&lt;br /&gt;
    PIN33    PWM7_IR&lt;br /&gt;
    PIN37    PWM3_IR&lt;br /&gt;
    PIN32    PWM11_IR_M1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 ADC:&lt;br /&gt;
    PIN26      SARADC_VIN3&lt;br /&gt;
&lt;br /&gt;
=== Test ===&lt;br /&gt;
==== GPIO Test ====&lt;br /&gt;
&lt;br /&gt;
Use '''mraa-gpio''' tool to test  &lt;br /&gt;
&lt;br /&gt;
    radxa@radxa-cm3-io:~$ sudo mraa-gpio list&lt;br /&gt;
    [sudo] password for radxa: &lt;br /&gt;
    01         3V3: &lt;br /&gt;
    02          5V: &lt;br /&gt;
    03        SDA2: GPIO I2C  &lt;br /&gt;
    04          5V: &lt;br /&gt;
    05        SCL2: GPIO I2C  &lt;br /&gt;
    06         GND: &lt;br /&gt;
    07    GPIO3_D5: GPIO &lt;br /&gt;
    08        TXD2: GPIO UART &lt;br /&gt;
    09         GND: &lt;br /&gt;
    10        RXD2: GPIO UART &lt;br /&gt;
    11     PWM0_M0: GPIO PWM  &lt;br /&gt;
    12    GPIO3_A7: GPIO &lt;br /&gt;
    13     PWM0_M1: GPIO PWM  &lt;br /&gt;
    14         GND: &lt;br /&gt;
    15        PWM4: GPIO PWM  &lt;br /&gt;
    16    GPIO3_D4: GPIO &lt;br /&gt;
    17         3V3: &lt;br /&gt;
    18    GPIO3_D3: GPIO &lt;br /&gt;
    19 SPI3_MOSI_M: GPIO SPI  UART &lt;br /&gt;
    20         GND: &lt;br /&gt;
    21 SPI3_MISO_M: GPIO SPI  UART &lt;br /&gt;
    22    GPIO3_C6: GPIO &lt;br /&gt;
    23  SPI1CLK_M0: GPIO SPI  UART &lt;br /&gt;
    24 SPI3_CS0_M0: GPIO SPI  &lt;br /&gt;
    25         GND: &lt;br /&gt;
    26      SARADC: AIO  &lt;br /&gt;
    27     SDA2_M1: GPIO I2C  &lt;br /&gt;
    28     SCL2_M1: GPIO I2C  &lt;br /&gt;
    29 SDO2,SPI3_C: GPIO I2C  SPI  &lt;br /&gt;
    30         GND: &lt;br /&gt;
    31 SDA6,SPI0_M: GPIO I2C  SPI  &lt;br /&gt;
    32 PWM11_IR_M1: GPIO &lt;br /&gt;
    33 SPI0_SC0_M0: GPIO SPI  &lt;br /&gt;
    34         GND: &lt;br /&gt;
    35    GPIO3_D0: GPIO &lt;br /&gt;
    36 SPI3_SC1_M0: GPIO &lt;br /&gt;
    37     PWM3_IR: GPIO &lt;br /&gt;
    38    GPIO3_D2: GPIO &lt;br /&gt;
    39         GND: &lt;br /&gt;
    40    GPIO3_D1: GPIO &lt;br /&gt;
&lt;br /&gt;
    radxa@radxa-cm3-io:~$   sudo mraa-gpio set 40 1  //pin40 pull high                                                                                                                      &lt;br /&gt;
    radxa@radxa-cm3-io:~$   sudo mraa-gpio set 40 0  //pin40 pull low&lt;br /&gt;
&lt;br /&gt;
==== I2C Test ====&lt;br /&gt;
Firstly, use rsetup command to enable i2c2, i2c4&lt;br /&gt;
&lt;br /&gt;
Then, use '''mraa-i2c''' tool to test,we must have a i2c slave device,for example,we use I2C led(0x20):&lt;br /&gt;
&lt;br /&gt;
    radxa@radxa-cm3-io:~$ sudo mraa-i2c list&lt;br /&gt;
    Bus   0: id=02 type=linux  default&lt;br /&gt;
    Bus   1: id=04 type=linux&lt;br /&gt;
    radxa@radxa-cm3-io:~$ sudo i2cdetect -r -y 0&lt;br /&gt;
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f&lt;br /&gt;
    00:                         -- -- -- -- -- -- -- -- &lt;br /&gt;
    10: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- &lt;br /&gt;
    20: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
    50: 50 51 52 53 54 55 56 57 -- -- -- -- -- -- -- -- &lt;br /&gt;
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
    70: -- -- -- -- -- -- -- -- &lt;br /&gt;
    &lt;br /&gt;
    then download the test example [https://github.com/nascs/sample_code/blob/main/mraa/c/led_i2c_blink.c led_i2c_blink]&lt;br /&gt;
    radxa@radxa-cm3-io:~$ gcc i2c_led_blink.c -lmraa -o i2c_led_blink&lt;br /&gt;
    radxa@radxa-cm3-io:~$ sudo ./i2c_led_blink&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
==== SPI Test ====&lt;br /&gt;
    Firstly, use rsetup command to enable spi0,&lt;br /&gt;
    compile the example file /usr/local/share/mraa/examples/c/spi.c&lt;br /&gt;
    then short pin2 and pin31 and run the ./a.out&lt;br /&gt;
    radxa@radxa-cm3-io:~$  gcc /usr/local/share/mraa/examples/c/spi.c -lmraa &lt;br /&gt;
    radxa@radxa-cm3-io:~$  sudo ./a.out&lt;br /&gt;
 &lt;br /&gt;
    0xaa&lt;br /&gt;
    0xaa&lt;br /&gt;
    ......&lt;br /&gt;
&lt;br /&gt;
==== PWM test ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use c program in /usr/local/share/mraa/examples/c/pwm.c to test:  &lt;br /&gt;
&lt;br /&gt;
Modify the macro PWM in /usr/local/share/mraa/examples/c/pwm.c as follows to test PWM0. To test PWM1, change #define PWM 11 to #define PWM 13. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===More examples===&lt;br /&gt;
More examples (including examples written in python and java) can be found  at:&lt;br /&gt;
&lt;br /&gt;
/usr/local/share/mraa/examples/&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock3/dev/qt</id>
		<title>Rock3/dev/qt</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock3/dev/qt"/>
				<updated>2023-05-10T06:06:12Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rock3_header}}&lt;br /&gt;
{{Languages|rock3/dev/qt | Common interface with linux-5.10}}&lt;br /&gt;
&lt;br /&gt;
    [[rock3 | ROCK 3]] &amp;gt; [[rock3/dev | Development]] &amp;gt; [[rock3/dev/qt | rockchip qt]]&lt;br /&gt;
&lt;br /&gt;
=== porting qt to rockchip platforms ===&lt;br /&gt;
&lt;br /&gt;
==== On ubuntu of x86 platform ====&lt;br /&gt;
The following operations are performed on ubuntu on the x86 platform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Cross-compilation tools =====&lt;br /&gt;
 sudo apt-get install build-essential cmake &lt;br /&gt;
 wget https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz&lt;br /&gt;
 sudo tar xvf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz  -C /usr/local/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== download  qt source code =====&lt;br /&gt;
 mkdir -p pro/qtSourceDir &amp;amp;&amp;amp; cd pro/qtSourceDir&lt;br /&gt;
 wget https://download.qt.io/archive/qt/5.12/5.12.2/single/qt-everywhere-src-5.12.2.tar.xz&lt;br /&gt;
 tar -xvf qt-everywhere-src-5.12.2.tar.xz&lt;br /&gt;
&lt;br /&gt;
 or you can download them from [[https://download.qt.io/archive/qt/ here]]&lt;br /&gt;
&lt;br /&gt;
===== installation =====&lt;br /&gt;
&lt;br /&gt;
 vi qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf&lt;br /&gt;
&lt;br /&gt;
Before modification&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# qmake configuration for building with aarch64-linux-gnu-g++&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
MAKEFILE_GENERATOR      = UNIX&lt;br /&gt;
CONFIG                 += incremental&lt;br /&gt;
QMAKE_INCREMENTAL_STYLE = sublib&lt;br /&gt;
&lt;br /&gt;
include(../common/linux.conf)&lt;br /&gt;
include(../common/gcc-base-unix.conf)&lt;br /&gt;
include(../common/g++-unix.conf)&lt;br /&gt;
&lt;br /&gt;
# modifications to g++.conf&lt;br /&gt;
QMAKE_CC                = aarch64-linux-gnu-gcc&lt;br /&gt;
QMAKE_CXX               = aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK              = aarch64-linux-gnu-g++d&lt;br /&gt;
QMAKE_LINK_SHLIB        = aarch64-linux-gnu-g++&lt;br /&gt;
&lt;br /&gt;
# modifications to linux.conf&lt;br /&gt;
QMAKE_AR                = aarch64-linux-gnu-ar cqs&lt;br /&gt;
QMAKE_OBJCOPY           = aarch64-linux-gnu-objcopy&lt;br /&gt;
QMAKE_NM                = aarch64-linux-gnu-nm -P&lt;br /&gt;
QMAKE_STRIP             = aarch64-linux-gnu-strip&lt;br /&gt;
load(qt_config)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After modification&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# qmake configuration for building with aarch64-linux-gnu-g++&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
MAKEFILE_GENERATOR      = UNIX&lt;br /&gt;
CONFIG                 += incremental&lt;br /&gt;
QMAKE_INCREMENTAL_STYLE = sublib&lt;br /&gt;
&lt;br /&gt;
QT_QPA_DEFAULT_PLATFORM = linuxfb&lt;br /&gt;
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts&lt;br /&gt;
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
include(../common/linux.conf)&lt;br /&gt;
include(../common/gcc-base-unix.conf)&lt;br /&gt;
include(../common/g++-unix.conf)&lt;br /&gt;
&lt;br /&gt;
# modifications to g++.conf&lt;br /&gt;
QMAKE_CC                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc&lt;br /&gt;
QMAKE_CXX               = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK              = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK_SHLIB        = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
&lt;br /&gt;
# modifications to linux.conf&lt;br /&gt;
QMAKE_AR                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ar cqs&lt;br /&gt;
QMAKE_OBJCOPY           = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objcopy&lt;br /&gt;
QMAKE_NM                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm -P&lt;br /&gt;
QMAKE_STRIP             = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip&lt;br /&gt;
load(qt_config)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create a new automatic configuration script file&lt;br /&gt;
 vi auto.sh&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
export CROSS_COMPILE=/usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-&lt;br /&gt;
export PATH=/usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin:$PATH&lt;br /&gt;
export ARCH=arm64&lt;br /&gt;
&lt;br /&gt;
./configure \&lt;br /&gt;
-prefix /opt/qtdir \&lt;br /&gt;
-confirm-license \&lt;br /&gt;
-opensource \&lt;br /&gt;
-release \&lt;br /&gt;
-make libs \&lt;br /&gt;
-xplatform linux-aarch64-gnu-g++ \&lt;br /&gt;
-pch \&lt;br /&gt;
-qt-libjpeg \&lt;br /&gt;
-qt-libpng \&lt;br /&gt;
-qt-zlib \&lt;br /&gt;
-no-opengl \&lt;br /&gt;
-no-sse2 \&lt;br /&gt;
-no-openssl \&lt;br /&gt;
-no-cups \&lt;br /&gt;
-no-glib \&lt;br /&gt;
-no-dbus \&lt;br /&gt;
-no-xcb \&lt;br /&gt;
-no-separate-debug-info \&lt;br /&gt;
-no-ssl \&lt;br /&gt;
-nomake tests \&lt;br /&gt;
-nomake examples \&lt;br /&gt;
-nomake tools \&lt;br /&gt;
-no-sql-sqlite \&lt;br /&gt;
-no-iconv \&lt;br /&gt;
-skip qt3d \&lt;br /&gt;
-skip qtactiveqt \&lt;br /&gt;
-skip qtcanvas3d \&lt;br /&gt;
-skip qtcharts \&lt;br /&gt;
-skip qtconnectivity \&lt;br /&gt;
-skip qtdatavis3d \&lt;br /&gt;
-skip qtdeclarative \&lt;br /&gt;
-skip qtgamepad \&lt;br /&gt;
-skip qtandroidextras \&lt;br /&gt;
-skip qtdoc \&lt;br /&gt;
-skip qtwebchannel \&lt;br /&gt;
-skip qtwebengine \&lt;br /&gt;
-skip qtwebglplugin \&lt;br /&gt;
-skip qtwebview \&lt;br /&gt;
-skip qtvirtualkeyboard \&lt;br /&gt;
-recheck&lt;br /&gt;
&lt;br /&gt;
make  -j4&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 * If you encounter an error similar to the following, &lt;br /&gt;
 /dir/to/source/sol.hpp:7194:59: &lt;br /&gt;
 error: ‘numeric_limits’ is not a member of ‘std’&lt;br /&gt;
 add the following line to the file &lt;br /&gt;
 #include &amp;lt;limits&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 sudo chmod +x auto.sh&lt;br /&gt;
 sudo ./auto.sh&lt;br /&gt;
&lt;br /&gt;
* after success you can see &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
test@test-desktop:/opt$ ls /opt/qtInstallDir/&lt;br /&gt;
bin  doc  include  lib  mkspecs  plugins  translations&lt;br /&gt;
&lt;br /&gt;
test@test-desktop:/opt$ ls /opt/qt5.9.4-arm/&lt;br /&gt;
 bin  lib  mkspecs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== qt creator installation ====&lt;br /&gt;
&lt;br /&gt;
===== download installation tools =====&lt;br /&gt;
&lt;br /&gt;
 wget https://download.qt.io/archive/qt/5.12/5.12.2/qt-opensource-linux-x64-5.12.2.run&lt;br /&gt;
 or you can download them from [[https://download.qt.io/archive/qt/ here]]&lt;br /&gt;
 &lt;br /&gt;
===== installation =====&lt;br /&gt;
 sudo chmod +x qt-opensource-linux-x64-5.12.2.run&lt;br /&gt;
 sudo ./qt-opensource-linux-x64-5.12.2.run&lt;br /&gt;
&lt;br /&gt;
 [[File:qt1.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== env =====&lt;br /&gt;
 &lt;br /&gt;
indeed tools&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 add kits&lt;br /&gt;
 [[File:qt2.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
 add gcc  and g++&lt;br /&gt;
 [[File:qt3.png | 200 px]]&lt;br /&gt;
 [[File:qt4.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
 Then you can add gdb as you would gcc above&lt;br /&gt;
&lt;br /&gt;
 add a new device&lt;br /&gt;
 [[File:qt9.png | 200 px]]&lt;br /&gt;
===== let's coding =====&lt;br /&gt;
 creat a new project&lt;br /&gt;
 [[File:qt6.png | 200 px]]&lt;br /&gt;
 [[File:qt7.png | 200 px]]&lt;br /&gt;
 [[File:qt10.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
 main code&lt;br /&gt;
 [[File:qt12.png | 200 px]]&lt;br /&gt;
 then choose Debugger-&amp;gt;rock-&amp;gt;Debug, just click it&lt;br /&gt;
&lt;br /&gt;
=====  copy the project to you board which has a desktop =====&lt;br /&gt;
&lt;br /&gt;
 scp build-demo4-ext4-Debug radxa@192.168.2.211:~&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== on board ====&lt;br /&gt;
The following operations are performed on ubuntu on the rk3566  or rk3568 rk3588 platform&lt;br /&gt;
* env&lt;br /&gt;
 sudo apt-get install libqt5gui5 -y &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Execute the program&lt;br /&gt;
 sudo chmod +x ./demo4&lt;br /&gt;
 ./demo4&lt;br /&gt;
 or click it &lt;br /&gt;
 [[File:qt13.png | 200 px]]&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Zero/dev</id>
		<title>Zero/dev</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Zero/dev"/>
				<updated>2023-05-09T07:40:20Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Zero_header}}&lt;br /&gt;
{{Languages|zero/dev}}&lt;br /&gt;
&lt;br /&gt;
 [[Zero | Radxa Zero]] &amp;gt; [[zero/dev | Development Guide]]&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/radxa/debos-radxa debos-radxa] build Radxa official system images&lt;br /&gt;
* [[zero/dev/serial-console | Attach to serial console]] to show low level debug message&lt;br /&gt;
* [[zero/dev/adb | Enable adb service in Linux]]&lt;br /&gt;
* [[zero/dev/usb-mass-storage | Enable USB Mass Storage gadget in Linux]]&lt;br /&gt;
* [[zero/dev/u-boot | Build U-Boot]]&lt;br /&gt;
* [[zero/dev/kernel | Build kernel]]&lt;br /&gt;
* [[zero/dev/libmraa | Install Libmraa]] to enable GPIO access and more&lt;br /&gt;
* [[zero/dev/maskrom| Enter maskrom mode]]&lt;br /&gt;
* [[zero/dev/LineageOS | Build LineageOS]]&lt;br /&gt;
* [[zero/dev/RTC module ds3231 | RTC module ds3231]]&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Zero/dev/RTC_module_ds3231</id>
		<title>Zero/dev/RTC module ds3231</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Zero/dev/RTC_module_ds3231"/>
				<updated>2023-05-09T07:26:07Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Zero_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|zero/dev/adb}}&lt;br /&gt;
&lt;br /&gt;
 [[Zero | Radxa Zero]] &amp;gt; [[zero/dev | Development]] &amp;gt; [[zero/dev/RTC module ds3231| RTC module ds3231 ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== enable i2c overlay ====&lt;br /&gt;
use rsetup to enable I2C_EE-M3&lt;br /&gt;
if you don't know how to use rsetup, you can refer  [[https://wiki.radxa.com/Rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10 here]]&lt;br /&gt;
&lt;br /&gt;
==== pin ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zero                 ds3231&lt;br /&gt;
pin 3                sda&lt;br /&gt;
pin 5                scl&lt;br /&gt;
gnd                  gnd&lt;br /&gt;
vcc                   vcc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then reboot your Radxa Zero&lt;br /&gt;
==== checkout device ====&lt;br /&gt;
&lt;br /&gt;
* make sure that i2c_ee-m3 was enabled&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@radxa-zero:/home/radxa# ls /dev/i2c-*&lt;br /&gt;
/dev/i2c-3  /dev/i2c-5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* check the i2c address of the RTC module&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@radxa-zero:/home/radxa# i2cdetect -r -y 3&lt;br /&gt;
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f&lt;br /&gt;
00:                         -- -- -- -- -- -- -- -- &lt;br /&gt;
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
20: -- -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- &lt;br /&gt;
70: -- -- -- -- -- -- -- -- &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== add a new rtc device ====&lt;br /&gt;
&lt;br /&gt;
* add a new rtc device&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@radxa-zero:/home/radxa# echo ds3231 0x68 | sudo tee  /sys/class/i2c-adapter/i2c-3/new_device&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* checkout the new rtc device &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@radxa-zero:/home/radxa# ls /dev/rtc*&lt;br /&gt;
/dev/rtc  /dev/rtc0 /dev/rtc1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== read time from rtc module ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@radxa-zero:/home/radxa# hwclock -r -f /dev/rtc1&lt;br /&gt;
2000-01-01 00:01:40.083622+08:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== set time ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@radxa-zero:/home/radxa# apt-get install ntp -y&lt;br /&gt;
root@radxa-zero:/home/radxa# sudo service ntp start&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
date -s &amp;quot;2023-05-09 15:16:35&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== write time to rtc module ====&lt;br /&gt;
* write time to rtc module after you make sure the time of linux is right&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@radxa-zero:/home/radxa# hwclock -w -f /dev/rtc1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* then read the hardware RTC at the time to see if it is correct&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@radxa-zero:/home/radxa# hwclock -r -f /dev/rtc1&lt;br /&gt;
2023-05-09 15:18:45.390726+08:00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* to set the Linux system time to the hardware RTC time&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 hwclock -s -f /dev/rtc1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* use timedatectl to view all the time information&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@radxa-zero:/home/radxa# timedatectl&lt;br /&gt;
               Local time: Tue 2023-05-09 15:21:49 CST&lt;br /&gt;
           Universal time: Tue 2023-05-09 07:21:49 UTC&lt;br /&gt;
                 RTC time: Thu 1970-01-01 00:04:27&lt;br /&gt;
                Time zone: Asia/Shanghai (CST, +0800)&lt;br /&gt;
System clock synchronized: no&lt;br /&gt;
              NTP service: n/a&lt;br /&gt;
          RTC in local TZ: yes&lt;br /&gt;
&lt;br /&gt;
Warning: The system is configured to read the RTC time in the local time zone.&lt;br /&gt;
         This mode cannot be fully supported. It will create various problems&lt;br /&gt;
         with time zone changes and daylight saving time adjustments. The RTC&lt;br /&gt;
         time is never updated, it relies on external facilities to maintain it.&lt;br /&gt;
         If at all possible, use RTC in UTC by calling&lt;br /&gt;
         'timedatectl set-local-rtc 0'.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== set automatic startup ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@radxa-zero:/home/radxa# touch /etc/rc.local&lt;br /&gt;
root@radxa-zero:/home/radxa# chmod 777 /etc/rc.local&lt;br /&gt;
root@radxa-zero:/home/radxa# cat /etc/rc.local&lt;br /&gt;
#! /bin/bash&lt;br /&gt;
&lt;br /&gt;
echo ds3231 0x68 | sudo tee  /sys/class/i2c-adapter/i2c-3/new_device&lt;br /&gt;
sudo hwclock -s -f /dev/rtc1 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Zero/dev/RTC_module_ds3231</id>
		<title>Zero/dev/RTC module ds3231</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Zero/dev/RTC_module_ds3231"/>
				<updated>2023-05-09T06:49:52Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: Created page with &amp;quot;{{Zero_header}}  {{Languages|zero/dev/adb}}    Radxa Zero &amp;gt;  Development &amp;gt;  RTC module ds3231   ==== enable i2c overlay...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Zero_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|zero/dev/adb}}&lt;br /&gt;
&lt;br /&gt;
 [[Zero | Radxa Zero]] &amp;gt; [[zero/dev | Development]] &amp;gt; [[zero/dev/RTC module ds3231| RTC module ds3231 ]]&lt;br /&gt;
&lt;br /&gt;
==== enable i2c overlay ====&lt;br /&gt;
use rsetup to enable I2C_EE-M3&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/File:Qt9.png</id>
		<title>File:Qt9.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/File:Qt9.png"/>
				<updated>2023-05-05T09:45:12Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: Nascs uploaded a new version of &amp;amp;quot;File:Qt9.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock3/dev/qt</id>
		<title>Rock3/dev/qt</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock3/dev/qt"/>
				<updated>2023-05-05T09:42:44Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rock3_header}}&lt;br /&gt;
{{Languages|rock3/dev/qt | Common interface with linux-5.10}}&lt;br /&gt;
&lt;br /&gt;
    [[rock3 | ROCK 3]] &amp;gt; [[rock3/dev | Development]] &amp;gt; [[rock3/dev/qt | rockchip qt]]&lt;br /&gt;
&lt;br /&gt;
=== porting qt to rockchip platforms ===&lt;br /&gt;
&lt;br /&gt;
==== On ubuntu of x86 platform ====&lt;br /&gt;
The following operations are performed on ubuntu on the x86 platform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Cross-compilation tools =====&lt;br /&gt;
 sudo apt-get install build-essential cmake &lt;br /&gt;
 wget https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz&lt;br /&gt;
 sudo tar xvf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz  -C /usr/local/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== download  qt source code =====&lt;br /&gt;
 mkdir -p pro/qtSourceDir &amp;amp;&amp;amp; cd pro/qtSourceDir&lt;br /&gt;
 wget https://download.qt.io/archive/qt/5.12/5.12.2/single/qt-everywhere-src-5.12.2.tar.xz&lt;br /&gt;
 tar -xvf qt-everywhere-src-5.12.2.tar.xz&lt;br /&gt;
&lt;br /&gt;
 or you can download them from [[https://download.qt.io/archive/qt/ here]]&lt;br /&gt;
&lt;br /&gt;
===== installation =====&lt;br /&gt;
&lt;br /&gt;
 vi qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf&lt;br /&gt;
&lt;br /&gt;
Before modification&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# qmake configuration for building with aarch64-linux-gnu-g++&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
MAKEFILE_GENERATOR      = UNIX&lt;br /&gt;
CONFIG                 += incremental&lt;br /&gt;
QMAKE_INCREMENTAL_STYLE = sublib&lt;br /&gt;
&lt;br /&gt;
include(../common/linux.conf)&lt;br /&gt;
include(../common/gcc-base-unix.conf)&lt;br /&gt;
include(../common/g++-unix.conf)&lt;br /&gt;
&lt;br /&gt;
# modifications to g++.conf&lt;br /&gt;
QMAKE_CC                = aarch64-linux-gnu-gcc&lt;br /&gt;
QMAKE_CXX               = aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK              = aarch64-linux-gnu-g++d&lt;br /&gt;
QMAKE_LINK_SHLIB        = aarch64-linux-gnu-g++&lt;br /&gt;
&lt;br /&gt;
# modifications to linux.conf&lt;br /&gt;
QMAKE_AR                = aarch64-linux-gnu-ar cqs&lt;br /&gt;
QMAKE_OBJCOPY           = aarch64-linux-gnu-objcopy&lt;br /&gt;
QMAKE_NM                = aarch64-linux-gnu-nm -P&lt;br /&gt;
QMAKE_STRIP             = aarch64-linux-gnu-strip&lt;br /&gt;
load(qt_config)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After modification&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# qmake configuration for building with aarch64-linux-gnu-g++&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
MAKEFILE_GENERATOR      = UNIX&lt;br /&gt;
CONFIG                 += incremental&lt;br /&gt;
QMAKE_INCREMENTAL_STYLE = sublib&lt;br /&gt;
&lt;br /&gt;
QT_QPA_DEFAULT_PLATFORM = linuxfb&lt;br /&gt;
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts&lt;br /&gt;
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
include(../common/linux.conf)&lt;br /&gt;
include(../common/gcc-base-unix.conf)&lt;br /&gt;
include(../common/g++-unix.conf)&lt;br /&gt;
&lt;br /&gt;
# modifications to g++.conf&lt;br /&gt;
QMAKE_CC                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc&lt;br /&gt;
QMAKE_CXX               = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK              = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK_SHLIB        = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
&lt;br /&gt;
# modifications to linux.conf&lt;br /&gt;
QMAKE_AR                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ar cqs&lt;br /&gt;
QMAKE_OBJCOPY           = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objcopy&lt;br /&gt;
QMAKE_NM                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm -P&lt;br /&gt;
QMAKE_STRIP             = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip&lt;br /&gt;
load(qt_config)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create a new automatic configuration script file&lt;br /&gt;
 vi auto.sh&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
mkdir -p  /opt/qtInstallDir&lt;br /&gt;
&lt;br /&gt;
./configure \&lt;br /&gt;
-prefix /opt/qtInstallDir \&lt;br /&gt;
-confirm-license \&lt;br /&gt;
-opensource \&lt;br /&gt;
-release \&lt;br /&gt;
-make libs \&lt;br /&gt;
-xplatform linux-aarch64-gnu-g++ \&lt;br /&gt;
-pch \&lt;br /&gt;
-qt-libjpeg \&lt;br /&gt;
-qt-libpng \&lt;br /&gt;
-qt-zlib \&lt;br /&gt;
-no-opengl \&lt;br /&gt;
-no-sse2 \&lt;br /&gt;
-no-openssl \&lt;br /&gt;
-no-cups \&lt;br /&gt;
-no-glib \&lt;br /&gt;
-no-dbus \&lt;br /&gt;
-no-xcb \&lt;br /&gt;
-no-separate-debug-info \&lt;br /&gt;
-no-ssl \&lt;br /&gt;
-nomake tests \&lt;br /&gt;
-nomake examples \&lt;br /&gt;
-nomake tools \&lt;br /&gt;
-no-sql-sqlite \&lt;br /&gt;
-no-iconv \&lt;br /&gt;
-skip qt3d \&lt;br /&gt;
-skip qtactiveqt \&lt;br /&gt;
-skip qtcanvas3d \&lt;br /&gt;
-skip qtcharts \&lt;br /&gt;
-skip qtconnectivity \&lt;br /&gt;
-skip qtdatavis3d \&lt;br /&gt;
-skip qtdeclarative \&lt;br /&gt;
-skip qtgamepad \&lt;br /&gt;
-skip qtandroidextras \&lt;br /&gt;
-skip qtdoc \&lt;br /&gt;
-skip qtwebchannel \&lt;br /&gt;
-skip qtwebengine \&lt;br /&gt;
-skip qtwebglplugin \&lt;br /&gt;
-skip qtwebview \&lt;br /&gt;
-skip qtvirtualkeyboard \&lt;br /&gt;
-recheck&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
make &lt;br /&gt;
make install &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 * If you encounter an error similar to the following, &lt;br /&gt;
 /dir/to/source/sol.hpp:7194:59: &lt;br /&gt;
 error: ‘numeric_limits’ is not a member of ‘std’&lt;br /&gt;
 add the following line to the file &lt;br /&gt;
 #include &amp;lt;limits&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 sudo chmod +x auto.sh&lt;br /&gt;
 sudo ./auto.sh&lt;br /&gt;
&lt;br /&gt;
* after success you can see &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
test@test-desktop:/opt$ ls /opt/qtInstallDir/&lt;br /&gt;
bin  doc  include  lib  mkspecs  plugins  translations&lt;br /&gt;
&lt;br /&gt;
test@test-desktop:/opt$ ls /opt/qt5.9.4-arm/&lt;br /&gt;
 bin  lib  mkspecs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== qt creator installation ====&lt;br /&gt;
&lt;br /&gt;
===== download installation tools =====&lt;br /&gt;
&lt;br /&gt;
 wget https://download.qt.io/archive/qt/5.12/5.12.2/qt-opensource-linux-x64-5.12.2.run&lt;br /&gt;
 or you can download them from [[https://download.qt.io/archive/qt/ here]]&lt;br /&gt;
 &lt;br /&gt;
===== installation =====&lt;br /&gt;
 sudo chmod +x qt-opensource-linux-x64-5.12.2.run&lt;br /&gt;
 sudo ./qt-opensource-linux-x64-5.12.2.run&lt;br /&gt;
&lt;br /&gt;
 [[File:qt1.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== env =====&lt;br /&gt;
 &lt;br /&gt;
indeed tools&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 add kits&lt;br /&gt;
 [[File:qt2.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
 add gcc  and g++&lt;br /&gt;
 [[File:qt3.png | 200 px]]&lt;br /&gt;
 [[File:qt4.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
 Then you can add gdb as you would gcc above&lt;br /&gt;
&lt;br /&gt;
 add a new device&lt;br /&gt;
 [[File:qt9.png | 200 px]]&lt;br /&gt;
===== let's coding =====&lt;br /&gt;
 creat a new project&lt;br /&gt;
 [[File:qt6.png | 200 px]]&lt;br /&gt;
 [[File:qt7.png | 200 px]]&lt;br /&gt;
 [[File:qt10.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
 main code&lt;br /&gt;
 [[File:qt12.png | 200 px]]&lt;br /&gt;
 then choose Debugger-&amp;gt;rock-&amp;gt;Debug, just click it&lt;br /&gt;
&lt;br /&gt;
=====  copy the project to you board which has a desktop =====&lt;br /&gt;
&lt;br /&gt;
 scp build-demo4-ext4-Debug radxa@192.168.2.211:~&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== on board ====&lt;br /&gt;
The following operations are performed on ubuntu on the rk3566  or rk3568 rk3588 platform&lt;br /&gt;
* env&lt;br /&gt;
 sudo apt-get install libqt5gui5 -y &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Execute the program&lt;br /&gt;
 ./demo4&lt;br /&gt;
 or click it &lt;br /&gt;
 [[File:qt13.png | 200 px]]&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/File:Qt4.png</id>
		<title>File:Qt4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/File:Qt4.png"/>
				<updated>2023-05-05T09:37:51Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: Nascs uploaded a new version of &amp;amp;quot;File:Qt4.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/File:Qt3.png</id>
		<title>File:Qt3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/File:Qt3.png"/>
				<updated>2023-05-05T09:37:30Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: Nascs uploaded a new version of &amp;amp;quot;File:Qt3.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock3/dev/qt</id>
		<title>Rock3/dev/qt</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock3/dev/qt"/>
				<updated>2023-05-05T09:34:07Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rock3_header}}&lt;br /&gt;
{{Languages|rock3/dev/qt | Common interface with linux-5.10}}&lt;br /&gt;
&lt;br /&gt;
    [[rock3 | ROCK 3]] &amp;gt; [[rock3/dev | Development]] &amp;gt; [[rock3/dev/qt | rockchip qt]]&lt;br /&gt;
&lt;br /&gt;
=== porting qt to rockchip platforms ===&lt;br /&gt;
&lt;br /&gt;
==== On ubuntu of x86 platform ====&lt;br /&gt;
The following operations are performed on ubuntu on the x86 platform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Cross-compilation tools =====&lt;br /&gt;
 sudo apt-get install build-essential cmake &lt;br /&gt;
 wget https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz&lt;br /&gt;
 sudo tar xvf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz  -C /usr/local/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== download  qt source code =====&lt;br /&gt;
 mkdir -p pro/qtSourceDir &amp;amp;&amp;amp; cd pro/qtSourceDir&lt;br /&gt;
 wget https://download.qt.io/archive/qt/5.12/5.12.2/single/qt-everywhere-src-5.12.2.tar.xz&lt;br /&gt;
 tar -xvf qt-everywhere-src-5.12.2.tar.xz&lt;br /&gt;
&lt;br /&gt;
 or you can download them from [[https://download.qt.io/archive/qt/ here]]&lt;br /&gt;
&lt;br /&gt;
===== installation =====&lt;br /&gt;
&lt;br /&gt;
 vi qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf&lt;br /&gt;
&lt;br /&gt;
Before modification&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# qmake configuration for building with aarch64-linux-gnu-g++&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
MAKEFILE_GENERATOR      = UNIX&lt;br /&gt;
CONFIG                 += incremental&lt;br /&gt;
QMAKE_INCREMENTAL_STYLE = sublib&lt;br /&gt;
&lt;br /&gt;
include(../common/linux.conf)&lt;br /&gt;
include(../common/gcc-base-unix.conf)&lt;br /&gt;
include(../common/g++-unix.conf)&lt;br /&gt;
&lt;br /&gt;
# modifications to g++.conf&lt;br /&gt;
QMAKE_CC                = aarch64-linux-gnu-gcc&lt;br /&gt;
QMAKE_CXX               = aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK              = aarch64-linux-gnu-g++d&lt;br /&gt;
QMAKE_LINK_SHLIB        = aarch64-linux-gnu-g++&lt;br /&gt;
&lt;br /&gt;
# modifications to linux.conf&lt;br /&gt;
QMAKE_AR                = aarch64-linux-gnu-ar cqs&lt;br /&gt;
QMAKE_OBJCOPY           = aarch64-linux-gnu-objcopy&lt;br /&gt;
QMAKE_NM                = aarch64-linux-gnu-nm -P&lt;br /&gt;
QMAKE_STRIP             = aarch64-linux-gnu-strip&lt;br /&gt;
load(qt_config)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After modification&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# qmake configuration for building with aarch64-linux-gnu-g++&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
MAKEFILE_GENERATOR      = UNIX&lt;br /&gt;
CONFIG                 += incremental&lt;br /&gt;
QMAKE_INCREMENTAL_STYLE = sublib&lt;br /&gt;
&lt;br /&gt;
QT_QPA_DEFAULT_PLATFORM = linuxfb&lt;br /&gt;
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts&lt;br /&gt;
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
include(../common/linux.conf)&lt;br /&gt;
include(../common/gcc-base-unix.conf)&lt;br /&gt;
include(../common/g++-unix.conf)&lt;br /&gt;
&lt;br /&gt;
# modifications to g++.conf&lt;br /&gt;
QMAKE_CC                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc&lt;br /&gt;
QMAKE_CXX               = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK              = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK_SHLIB        = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
&lt;br /&gt;
# modifications to linux.conf&lt;br /&gt;
QMAKE_AR                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ar cqs&lt;br /&gt;
QMAKE_OBJCOPY           = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objcopy&lt;br /&gt;
QMAKE_NM                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm -P&lt;br /&gt;
QMAKE_STRIP             = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip&lt;br /&gt;
load(qt_config)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create a new automatic configuration script file&lt;br /&gt;
 vi auto.sh&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
mkdir -p  /opt/qtInstallDir&lt;br /&gt;
&lt;br /&gt;
./configure \&lt;br /&gt;
-prefix /opt/qtInstallDir \&lt;br /&gt;
-confirm-license \&lt;br /&gt;
-opensource \&lt;br /&gt;
-release \&lt;br /&gt;
-make libs \&lt;br /&gt;
-xplatform linux-aarch64-gnu-g++ \&lt;br /&gt;
-pch \&lt;br /&gt;
-qt-libjpeg \&lt;br /&gt;
-qt-libpng \&lt;br /&gt;
-qt-zlib \&lt;br /&gt;
-no-opengl \&lt;br /&gt;
-no-sse2 \&lt;br /&gt;
-no-openssl \&lt;br /&gt;
-no-cups \&lt;br /&gt;
-no-glib \&lt;br /&gt;
-no-dbus \&lt;br /&gt;
-no-xcb \&lt;br /&gt;
-no-separate-debug-info \&lt;br /&gt;
-no-ssl \&lt;br /&gt;
-nomake tests \&lt;br /&gt;
-nomake examples \&lt;br /&gt;
-nomake tools \&lt;br /&gt;
-no-sql-sqlite \&lt;br /&gt;
-no-iconv \&lt;br /&gt;
-skip qt3d \&lt;br /&gt;
-skip qtactiveqt \&lt;br /&gt;
-skip qtcanvas3d \&lt;br /&gt;
-skip qtcharts \&lt;br /&gt;
-skip qtconnectivity \&lt;br /&gt;
-skip qtdatavis3d \&lt;br /&gt;
-skip qtdeclarative \&lt;br /&gt;
-skip qtgamepad \&lt;br /&gt;
-skip qtandroidextras \&lt;br /&gt;
-skip qtdoc \&lt;br /&gt;
-skip qtwebchannel \&lt;br /&gt;
-skip qtwebengine \&lt;br /&gt;
-skip qtwebglplugin \&lt;br /&gt;
-skip qtwebview \&lt;br /&gt;
-skip qtvirtualkeyboard \&lt;br /&gt;
-recheck&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
make &lt;br /&gt;
make install &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 * If you encounter an error similar to the following, &lt;br /&gt;
 /dir/to/source/sol.hpp:7194:59: &lt;br /&gt;
 error: ‘numeric_limits’ is not a member of ‘std’&lt;br /&gt;
 add the following line to the file &lt;br /&gt;
 #include &amp;lt;limits&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 sudo chmod +x auto.sh&lt;br /&gt;
 sudo ./auto.sh&lt;br /&gt;
&lt;br /&gt;
* after success you can see &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
test@test-desktop:/opt$ ls /opt/qtInstallDir/&lt;br /&gt;
bin  doc  include  lib  mkspecs  plugins  translations&lt;br /&gt;
&lt;br /&gt;
test@test-desktop:/opt$ ls /opt/qt5.9.4-arm/&lt;br /&gt;
 bin  lib  mkspecs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== qt creator installation ====&lt;br /&gt;
&lt;br /&gt;
===== download installation tools =====&lt;br /&gt;
&lt;br /&gt;
 wget https://download.qt.io/archive/qt/5.12/5.12.2/qt-opensource-linux-x64-5.12.2.run&lt;br /&gt;
 or you can download them from [[https://download.qt.io/archive/qt/ here]]&lt;br /&gt;
 &lt;br /&gt;
===== installation =====&lt;br /&gt;
 sudo chmod +x qt-opensource-linux-x64-5.12.2.run&lt;br /&gt;
 sudo ./qt-opensource-linux-x64-5.12.2.run&lt;br /&gt;
&lt;br /&gt;
 [[File:qt1.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== env =====&lt;br /&gt;
 &lt;br /&gt;
indeed tools&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 add kits&lt;br /&gt;
 [[File:qt2.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
 add gcc &lt;br /&gt;
 [[File:qt3.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
 add gdb &lt;br /&gt;
 [[File:qt4.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
 add a new device&lt;br /&gt;
 [[File:qt9.png | 200 px]]&lt;br /&gt;
===== let's coding =====&lt;br /&gt;
 creat a new project&lt;br /&gt;
 [[File:qt6.png | 200 px]]&lt;br /&gt;
 [[File:qt7.png | 200 px]]&lt;br /&gt;
 [[File:qt10.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
 main code&lt;br /&gt;
 [[File:qt12.png | 200 px]]&lt;br /&gt;
 then choose Debugger-&amp;gt;rock-&amp;gt;Debug, just click it&lt;br /&gt;
&lt;br /&gt;
=====  copy the project to you board which has a desktop =====&lt;br /&gt;
&lt;br /&gt;
 scp build-demo4-ext4-Debug radxa@192.168.2.211:~&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== on board ====&lt;br /&gt;
The following operations are performed on ubuntu on the rk3566  or rk3568 rk3588 platform&lt;br /&gt;
* env&lt;br /&gt;
 sudo apt-get install libqt5gui5 -y &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Execute the program&lt;br /&gt;
 ./demo4&lt;br /&gt;
 or click it &lt;br /&gt;
 [[File:qt13.png | 200 px]]&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/File:Qt2.png</id>
		<title>File:Qt2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/File:Qt2.png"/>
				<updated>2023-05-05T09:19:44Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: Nascs uploaded a new version of &amp;amp;quot;File:Qt2.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock3/dev/qt</id>
		<title>Rock3/dev/qt</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock3/dev/qt"/>
				<updated>2023-05-05T08:15:54Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rock3_header}}&lt;br /&gt;
{{Languages|rock3/dev/qt | Common interface with linux-5.10}}&lt;br /&gt;
&lt;br /&gt;
    [[rock3 | ROCK 3]] &amp;gt; [[rock3/dev | Development]] &amp;gt; [[rock3/dev/qt | rockchip qt]]&lt;br /&gt;
&lt;br /&gt;
=== porting qt to rockchip platforms ===&lt;br /&gt;
&lt;br /&gt;
==== On ubuntu of x86 platform ====&lt;br /&gt;
The following operations are performed on ubuntu on the x86 platform&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Cross-compilation tools =====&lt;br /&gt;
 sudo apt-get install build-essential cmake &lt;br /&gt;
 wget https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz&lt;br /&gt;
 sudo tar xvf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz  -C /usr/local/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== download  qt source code =====&lt;br /&gt;
 mkdir -p pro/qtSourceDir &amp;amp;&amp;amp; cd pro/qtSourceDir&lt;br /&gt;
 wget https://download.qt.io/archive/qt/5.12/5.12.2/single/qt-everywhere-src-5.12.2.tar.xz&lt;br /&gt;
 tar -xvf qt-everywhere-src-5.12.2.tar.xz&lt;br /&gt;
&lt;br /&gt;
 or you can download them from [[https://download.qt.io/archive/qt/ here]]&lt;br /&gt;
&lt;br /&gt;
===== installation =====&lt;br /&gt;
&lt;br /&gt;
 vi qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf&lt;br /&gt;
&lt;br /&gt;
Before modification&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# qmake configuration for building with aarch64-linux-gnu-g++&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
MAKEFILE_GENERATOR      = UNIX&lt;br /&gt;
CONFIG                 += incremental&lt;br /&gt;
QMAKE_INCREMENTAL_STYLE = sublib&lt;br /&gt;
&lt;br /&gt;
include(../common/linux.conf)&lt;br /&gt;
include(../common/gcc-base-unix.conf)&lt;br /&gt;
include(../common/g++-unix.conf)&lt;br /&gt;
&lt;br /&gt;
# modifications to g++.conf&lt;br /&gt;
QMAKE_CC                = aarch64-linux-gnu-gcc&lt;br /&gt;
QMAKE_CXX               = aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK              = aarch64-linux-gnu-g++d&lt;br /&gt;
QMAKE_LINK_SHLIB        = aarch64-linux-gnu-g++&lt;br /&gt;
&lt;br /&gt;
# modifications to linux.conf&lt;br /&gt;
QMAKE_AR                = aarch64-linux-gnu-ar cqs&lt;br /&gt;
QMAKE_OBJCOPY           = aarch64-linux-gnu-objcopy&lt;br /&gt;
QMAKE_NM                = aarch64-linux-gnu-nm -P&lt;br /&gt;
QMAKE_STRIP             = aarch64-linux-gnu-strip&lt;br /&gt;
load(qt_config)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After modification&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# qmake configuration for building with aarch64-linux-gnu-g++&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
MAKEFILE_GENERATOR      = UNIX&lt;br /&gt;
CONFIG                 += incremental&lt;br /&gt;
QMAKE_INCREMENTAL_STYLE = sublib&lt;br /&gt;
&lt;br /&gt;
QT_QPA_DEFAULT_PLATFORM = linuxfb&lt;br /&gt;
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts&lt;br /&gt;
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
include(../common/linux.conf)&lt;br /&gt;
include(../common/gcc-base-unix.conf)&lt;br /&gt;
include(../common/g++-unix.conf)&lt;br /&gt;
&lt;br /&gt;
# modifications to g++.conf&lt;br /&gt;
QMAKE_CC                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc&lt;br /&gt;
QMAKE_CXX               = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK              = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK_SHLIB        = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
&lt;br /&gt;
# modifications to linux.conf&lt;br /&gt;
QMAKE_AR                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ar cqs&lt;br /&gt;
QMAKE_OBJCOPY           = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objcopy&lt;br /&gt;
QMAKE_NM                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm -P&lt;br /&gt;
QMAKE_STRIP             = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip&lt;br /&gt;
load(qt_config)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create a new automatic configuration script file&lt;br /&gt;
 vi auto.sh&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
mkdir -p  /opt/qtInstallDir&lt;br /&gt;
&lt;br /&gt;
./configure \&lt;br /&gt;
-prefix /opt/qtInstallDir \&lt;br /&gt;
-confirm-license \&lt;br /&gt;
-opensource \&lt;br /&gt;
-release \&lt;br /&gt;
-make libs \&lt;br /&gt;
-xplatform linux-aarch64-gnu-g++ \&lt;br /&gt;
-pch \&lt;br /&gt;
-qt-libjpeg \&lt;br /&gt;
-qt-libpng \&lt;br /&gt;
-qt-zlib \&lt;br /&gt;
-no-opengl \&lt;br /&gt;
-no-sse2 \&lt;br /&gt;
-no-openssl \&lt;br /&gt;
-no-cups \&lt;br /&gt;
-no-glib \&lt;br /&gt;
-no-dbus \&lt;br /&gt;
-no-xcb \&lt;br /&gt;
-no-separate-debug-info \&lt;br /&gt;
-no-ssl \&lt;br /&gt;
-nomake tests \&lt;br /&gt;
-nomake examples \&lt;br /&gt;
-nomake tools \&lt;br /&gt;
-no-sql-sqlite \&lt;br /&gt;
-no-iconv \&lt;br /&gt;
-skip qt3d \&lt;br /&gt;
-skip qtactiveqt \&lt;br /&gt;
-skip qtcanvas3d \&lt;br /&gt;
-skip qtcharts \&lt;br /&gt;
-skip qtconnectivity \&lt;br /&gt;
-skip qtdatavis3d \&lt;br /&gt;
-skip qtdeclarative \&lt;br /&gt;
-skip qtgamepad \&lt;br /&gt;
-skip qtandroidextras \&lt;br /&gt;
-skip qtdoc \&lt;br /&gt;
-skip qtwebchannel \&lt;br /&gt;
-skip qtwebengine \&lt;br /&gt;
-skip qtwebglplugin \&lt;br /&gt;
-skip qtwebview \&lt;br /&gt;
-skip qtvirtualkeyboard \&lt;br /&gt;
-recheck&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
make &lt;br /&gt;
make install &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 * If you encounter an error similar to the following, &lt;br /&gt;
 /dir/to/source/sol.hpp:7194:59: &lt;br /&gt;
 error: ‘numeric_limits’ is not a member of ‘std’&lt;br /&gt;
 add the following line to the file &lt;br /&gt;
 #include &amp;lt;limits&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 sudo chmod +x auto.sh&lt;br /&gt;
 sudo ./auto.sh&lt;br /&gt;
&lt;br /&gt;
* after success you can see &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
test@test-desktop:/opt$ ls /opt/qtInstallDir/&lt;br /&gt;
bin  doc  include  lib  mkspecs  plugins  translations&lt;br /&gt;
&lt;br /&gt;
test@test-desktop:/opt$ ls /opt/qt5.9.4-arm/&lt;br /&gt;
 bin  lib  mkspecs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== qt creator installation ====&lt;br /&gt;
&lt;br /&gt;
===== download installation tools =====&lt;br /&gt;
&lt;br /&gt;
 wget https://download.qt.io/archive/qt/5.12/5.12.2/qt-opensource-linux-x64-5.12.2.run&lt;br /&gt;
 or you can download them from [[https://download.qt.io/archive/qt/ here]]&lt;br /&gt;
 &lt;br /&gt;
===== installation =====&lt;br /&gt;
 sudo chmod +x qt-opensource-linux-x64-5.12.2.run&lt;br /&gt;
 sudo ./qt-opensource-linux-x64-5.12.2.run&lt;br /&gt;
&lt;br /&gt;
 [[File:qt1.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== env =====&lt;br /&gt;
 &lt;br /&gt;
indeed tools&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 add kits&lt;br /&gt;
 [[File:qt2.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
 add gcc &lt;br /&gt;
 [[File:qt3.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
 add gdb &lt;br /&gt;
 [[File:qt4.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
 add a new device&lt;br /&gt;
 [[File:qt9.png | 200 px]]&lt;br /&gt;
===== let's coding =====&lt;br /&gt;
 creat a new project&lt;br /&gt;
 [[File:qt6.png | 200 px]]&lt;br /&gt;
 [[File:qt7.png | 200 px]]&lt;br /&gt;
 [[File:qt10.png | 200 px]]&lt;br /&gt;
&lt;br /&gt;
 main code&lt;br /&gt;
 [[File:qt12.png | 200 px]]&lt;br /&gt;
 then choose Debugger-&amp;gt;rock-&amp;gt;Debug, just click it&lt;br /&gt;
&lt;br /&gt;
=====  copy the project to you board which has a desktop =====&lt;br /&gt;
&lt;br /&gt;
 scp build-demo4-ext4-Debug radxa@192.168.2.211:~&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== on board ====&lt;br /&gt;
The following operations are performed on ubuntu on the rk3566  or rk3568 rk3588 platform&lt;br /&gt;
* env&lt;br /&gt;
 sudo apt-get install libqt5gui5 -y &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Execute the program&lt;br /&gt;
 ./demo4&lt;br /&gt;
 or click it &lt;br /&gt;
 [[File:qt13.png | 200 px]]&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock3/dev/qt</id>
		<title>Rock3/dev/qt</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock3/dev/qt"/>
				<updated>2023-05-05T07:57:32Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rock3_header}}&lt;br /&gt;
{{Languages|rock3/dev/qt | Common interface with linux-5.10}}&lt;br /&gt;
&lt;br /&gt;
    [[rock3 | ROCK 3]] &amp;gt; [[rock3/dev | Development]] &amp;gt; [[rock3/dev/qt | rockchip qt]]&lt;br /&gt;
&lt;br /&gt;
=== porting qt to rockchip platforms ===&lt;br /&gt;
&lt;br /&gt;
==== about qt tools ====&lt;br /&gt;
===== tools =====&lt;br /&gt;
 sudo apt-get install build-essential cmake &lt;br /&gt;
 wget https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz&lt;br /&gt;
 sudo tar xvf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz  -C /usr/local/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== download  qt source code =====&lt;br /&gt;
 mkdir -p pro/qtSourceDir &amp;amp;&amp;amp; cd pro/qtSourceDir&lt;br /&gt;
 wget https://download.qt.io/archive/qt/5.12/5.12.2/single/qt-everywhere-src-5.12.2.tar.xz&lt;br /&gt;
 tar -xvf qt-everywhere-src-5.12.2.tar.xz&lt;br /&gt;
&lt;br /&gt;
 or you can download them from [[https://download.qt.io/archive/qt/ here]]&lt;br /&gt;
&lt;br /&gt;
===== installation =====&lt;br /&gt;
&lt;br /&gt;
 vi qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf&lt;br /&gt;
&lt;br /&gt;
Before modification&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# qmake configuration for building with aarch64-linux-gnu-g++&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
MAKEFILE_GENERATOR      = UNIX&lt;br /&gt;
CONFIG                 += incremental&lt;br /&gt;
QMAKE_INCREMENTAL_STYLE = sublib&lt;br /&gt;
&lt;br /&gt;
include(../common/linux.conf)&lt;br /&gt;
include(../common/gcc-base-unix.conf)&lt;br /&gt;
include(../common/g++-unix.conf)&lt;br /&gt;
&lt;br /&gt;
# modifications to g++.conf&lt;br /&gt;
QMAKE_CC                = aarch64-linux-gnu-gcc&lt;br /&gt;
QMAKE_CXX               = aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK              = aarch64-linux-gnu-g++d&lt;br /&gt;
QMAKE_LINK_SHLIB        = aarch64-linux-gnu-g++&lt;br /&gt;
&lt;br /&gt;
# modifications to linux.conf&lt;br /&gt;
QMAKE_AR                = aarch64-linux-gnu-ar cqs&lt;br /&gt;
QMAKE_OBJCOPY           = aarch64-linux-gnu-objcopy&lt;br /&gt;
QMAKE_NM                = aarch64-linux-gnu-nm -P&lt;br /&gt;
QMAKE_STRIP             = aarch64-linux-gnu-strip&lt;br /&gt;
load(qt_config)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After modification&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# qmake configuration for building with aarch64-linux-gnu-g++&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
MAKEFILE_GENERATOR      = UNIX&lt;br /&gt;
CONFIG                 += incremental&lt;br /&gt;
QMAKE_INCREMENTAL_STYLE = sublib&lt;br /&gt;
&lt;br /&gt;
QT_QPA_DEFAULT_PLATFORM = linuxfb&lt;br /&gt;
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts&lt;br /&gt;
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
include(../common/linux.conf)&lt;br /&gt;
include(../common/gcc-base-unix.conf)&lt;br /&gt;
include(../common/g++-unix.conf)&lt;br /&gt;
&lt;br /&gt;
# modifications to g++.conf&lt;br /&gt;
QMAKE_CC                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc&lt;br /&gt;
QMAKE_CXX               = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK              = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK_SHLIB        = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
&lt;br /&gt;
# modifications to linux.conf&lt;br /&gt;
QMAKE_AR                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ar cqs&lt;br /&gt;
QMAKE_OBJCOPY           = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objcopy&lt;br /&gt;
QMAKE_NM                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm -P&lt;br /&gt;
QMAKE_STRIP             = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip&lt;br /&gt;
load(qt_config)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create a new automatic configuration script file&lt;br /&gt;
 vi auto.sh&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
mkdir -p  /opt/qtInstallDir&lt;br /&gt;
&lt;br /&gt;
./configure \&lt;br /&gt;
-prefix /opt/qtInstallDir \&lt;br /&gt;
-confirm-license \&lt;br /&gt;
-opensource \&lt;br /&gt;
-release \&lt;br /&gt;
-make libs \&lt;br /&gt;
-xplatform linux-aarch64-gnu-g++ \&lt;br /&gt;
-pch \&lt;br /&gt;
-qt-libjpeg \&lt;br /&gt;
-qt-libpng \&lt;br /&gt;
-qt-zlib \&lt;br /&gt;
-no-opengl \&lt;br /&gt;
-no-sse2 \&lt;br /&gt;
-no-openssl \&lt;br /&gt;
-no-cups \&lt;br /&gt;
-no-glib \&lt;br /&gt;
-no-dbus \&lt;br /&gt;
-no-xcb \&lt;br /&gt;
-no-separate-debug-info \&lt;br /&gt;
-no-ssl \&lt;br /&gt;
-nomake tests \&lt;br /&gt;
-nomake examples \&lt;br /&gt;
-nomake tools \&lt;br /&gt;
-no-sql-sqlite \&lt;br /&gt;
-no-iconv \&lt;br /&gt;
-skip qt3d \&lt;br /&gt;
-skip qtactiveqt \&lt;br /&gt;
-skip qtcanvas3d \&lt;br /&gt;
-skip qtcharts \&lt;br /&gt;
-skip qtconnectivity \&lt;br /&gt;
-skip qtdatavis3d \&lt;br /&gt;
-skip qtdeclarative \&lt;br /&gt;
-skip qtgamepad \&lt;br /&gt;
-skip qtandroidextras \&lt;br /&gt;
-skip qtdoc \&lt;br /&gt;
-skip qtwebchannel \&lt;br /&gt;
-skip qtwebengine \&lt;br /&gt;
-skip qtwebglplugin \&lt;br /&gt;
-skip qtwebview \&lt;br /&gt;
-skip qtvirtualkeyboard \&lt;br /&gt;
-recheck&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
make &lt;br /&gt;
make install &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 * If you encounter an error similar to the following, &lt;br /&gt;
 /dir/to/source/sol.hpp:7194:59: &lt;br /&gt;
 error: ‘numeric_limits’ is not a member of ‘std’&lt;br /&gt;
 add the following line to the file &lt;br /&gt;
 #include &amp;lt;limits&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 sudo chmod +x auto.sh&lt;br /&gt;
 sudo ./auto.sh&lt;br /&gt;
&lt;br /&gt;
* after success you can see &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
test@test-desktop:/opt$ ls /opt/qtInstallDir/&lt;br /&gt;
bin  doc  include  lib  mkspecs  plugins  translations&lt;br /&gt;
&lt;br /&gt;
test@test-desktop:/opt$ ls /opt/qt5.9.4-arm/&lt;br /&gt;
 bin  lib  mkspecs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== qt creator installation ====&lt;br /&gt;
&lt;br /&gt;
===== download installation tools =====&lt;br /&gt;
&lt;br /&gt;
 wget https://download.qt.io/archive/qt/5.12/5.12.2/qt-opensource-linux-x64-5.12.2.run&lt;br /&gt;
 or you can download them from [[https://download.qt.io/archive/qt/ here]]&lt;br /&gt;
 &lt;br /&gt;
===== installation =====&lt;br /&gt;
 sudo chmod +x qt-opensource-linux-x64-5.12.2.run&lt;br /&gt;
 sudo ./qt-opensource-linux-x64-5.12.2.run&lt;br /&gt;
&lt;br /&gt;
 [[File:qt1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== env =====&lt;br /&gt;
 &lt;br /&gt;
indeed tools&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 add kits&lt;br /&gt;
 [[File:qt2.png]]&lt;br /&gt;
&lt;br /&gt;
 add gcc &lt;br /&gt;
 [[File:qt3.png]]&lt;br /&gt;
&lt;br /&gt;
 add gdb &lt;br /&gt;
 [[File:qt4.png]]&lt;br /&gt;
&lt;br /&gt;
 add a new device&lt;br /&gt;
 [[File:qt9.png]]&lt;br /&gt;
===== let's coding =====&lt;br /&gt;
 creat a new project&lt;br /&gt;
 [[File:qt6.png]]&lt;br /&gt;
 [[File:qt7.png]]&lt;br /&gt;
 [[File:qt10.png]]&lt;br /&gt;
&lt;br /&gt;
 main code&lt;br /&gt;
 [[File:qt12.png]]&lt;br /&gt;
 then choose Debugger-&amp;gt;rock-&amp;gt;Debug, just click it&lt;br /&gt;
&lt;br /&gt;
===== on board =====&lt;br /&gt;
* env&lt;br /&gt;
 sudo apt-get install libqt5gui5 -y &lt;br /&gt;
* copy the project to you board which has a desktop &lt;br /&gt;
 scp build-demo4-ext4-Debug radxa@192.168.2.211:~&lt;br /&gt;
&lt;br /&gt;
* Execute the program&lt;br /&gt;
 ./demo4&lt;br /&gt;
 or click it &lt;br /&gt;
 [[File:qt13.png]]&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/File:Qt13.png</id>
		<title>File:Qt13.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/File:Qt13.png"/>
				<updated>2023-05-05T07:57:12Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/File:Qt12.png</id>
		<title>File:Qt12.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/File:Qt12.png"/>
				<updated>2023-05-05T07:36:54Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/File:Qt10.png</id>
		<title>File:Qt10.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/File:Qt10.png"/>
				<updated>2023-05-05T07:19:14Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/File:Qt9.png</id>
		<title>File:Qt9.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/File:Qt9.png"/>
				<updated>2023-05-05T07:16:51Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/File:Qt8.png</id>
		<title>File:Qt8.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/File:Qt8.png"/>
				<updated>2023-05-05T07:14:26Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/File:Qt7.png</id>
		<title>File:Qt7.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/File:Qt7.png"/>
				<updated>2023-05-05T07:12:54Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/File:Qt6.png</id>
		<title>File:Qt6.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/File:Qt6.png"/>
				<updated>2023-05-05T07:11:59Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/File:Qt5.png</id>
		<title>File:Qt5.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/File:Qt5.png"/>
				<updated>2023-05-05T06:54:37Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/File:Qt4.png</id>
		<title>File:Qt4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/File:Qt4.png"/>
				<updated>2023-05-05T06:53:16Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/File:Qt3.png</id>
		<title>File:Qt3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/File:Qt3.png"/>
				<updated>2023-05-05T06:49:37Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/File:Qt2.png</id>
		<title>File:Qt2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/File:Qt2.png"/>
				<updated>2023-05-05T06:47:57Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/File:Qt1.png</id>
		<title>File:Qt1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/File:Qt1.png"/>
				<updated>2023-05-05T06:45:39Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock3/dev/qt</id>
		<title>Rock3/dev/qt</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock3/dev/qt"/>
				<updated>2023-05-05T06:22:01Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rock3_header}}&lt;br /&gt;
{{Languages|rock3/dev/qt | Common interface with linux-5.10}}&lt;br /&gt;
&lt;br /&gt;
    [[rock3 | ROCK 3]] &amp;gt; [[rock3/dev | Development]] &amp;gt; [[rock3/dev/qt | rockchip qt]]&lt;br /&gt;
&lt;br /&gt;
=== porting qt to rockchip platforms ===&lt;br /&gt;
&lt;br /&gt;
====  tools ====&lt;br /&gt;
 sudo apt-get install build-essential cmake &lt;br /&gt;
 wget https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz&lt;br /&gt;
 sudo tar xvf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz  -C /usr/local/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== download  qt source code ====&lt;br /&gt;
 mkdir -p pro/qtSourceDir &amp;amp;&amp;amp; cd pro/qtSourceDir&lt;br /&gt;
 wget https://download.qt.io/archive/qt/5.12/5.12.2/single/qt-everywhere-src-5.12.2.tar.xz&lt;br /&gt;
 tar -xvf qt-everywhere-src-5.12.2.tar.xz&lt;br /&gt;
 cd .. &lt;br /&gt;
 wget https://download.qt.io/archive/qt/5.12/5.12.2/qt-opensource-linux-x64-5.12.2.run&lt;br /&gt;
 or you can download them from [[https://download.qt.io/archive/qt/ here]]&lt;br /&gt;
&lt;br /&gt;
==== Cross compilation ====&lt;br /&gt;
 vi qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf&lt;br /&gt;
&lt;br /&gt;
Before modification&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# qmake configuration for building with aarch64-linux-gnu-g++&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
MAKEFILE_GENERATOR      = UNIX&lt;br /&gt;
CONFIG                 += incremental&lt;br /&gt;
QMAKE_INCREMENTAL_STYLE = sublib&lt;br /&gt;
&lt;br /&gt;
include(../common/linux.conf)&lt;br /&gt;
include(../common/gcc-base-unix.conf)&lt;br /&gt;
include(../common/g++-unix.conf)&lt;br /&gt;
&lt;br /&gt;
# modifications to g++.conf&lt;br /&gt;
QMAKE_CC                = aarch64-linux-gnu-gcc&lt;br /&gt;
QMAKE_CXX               = aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK              = aarch64-linux-gnu-g++d&lt;br /&gt;
QMAKE_LINK_SHLIB        = aarch64-linux-gnu-g++&lt;br /&gt;
&lt;br /&gt;
# modifications to linux.conf&lt;br /&gt;
QMAKE_AR                = aarch64-linux-gnu-ar cqs&lt;br /&gt;
QMAKE_OBJCOPY           = aarch64-linux-gnu-objcopy&lt;br /&gt;
QMAKE_NM                = aarch64-linux-gnu-nm -P&lt;br /&gt;
QMAKE_STRIP             = aarch64-linux-gnu-strip&lt;br /&gt;
load(qt_config)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After modification&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# qmake configuration for building with aarch64-linux-gnu-g++&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
MAKEFILE_GENERATOR      = UNIX&lt;br /&gt;
CONFIG                 += incremental&lt;br /&gt;
QMAKE_INCREMENTAL_STYLE = sublib&lt;br /&gt;
&lt;br /&gt;
QT_QPA_DEFAULT_PLATFORM = linuxfb&lt;br /&gt;
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts&lt;br /&gt;
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
include(../common/linux.conf)&lt;br /&gt;
include(../common/gcc-base-unix.conf)&lt;br /&gt;
include(../common/g++-unix.conf)&lt;br /&gt;
&lt;br /&gt;
# modifications to g++.conf&lt;br /&gt;
QMAKE_CC                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc&lt;br /&gt;
QMAKE_CXX               = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK              = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK_SHLIB        = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
&lt;br /&gt;
# modifications to linux.conf&lt;br /&gt;
QMAKE_AR                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ar cqs&lt;br /&gt;
QMAKE_OBJCOPY           = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objcopy&lt;br /&gt;
QMAKE_NM                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm -P&lt;br /&gt;
QMAKE_STRIP             = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip&lt;br /&gt;
load(qt_config)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Create a new automatic configuration script file&lt;br /&gt;
 vi auto.sh&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
mkdir -p  /opt/qtInstallDir&lt;br /&gt;
&lt;br /&gt;
./configure \&lt;br /&gt;
-prefix /opt/qtInstallDir \&lt;br /&gt;
-confirm-license \&lt;br /&gt;
-opensource \&lt;br /&gt;
-release \&lt;br /&gt;
-make libs \&lt;br /&gt;
-xplatform linux-aarch64-gnu-g++ \&lt;br /&gt;
-pch \&lt;br /&gt;
-qt-libjpeg \&lt;br /&gt;
-qt-libpng \&lt;br /&gt;
-qt-zlib \&lt;br /&gt;
-no-opengl \&lt;br /&gt;
-no-sse2 \&lt;br /&gt;
-no-openssl \&lt;br /&gt;
-no-cups \&lt;br /&gt;
-no-glib \&lt;br /&gt;
-no-dbus \&lt;br /&gt;
-no-xcb \&lt;br /&gt;
-no-separate-debug-info \&lt;br /&gt;
-no-ssl \&lt;br /&gt;
-nomake tests \&lt;br /&gt;
-nomake examples \&lt;br /&gt;
-nomake tools \&lt;br /&gt;
-no-sql-sqlite \&lt;br /&gt;
-no-iconv \&lt;br /&gt;
-skip qt3d \&lt;br /&gt;
-skip qtactiveqt \&lt;br /&gt;
-skip qtcanvas3d \&lt;br /&gt;
-skip qtcharts \&lt;br /&gt;
-skip qtconnectivity \&lt;br /&gt;
-skip qtdatavis3d \&lt;br /&gt;
-skip qtdeclarative \&lt;br /&gt;
-skip qtgamepad \&lt;br /&gt;
-skip qtandroidextras \&lt;br /&gt;
-skip qtdoc \&lt;br /&gt;
-skip qtwebchannel \&lt;br /&gt;
-skip qtwebengine \&lt;br /&gt;
-skip qtwebglplugin \&lt;br /&gt;
-skip qtwebview \&lt;br /&gt;
-skip qtvirtualkeyboard \&lt;br /&gt;
-recheck&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
make &lt;br /&gt;
make install &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sudo chmod +x auto.sh&lt;br /&gt;
 sudo ./auto.sh&lt;br /&gt;
&lt;br /&gt;
* after success you can see &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
test@test-desktop:/opt$ ls qtInstallDir/&lt;br /&gt;
bin  doc  include  lib  mkspecs  plugins  translations&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock3/dev</id>
		<title>Rock3/dev</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock3/dev"/>
				<updated>2023-05-05T06:04:09Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rock3_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|rock3/dev}}&lt;br /&gt;
&lt;br /&gt;
    [[rock3 | ROCK 3]] &amp;gt; [[rock3/dev | Development Guide]]&lt;br /&gt;
&lt;br /&gt;
This page describes development tips for ROCK 3.&lt;br /&gt;
&lt;br /&gt;
* [[rock3/Debian | How to use Radxa Official Debian]]&lt;br /&gt;
* [[rock3/Ubuntu | How to use Radxa Official Ubuntu]]&lt;br /&gt;
* [[rock3/radxa-apt | Radxa APT]]&lt;br /&gt;
* [[radxa-configuration | Radxa Configuration]]&lt;br /&gt;
* [[Device-tree-overlays | Device Tree Overlays]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/radxa/debos-radxa debos-radxa] build Radxa official system images&lt;br /&gt;
* [[rock3/dev/Debian | Build Debian from scratch]]&lt;br /&gt;
* [[rock3/dev/serial-console | Using Serial Console]]&lt;br /&gt;
* [[rock3/dev/pxe-boot | PXE Boot ]]&lt;br /&gt;
* [[rock3/dev/adb | Using Android Debug Bridge]]&lt;br /&gt;
* [[rock3/dev/can | Using CAN bus communication]]&lt;br /&gt;
* [[rock3/dev/install-coral-pcie-driver-and edge tpu-runtime-packages | Using Coral Edge TPU]]&lt;br /&gt;
* [[rock3/dev/npu-run-test | NPU Run Test]]&lt;br /&gt;
* [[rock3/dev/rknn-toolkit-with-pc | RKNN Toolkit with PC]]&lt;br /&gt;
* [[rock3/dev/libmraa | Install libmraa]]&lt;br /&gt;
* [[rock3/dev/libmraa-cm3-io | libmraa on Radxa CM3 IO]]&lt;br /&gt;
* [[rock3/install/spi | SPI]] + [[rock3/install/nvme | NVME SSD]] boot&lt;br /&gt;
* [[rock3/dev/change-kernel-params | Change kernel params ]]&lt;br /&gt;
* [[rock3/dev/mainline | Mainline Development]]&lt;br /&gt;
* [[rock3/dev/uefi | Unified Extensible Firmware Interface]]&lt;br /&gt;
* [[rock3/dev/sata-on-radxa-cm3-io | Use SATA SSD on Radxa CM3 IO]]&lt;br /&gt;
* [[rock3/dev/install-docker-engineer-on-docker | Install Docker Engine on Debian]]&lt;br /&gt;
* [[rock3/dev/usb-device-network | USB Device Network]]&lt;br /&gt;
* [[rock3/dev/ap-mode-on-radxa-e25 | AP mode on Radxa E25]]&lt;br /&gt;
* [[rock3/dev/radxa-e25-ums | Radxa E25 as USB Mass Storage]]&lt;br /&gt;
* [[rock3/dev/radxa-e23-audio | Radxa E23 Audio Test]]&lt;br /&gt;
* [[rock3/dev/radxa-cm3-io-display | Use Radxa Display 10HD on Radxa CM3 IO]]&lt;br /&gt;
* [[rock3/dev/uart | Use the debug serial port as a normal serial port]]&lt;br /&gt;
* [[rock3/dev/usb-gadget | USB Gadget Support]]&lt;br /&gt;
* [[rock3/dev/qt | porting qt to rockchip platforms]]&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
* [[AI | AI Development]]&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
* [[Rock3/Android11 | Android11]]&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock3/dev/qt</id>
		<title>Rock3/dev/qt</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock3/dev/qt"/>
				<updated>2023-05-05T06:04:03Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: Created page with &amp;quot;{{rock3_header}} {{Languages|rockpi4/dev/devtree_overlays | Common interface with linux-5.10}}       ROCK 3 &amp;gt;  Development &amp;gt; rock3/dev/qt | rockc...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rock3_header}}&lt;br /&gt;
{{Languages|rockpi4/dev/devtree_overlays | Common interface with linux-5.10}}&lt;br /&gt;
&lt;br /&gt;
    [[rock3 | ROCK 3]] &amp;gt; [[rockpi4/dev | Development]] &amp;gt; [[rock3/dev/qt | rockchip qt]]&lt;br /&gt;
&lt;br /&gt;
=== porting qt to rockchip platforms ===&lt;br /&gt;
&lt;br /&gt;
*  tools&lt;br /&gt;
 sudo apt-get install build-essential cmake &lt;br /&gt;
 wget https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz&lt;br /&gt;
 sudo tar xvf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz  -C /usr/local/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* download  qt source code &lt;br /&gt;
 mkdir -p pro/qtSourceDir &amp;amp;&amp;amp; cd pro/qtSourceDir&lt;br /&gt;
 wget https://download.qt.io/archive/qt/5.12/5.12.2/single/qt-everywhere-src-5.12.2.tar.xz&lt;br /&gt;
 tar -xvf qt-everywhere-src-5.12.2.tar.xz&lt;br /&gt;
 cd .. &lt;br /&gt;
 wget https://download.qt.io/archive/qt/5.12/5.12.2/qt-opensource-linux-x64-5.12.2.run&lt;br /&gt;
 or you can download them from [[https://download.qt.io/archive/qt/ here]]&lt;br /&gt;
&lt;br /&gt;
* Cross compilation&lt;br /&gt;
 vi qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf&lt;br /&gt;
&lt;br /&gt;
Before modification&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# qmake configuration for building with aarch64-linux-gnu-g++&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
MAKEFILE_GENERATOR      = UNIX&lt;br /&gt;
CONFIG                 += incremental&lt;br /&gt;
QMAKE_INCREMENTAL_STYLE = sublib&lt;br /&gt;
&lt;br /&gt;
include(../common/linux.conf)&lt;br /&gt;
include(../common/gcc-base-unix.conf)&lt;br /&gt;
include(../common/g++-unix.conf)&lt;br /&gt;
&lt;br /&gt;
# modifications to g++.conf&lt;br /&gt;
QMAKE_CC                = aarch64-linux-gnu-gcc&lt;br /&gt;
QMAKE_CXX               = aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK              = aarch64-linux-gnu-g++d&lt;br /&gt;
QMAKE_LINK_SHLIB        = aarch64-linux-gnu-g++&lt;br /&gt;
&lt;br /&gt;
# modifications to linux.conf&lt;br /&gt;
QMAKE_AR                = aarch64-linux-gnu-ar cqs&lt;br /&gt;
QMAKE_OBJCOPY           = aarch64-linux-gnu-objcopy&lt;br /&gt;
QMAKE_NM                = aarch64-linux-gnu-nm -P&lt;br /&gt;
QMAKE_STRIP             = aarch64-linux-gnu-strip&lt;br /&gt;
load(qt_config)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After modification&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# qmake configuration for building with aarch64-linux-gnu-g++&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
MAKEFILE_GENERATOR      = UNIX&lt;br /&gt;
CONFIG                 += incremental&lt;br /&gt;
QMAKE_INCREMENTAL_STYLE = sublib&lt;br /&gt;
&lt;br /&gt;
QT_QPA_DEFAULT_PLATFORM = linuxfb&lt;br /&gt;
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts&lt;br /&gt;
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
include(../common/linux.conf)&lt;br /&gt;
include(../common/gcc-base-unix.conf)&lt;br /&gt;
include(../common/g++-unix.conf)&lt;br /&gt;
&lt;br /&gt;
# modifications to g++.conf&lt;br /&gt;
QMAKE_CC                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc&lt;br /&gt;
QMAKE_CXX               = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK              = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
QMAKE_LINK_SHLIB        = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++&lt;br /&gt;
&lt;br /&gt;
# modifications to linux.conf&lt;br /&gt;
QMAKE_AR                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ar cqs&lt;br /&gt;
QMAKE_OBJCOPY           = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objcopy&lt;br /&gt;
QMAKE_NM                = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm -P&lt;br /&gt;
QMAKE_STRIP             = /usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip&lt;br /&gt;
load(qt_config)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock3/hardware/3b/gpio</id>
		<title>Rock3/hardware/3b/gpio</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock3/hardware/3b/gpio"/>
				<updated>2023-04-26T12:42:42Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rock3_header}}&lt;br /&gt;
{{Languages|rock3/hardware/gpio}}&lt;br /&gt;
&lt;br /&gt;
    [[rock3 | ROCK 3]] &amp;gt; [[rock3/hardware | Hardware]] &amp;gt; [[rock3/hardware/3b | ROCK 3 Model B Main Board]] &amp;gt; [[rock3/hardware/3b/gpio | ROCK 3B GPIO]]&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;span id=&amp;quot;gpio&amp;quot;&amp;gt;General purpose input-output (GPIO) connector&amp;lt;/span&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
ROCK 3B has one 40-pin expansion header. Each pin is distinguished by color.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-midnight-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3&amp;gt;Hardware V1.1&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;vertical-align:middle; background-color:#F9F9F9;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-weight:bold; text-align:center; background-color:#F2F2F2;&amp;quot;&lt;br /&gt;
! GPIO number&lt;br /&gt;
! Function4&lt;br /&gt;
! Function3&lt;br /&gt;
! Function2&lt;br /&gt;
! Function1&lt;br /&gt;
! Pin#&lt;br /&gt;
! &lt;br /&gt;
! Pin#&lt;br /&gt;
! Function1&lt;br /&gt;
! Function2&lt;br /&gt;
! Function3&lt;br /&gt;
! Function4&lt;br /&gt;
! GPIO number&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| +3.3V&lt;br /&gt;
| style=&amp;quot;background-color:#FF0;&amp;quot; | 1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#F00;&amp;quot; | 2&lt;br /&gt;
| +5.0V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| CAN1_RX_M0&lt;br /&gt;
| UART3_RX_M0&lt;br /&gt;
| I2C3_SDA_M0&lt;br /&gt;
| GPIO1_A0&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 3&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#F00;&amp;quot; | 4&lt;br /&gt;
| +5.0V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| CAN1_TX_M0&lt;br /&gt;
| UART3_TX_M0&lt;br /&gt;
| I2C3_SCL_M0&lt;br /&gt;
| GPIO1_A1&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 5&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| &lt;br /&gt;
| PWM1_M1&lt;br /&gt;
| I2C2_SCL_M0&lt;br /&gt;
| GPIO0_B5&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 7&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 8&lt;br /&gt;
| GPIO0_D1&lt;br /&gt;
| style=&amp;quot;background-color:#FFA500;&amp;quot; | UART2_TX_M0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 25&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GND&lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 9&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 10&lt;br /&gt;
| GPIO0_D0&lt;br /&gt;
| style=&amp;quot;background-color:#FFA500;&amp;quot; | UART2_RX_M0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 24&lt;br /&gt;
|-&lt;br /&gt;
| 116&lt;br /&gt;
| &lt;br /&gt;
| UART7_TX_M1&lt;br /&gt;
| PWM14_M0&lt;br /&gt;
| GPIO3_C4&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 11&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 12&lt;br /&gt;
| GPIO3_A3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 99&lt;br /&gt;
|-&lt;br /&gt;
| 117&lt;br /&gt;
| &lt;br /&gt;
| UART7_RX_M1&lt;br /&gt;
| PWM15_IR_M0&lt;br /&gt;
| GPIO3_C5&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 13&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| &lt;br /&gt;
| UART0_RX&lt;br /&gt;
| PWM1_M0&lt;br /&gt;
| GPIO0_C0&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 15&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 16&lt;br /&gt;
| GPIO0_B6&lt;br /&gt;
| I2C2_SDA_M0&lt;br /&gt;
| PWM2_M1&lt;br /&gt;
| &lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| +3.3V&lt;br /&gt;
| style=&amp;quot;background-color:#FF0;&amp;quot; | 17&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 18&lt;br /&gt;
| GPIO3_B2&lt;br /&gt;
| UART4_TX_M1&lt;br /&gt;
| PWM9_M0&lt;br /&gt;
| &lt;br /&gt;
| 106&lt;br /&gt;
|-&lt;br /&gt;
| 147&lt;br /&gt;
| CAN1_TX_M1&lt;br /&gt;
| SPI3_MOSI_M1&lt;br /&gt;
| PWM15_IR_M1&lt;br /&gt;
| GPIO4_C3&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 19&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 149&lt;br /&gt;
| UART9_TX_M1&lt;br /&gt;
| SPI3_MISO_M1&lt;br /&gt;
| PWM12_M1&lt;br /&gt;
| GPIO4_C5&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 21&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 22&lt;br /&gt;
| GPIO0_C1&lt;br /&gt;
| PWM2_M0&lt;br /&gt;
| UART0_TX&lt;br /&gt;
| &lt;br /&gt;
| 17&lt;br /&gt;
|-&lt;br /&gt;
| 146&lt;br /&gt;
| CAN1_RX_M1&lt;br /&gt;
| SPI3_CLK_M1&lt;br /&gt;
| PWM14_M1&lt;br /&gt;
| GPIO4_C2&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 23&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 24&lt;br /&gt;
| GPIO4_C6&lt;br /&gt;
| PWM13_M1&lt;br /&gt;
| SPI3_CS0_M1&lt;br /&gt;
| UART9_RX_M1&lt;br /&gt;
| 150&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GND&lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 25&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 26&lt;br /&gt;
| GPIO4_D1&lt;br /&gt;
| SPI3_CS1_M1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| USB_DP&lt;br /&gt;
| CAN0_RX_M0&lt;br /&gt;
| I2C1_SDA&lt;br /&gt;
| GPIO0_B4&lt;br /&gt;
| style=&amp;quot;background-color:#00F; color:#FFF;&amp;quot; | 27&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#00F; color:#FFF;&amp;quot; | 28&lt;br /&gt;
| GPIO0_B3&lt;br /&gt;
| I2C1_SCL&lt;br /&gt;
| CAN0_TX_M0&lt;br /&gt;
| USB_DM&lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| 95&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO2_D7&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 29&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 96&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO3_A0&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 31&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 32&lt;br /&gt;
| GPIO3_C2&lt;br /&gt;
| UART5_TX_M1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 114&lt;br /&gt;
|-&lt;br /&gt;
| 115&lt;br /&gt;
| &lt;br /&gt;
| UART5_RX_M1&lt;br /&gt;
| SPI1_CLK_M1&lt;br /&gt;
| GPIO3_C3&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 33&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 100&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO3_A4&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 35&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 36&lt;br /&gt;
| GPIO3_A2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 98&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SARADC_VIN5&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 37&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 38&lt;br /&gt;
| GPIO3_A6&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 102&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GND&lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 39&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 40&lt;br /&gt;
| GPIO3_A5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 101&lt;br /&gt;
|}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== More details about 40-pin Header In V1.3/V1.31 ====&lt;br /&gt;
&lt;br /&gt;
* Pins marked with color orange are designed for debug console.&lt;br /&gt;
* PWM; x7, PWM1 / PWM2 / PWM9 / PWM12 / PWM13 / PWM14 / PWM15&lt;br /&gt;
* SPI: x1, SPI3&lt;br /&gt;
* I2C: x3, I2C1 / I2C2 / I2C3&lt;br /&gt;
* UART: x6, UART0 / UART3 / UART5 / UART7 / UART8 / UART9&lt;br /&gt;
* ADC: x1, SARADC_VIN5&lt;br /&gt;
* CAN: x2, CAN0 / CAN1&lt;br /&gt;
&lt;br /&gt;
=== IO Voltage ===&lt;br /&gt;
&lt;br /&gt;
RK3568 have three IO voltages, 1.8V/3.3V. For ROCK 3, the high level voltage of GPIO pin on 40-PIN HEADER is 3.3V.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
| GPIO       | Voltage Level | Tolerance |&lt;br /&gt;
| ---------- | ------------- | --------- |&lt;br /&gt;
| GPIO3_C0   | 3.3V          | 3.63V     |&lt;br /&gt;
| ADC_IN5    | 1.8V          | 1.98V     |&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== GPIO number ===&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3568 GPIO has 5 banks, GPIO0 to GPIO4, each bank has 32pins, naming as below:&lt;br /&gt;
&lt;br /&gt;
 GPIO0_A0 ~ A7 &lt;br /&gt;
 GPIO0_B0 ~ B7&lt;br /&gt;
 GPIO0_C0 ~ C7&lt;br /&gt;
 GPIO0_D0 ~ D7&lt;br /&gt;
    &lt;br /&gt;
 GPIO1_A0 ~ A7&lt;br /&gt;
 ....&lt;br /&gt;
 GPIO1_D0 ~ D7&lt;br /&gt;
&lt;br /&gt;
For Rockchip 4.19 kernel, the GPIO number can be calculated as below, take GPIO4_D1 (PIN26 on 4-0PIN HEADER) as an example:&lt;br /&gt;
&lt;br /&gt;
 GPIO4_D1 = 4*32 + 3*8 + 1 = 153&lt;br /&gt;
 (A=0, B=1, C=2, D=3)&lt;br /&gt;
&lt;br /&gt;
To set GPIO4_D1 output&lt;br /&gt;
&lt;br /&gt;
 cd /sys/class/gpio&lt;br /&gt;
 echo 153 &amp;gt; export&lt;br /&gt;
 cd gpio153&lt;br /&gt;
 echo out &amp;gt; direction&lt;br /&gt;
 echo 1 &amp;gt; value     # output high&lt;br /&gt;
 echo 0 &amp;gt; value     # output low&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock3/hardware/3b/gpio</id>
		<title>Rock3/hardware/3b/gpio</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock3/hardware/3b/gpio"/>
				<updated>2023-04-26T12:02:06Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rock3_header}}&lt;br /&gt;
{{Languages|rock3/hardware/gpio}}&lt;br /&gt;
&lt;br /&gt;
    [[rock3 | ROCK 3]] &amp;gt; [[rock3/hardware | Hardware]] &amp;gt; [[rock3/hardware/3b | ROCK 3 Model B Main Board]] &amp;gt; [[rock3/hardware/3b/gpio | ROCK 3B GPIO]]&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;span id=&amp;quot;gpio&amp;quot;&amp;gt;General purpose input-output (GPIO) connector&amp;lt;/span&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
ROCK 3B has one 40-pin expansion header. Each pin is distinguished by color.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-midnight-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3&amp;gt;Hardware V1.1&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;vertical-align:middle; background-color:#F9F9F9;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-weight:bold; text-align:center; background-color:#F2F2F2;&amp;quot;&lt;br /&gt;
! GPIO number&lt;br /&gt;
! Function4&lt;br /&gt;
! Function3&lt;br /&gt;
! Function2&lt;br /&gt;
! Function1&lt;br /&gt;
! Pin#&lt;br /&gt;
! &lt;br /&gt;
! Pin#&lt;br /&gt;
! Function1&lt;br /&gt;
! Function2&lt;br /&gt;
! Function3&lt;br /&gt;
! Function4&lt;br /&gt;
! GPIO number&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| +3.3V&lt;br /&gt;
| style=&amp;quot;background-color:#FF0;&amp;quot; | 1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#F00;&amp;quot; | 2&lt;br /&gt;
| +5.0V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| CAN1_RX_M0&lt;br /&gt;
| UART3_RX_M0&lt;br /&gt;
| I2C3_SDA_M0&lt;br /&gt;
| GPIO1_A0&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 3&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#F00;&amp;quot; | 4&lt;br /&gt;
| +5.0V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| CAN1_TX_M0&lt;br /&gt;
| UART3_TX_M0&lt;br /&gt;
| I2C3_SCL_M0&lt;br /&gt;
| GPIO1_A1&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 5&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| &lt;br /&gt;
| PWM1_M1&lt;br /&gt;
| I2C2_SCL_M0&lt;br /&gt;
| GPIO0_B5&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 7&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 8&lt;br /&gt;
| GPIO0_D1&lt;br /&gt;
| style=&amp;quot;background-color:#FFA500;&amp;quot; | UART2_TX_M0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 25&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GND&lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 9&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 10&lt;br /&gt;
| GPIO0_D0&lt;br /&gt;
| style=&amp;quot;background-color:#FFA500;&amp;quot; | UART2_RX_M0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 24&lt;br /&gt;
|-&lt;br /&gt;
| 116&lt;br /&gt;
| &lt;br /&gt;
| UART7_TX_M1&lt;br /&gt;
| PWM14_M0&lt;br /&gt;
| GPIO3_C4&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 11&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 12&lt;br /&gt;
| GPIO3_A3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 99&lt;br /&gt;
|-&lt;br /&gt;
| 117&lt;br /&gt;
| &lt;br /&gt;
| UART7_RX_M1&lt;br /&gt;
| PWM15_IR_M0&lt;br /&gt;
| GPIO3_C5&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 13&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| &lt;br /&gt;
| UART0_RX&lt;br /&gt;
| PWM1_M0&lt;br /&gt;
| GPIO0_C0&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 15&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 16&lt;br /&gt;
| GPIO0_B6&lt;br /&gt;
| I2C2_SDA_M0&lt;br /&gt;
| PWM2_M1&lt;br /&gt;
| &lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| +3.3V&lt;br /&gt;
| style=&amp;quot;background-color:#FF0;&amp;quot; | 17&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 18&lt;br /&gt;
| GPIO3_B2&lt;br /&gt;
| UART4_TX_M1&lt;br /&gt;
| PWM9_M0&lt;br /&gt;
| &lt;br /&gt;
| 106&lt;br /&gt;
|-&lt;br /&gt;
| 147&lt;br /&gt;
| CAN1_TX_M1&lt;br /&gt;
| SPI3_MOSI_M1&lt;br /&gt;
| PWM15_IR_M1&lt;br /&gt;
| GPIO4_C3&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 19&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 149&lt;br /&gt;
| UART9_TX_M1&lt;br /&gt;
| SPI3_MISO_M1&lt;br /&gt;
| PWM12_M1&lt;br /&gt;
| GPIO4_C5&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 21&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 22&lt;br /&gt;
| GPIO0_C1&lt;br /&gt;
| PWM2_M0&lt;br /&gt;
| UART0_TX&lt;br /&gt;
| &lt;br /&gt;
| 17&lt;br /&gt;
|-&lt;br /&gt;
| 146&lt;br /&gt;
| CAN1_RX_M1&lt;br /&gt;
| SPI3_CLK_M1&lt;br /&gt;
| PWM14_M1&lt;br /&gt;
| GPIO4_C2&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 23&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 24&lt;br /&gt;
| GPIO4_C6&lt;br /&gt;
| PWM13_M1&lt;br /&gt;
| SPI3_CS0_M1&lt;br /&gt;
| UART9_RX_M1&lt;br /&gt;
| 150&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GND&lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 25&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 26&lt;br /&gt;
| NC&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| USB_DP&lt;br /&gt;
| CAN0_RX_M0&lt;br /&gt;
| I2C1_SDA&lt;br /&gt;
| GPIO0_B4&lt;br /&gt;
| style=&amp;quot;background-color:#00F; color:#FFF;&amp;quot; | 27&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#00F; color:#FFF;&amp;quot; | 28&lt;br /&gt;
| GPIO0_B3&lt;br /&gt;
| I2C1_SCL&lt;br /&gt;
| CAN0_TX_M0&lt;br /&gt;
| USB_DM&lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| 95&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO2_D7&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 29&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 96&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO3_A0&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 31&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 32&lt;br /&gt;
| GPIO3_C2&lt;br /&gt;
| UART5_TX_M1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 114&lt;br /&gt;
|-&lt;br /&gt;
| 115&lt;br /&gt;
| &lt;br /&gt;
| UART5_RX_M1&lt;br /&gt;
| SPI1_CLK_M1&lt;br /&gt;
| GPIO3_C3&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 33&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 100&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO3_A4&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 35&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 36&lt;br /&gt;
| GPIO3_A2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 98&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SARADC_VIN5&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 37&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 38&lt;br /&gt;
| GPIO3_A6&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 102&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GND&lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 39&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 40&lt;br /&gt;
| GPIO3_A5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 101&lt;br /&gt;
|}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== More details about 40-pin Header In V1.3/V1.31 ====&lt;br /&gt;
&lt;br /&gt;
* Pins marked with color orange are designed for debug console.&lt;br /&gt;
* PWM; x7, PWM1 / PWM2 / PWM9 / PWM12 / PWM13 / PWM14 / PWM15&lt;br /&gt;
* SPI: x1, SPI3&lt;br /&gt;
* I2C: x3, I2C1 / I2C2 / I2C3&lt;br /&gt;
* UART: x6, UART0 / UART3 / UART5 / UART7 / UART8 / UART9&lt;br /&gt;
* ADC: x1, SARADC_VIN5&lt;br /&gt;
* CAN: x2, CAN0 / CAN1&lt;br /&gt;
&lt;br /&gt;
=== IO Voltage ===&lt;br /&gt;
&lt;br /&gt;
RK3568 have three IO voltages, 1.8V/3.3V. For ROCK 3, the high level voltage of GPIO pin on 40-PIN HEADER is 3.3V.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
| GPIO       | Voltage Level | Tolerance |&lt;br /&gt;
| ---------- | ------------- | --------- |&lt;br /&gt;
| GPIO3_C0   | 3.3V          | 3.63V     |&lt;br /&gt;
| ADC_IN5    | 1.8V          | 1.98V     |&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== GPIO number ===&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3568 GPIO has 5 banks, GPIO0 to GPIO4, each bank has 32pins, naming as below:&lt;br /&gt;
&lt;br /&gt;
 GPIO0_A0 ~ A7 &lt;br /&gt;
 GPIO0_B0 ~ B7&lt;br /&gt;
 GPIO0_C0 ~ C7&lt;br /&gt;
 GPIO0_D0 ~ D7&lt;br /&gt;
    &lt;br /&gt;
 GPIO1_A0 ~ A7&lt;br /&gt;
 ....&lt;br /&gt;
 GPIO1_D0 ~ D7&lt;br /&gt;
&lt;br /&gt;
For Rockchip 4.19 kernel, the GPIO number can be calculated as below, take GPIO4_D1 (PIN26 on 4-0PIN HEADER) as an example:&lt;br /&gt;
&lt;br /&gt;
 GPIO4_D1 = 4*32 + 3*8 + 1 = 153&lt;br /&gt;
 (A=0, B=1, C=2, D=3)&lt;br /&gt;
&lt;br /&gt;
To set GPIO4_D1 output&lt;br /&gt;
&lt;br /&gt;
 cd /sys/class/gpio&lt;br /&gt;
 echo 153 &amp;gt; export&lt;br /&gt;
 cd gpio153&lt;br /&gt;
 echo out &amp;gt; direction&lt;br /&gt;
 echo 1 &amp;gt; value     # output high&lt;br /&gt;
 echo 0 &amp;gt; value     # output low&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock3/hardware/3b/gpio</id>
		<title>Rock3/hardware/3b/gpio</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock3/hardware/3b/gpio"/>
				<updated>2023-04-26T03:09:19Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rock3_header}}&lt;br /&gt;
{{Languages|rock3/hardware/gpio}}&lt;br /&gt;
&lt;br /&gt;
    [[rock3 | ROCK 3]] &amp;gt; [[rock3/hardware | Hardware]] &amp;gt; [[rock3/hardware/3b | ROCK 3 Model B Main Board]] &amp;gt; [[rock3/hardware/3b/gpio | ROCK 3B GPIO]]&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;span id=&amp;quot;gpio&amp;quot;&amp;gt;General purpose input-output (GPIO) connector&amp;lt;/span&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
ROCK 3B has one 40-pin expansion header. Each pin is distinguished by color.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-midnight-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3&amp;gt;Hardware V1.1&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;vertical-align:middle; background-color:#F9F9F9;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-weight:bold; text-align:center; background-color:#F2F2F2;&amp;quot;&lt;br /&gt;
! GPIO number&lt;br /&gt;
! Function4&lt;br /&gt;
! Function3&lt;br /&gt;
! Function2&lt;br /&gt;
! Function1&lt;br /&gt;
! Pin#&lt;br /&gt;
! &lt;br /&gt;
! Pin#&lt;br /&gt;
! Function1&lt;br /&gt;
! Function2&lt;br /&gt;
! Function3&lt;br /&gt;
! Function4&lt;br /&gt;
! GPIO number&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| +3.3V&lt;br /&gt;
| style=&amp;quot;background-color:#FF0;&amp;quot; | 1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#F00;&amp;quot; | 2&lt;br /&gt;
| +5.0V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| CAN1_RX_M0&lt;br /&gt;
| UART3_RX_M0&lt;br /&gt;
| I2C3_SDA_M0&lt;br /&gt;
| GPIO1_A0&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 3&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#F00;&amp;quot; | 4&lt;br /&gt;
| +5.0V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| CAN1_TX_M0&lt;br /&gt;
| UART3_TX_M0&lt;br /&gt;
| I2C3_SCL_M0&lt;br /&gt;
| GPIO1_A1&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 5&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| &lt;br /&gt;
| PWM1_M1&lt;br /&gt;
| I2C2_SCL_M0&lt;br /&gt;
| GPIO0_B5&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 7&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 8&lt;br /&gt;
| GPIO0_D1&lt;br /&gt;
| style=&amp;quot;background-color:#FFA500;&amp;quot; | UART2_TX_M0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 25&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GND&lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 9&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 10&lt;br /&gt;
| GPIO0_D0&lt;br /&gt;
| style=&amp;quot;background-color:#FFA500;&amp;quot; | UART2_RX_M0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 24&lt;br /&gt;
|-&lt;br /&gt;
| 116&lt;br /&gt;
| &lt;br /&gt;
| UART7_TX_M1&lt;br /&gt;
| PWM14_M0&lt;br /&gt;
| GPIO3_C4&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 11&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 12&lt;br /&gt;
| GPIO3_A3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 99&lt;br /&gt;
|-&lt;br /&gt;
| 117&lt;br /&gt;
| &lt;br /&gt;
| UART7_RX_M1&lt;br /&gt;
| PWM15_IR_M0&lt;br /&gt;
| GPIO3_C5&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 13&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| &lt;br /&gt;
| UART0_RX&lt;br /&gt;
| PWM1_M0&lt;br /&gt;
| GPIO0_C0&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 15&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 16&lt;br /&gt;
| GPIO0_B6&lt;br /&gt;
| I2C2_SDA_M0&lt;br /&gt;
| PWM2_M1&lt;br /&gt;
| &lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| +3.3V&lt;br /&gt;
| style=&amp;quot;background-color:#FF0;&amp;quot; | 17&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 18&lt;br /&gt;
| GPIO3_B2&lt;br /&gt;
| UART4_TX_M1&lt;br /&gt;
| PWM9_M0&lt;br /&gt;
| &lt;br /&gt;
| 106&lt;br /&gt;
|-&lt;br /&gt;
| 147&lt;br /&gt;
| CAN1_TX_M1&lt;br /&gt;
| SPI3_MOSI_M1&lt;br /&gt;
| PWM15_IR_M1&lt;br /&gt;
| GPIO4_C3&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 19&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 149&lt;br /&gt;
| UART9_TX_M1&lt;br /&gt;
| SPI3_MISO_M1&lt;br /&gt;
| PWM12_M1&lt;br /&gt;
| GPIO4_C5&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 21&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 22&lt;br /&gt;
| GPIO0_C1&lt;br /&gt;
| PWM2_M0&lt;br /&gt;
| UART0_TX&lt;br /&gt;
| &lt;br /&gt;
| 17&lt;br /&gt;
|-&lt;br /&gt;
| 146&lt;br /&gt;
| CAN1_RX_M1&lt;br /&gt;
| SPI3_CLK_M1&lt;br /&gt;
| PWM14_M1&lt;br /&gt;
| GPIO4_C2&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 23&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 24&lt;br /&gt;
| GPIO4_C6&lt;br /&gt;
| PWM13_M1&lt;br /&gt;
| SPI3_CS0_M1&lt;br /&gt;
| UART9_RX_M1&lt;br /&gt;
| 150&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GND&lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 25&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 26&lt;br /&gt;
| NC&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| USB_DP&lt;br /&gt;
| CAN0_RX_M0&lt;br /&gt;
| I2C1_SDA&lt;br /&gt;
| GPIO0_B4&lt;br /&gt;
| style=&amp;quot;background-color:#00F; color:#FFF;&amp;quot; | 27&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#00F; color:#FFF;&amp;quot; | 28&lt;br /&gt;
| GPIO0_B3&lt;br /&gt;
| I2C1_SCL&lt;br /&gt;
| CAN0_TX_M0&lt;br /&gt;
| USB_DM&lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| 95&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| UART8_TX_M1&lt;br /&gt;
| GPIO2_D7&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 29&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 96&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| UART8_RX_M1&lt;br /&gt;
| GPIO3_A0&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 31&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 32&lt;br /&gt;
| GPIO3_C2&lt;br /&gt;
| UART5_TX_M1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 114&lt;br /&gt;
|-&lt;br /&gt;
| 115&lt;br /&gt;
| &lt;br /&gt;
| UART5_RX_M1&lt;br /&gt;
| SPI1_CLK_M1&lt;br /&gt;
| GPIO3_C3&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 33&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 100&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO3_A4&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 35&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 36&lt;br /&gt;
| GPIO3_A2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 98&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SARADC_VIN5&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 37&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 38&lt;br /&gt;
| GPIO3_A6&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 102&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GND&lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 39&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 40&lt;br /&gt;
| GPIO3_A5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 101&lt;br /&gt;
|}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== More details about 40-pin Header In V1.3/V1.31 ====&lt;br /&gt;
&lt;br /&gt;
* Pins marked with color orange are designed for debug console.&lt;br /&gt;
* PWM; x7, PWM1 / PWM2 / PWM9 / PWM12 / PWM13 / PWM14 / PWM15&lt;br /&gt;
* SPI: x1, SPI3&lt;br /&gt;
* I2C: x3, I2C1 / I2C2 / I2C3&lt;br /&gt;
* UART: x6, UART0 / UART3 / UART5 / UART7 / UART8 / UART9&lt;br /&gt;
* ADC: x1, SARADC_VIN5&lt;br /&gt;
* CAN: x2, CAN0 / CAN1&lt;br /&gt;
&lt;br /&gt;
=== IO Voltage ===&lt;br /&gt;
&lt;br /&gt;
RK3568 have three IO voltages, 1.8V/3.3V. For ROCK 3, the high level voltage of GPIO pin on 40-PIN HEADER is 3.3V.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
| GPIO       | Voltage Level | Tolerance |&lt;br /&gt;
| ---------- | ------------- | --------- |&lt;br /&gt;
| GPIO3_C0   | 3.3V          | 3.63V     |&lt;br /&gt;
| ADC_IN5    | 1.8V          | 1.98V     |&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== GPIO number ===&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3568 GPIO has 5 banks, GPIO0 to GPIO4, each bank has 32pins, naming as below:&lt;br /&gt;
&lt;br /&gt;
 GPIO0_A0 ~ A7 &lt;br /&gt;
 GPIO0_B0 ~ B7&lt;br /&gt;
 GPIO0_C0 ~ C7&lt;br /&gt;
 GPIO0_D0 ~ D7&lt;br /&gt;
    &lt;br /&gt;
 GPIO1_A0 ~ A7&lt;br /&gt;
 ....&lt;br /&gt;
 GPIO1_D0 ~ D7&lt;br /&gt;
&lt;br /&gt;
For Rockchip 4.19 kernel, the GPIO number can be calculated as below, take GPIO4_D1 (PIN26 on 4-0PIN HEADER) as an example:&lt;br /&gt;
&lt;br /&gt;
 GPIO4_D1 = 4*32 + 3*8 + 1 = 153&lt;br /&gt;
 (A=0, B=1, C=2, D=3)&lt;br /&gt;
&lt;br /&gt;
To set GPIO4_D1 output&lt;br /&gt;
&lt;br /&gt;
 cd /sys/class/gpio&lt;br /&gt;
 echo 153 &amp;gt; export&lt;br /&gt;
 cd gpio153&lt;br /&gt;
 echo out &amp;gt; direction&lt;br /&gt;
 echo 1 &amp;gt; value     # output high&lt;br /&gt;
 echo 0 &amp;gt; value     # output low&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock5/hardware/5a/gpio</id>
		<title>Rock5/hardware/5a/gpio</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock5/hardware/5a/gpio"/>
				<updated>2023-04-23T03:23:40Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rock5_header}}&lt;br /&gt;
{{Languages|rock5/hardware/5a/gpio}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
    [[rock5 | ROCK 5]] &amp;gt; [[rock5/hardware | Hardware]] &amp;gt; [[rock5/hardware/5a | ROCK 5A hardware details]] &amp;gt; [[rock5/hardware/5a/gpio | GPIO]]&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;span id=&amp;quot;gpio&amp;quot;&amp;gt;General purpose input-output (GPIO) connector&amp;lt;/span&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
ROCK 5A has one 40-pin expansion header. Each pin is distinguished by color.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-midnight-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3&amp;gt;Hardware X1.2&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO number&lt;br /&gt;
! Function7&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;&amp;quot; | Function6&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;&amp;quot; | Function5&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;&amp;quot; | Function4&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;&amp;quot; | Function3&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;&amp;quot; | Function2&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;&amp;quot; | Function1&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;&amp;quot; | Pin#&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
! style=&amp;quot;vertical-align:middle;&amp;quot; | Pin#&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;&amp;quot; | Function1&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;&amp;quot; | Function2&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;&amp;quot; | Function3&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;&amp;quot; | Function4&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;&amp;quot; | Function5&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;&amp;quot; | Function6&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;&amp;quot; | Function7&lt;br /&gt;
! style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO number&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | +3.3V&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#FF0;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#F00;&amp;quot; | 2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | +5.0V&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 63&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | PWM15_IR_M3&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | UART1_CTSN_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2C8_SDA_M2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO1_D7&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#F00;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | +5.0V&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 62&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | PWM14_M2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | UART1_RTSN_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2C8_SCL_M2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO1_D6&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 5&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#000000; color:#F9F9F9;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GND&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 43&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| UART4_TX_M2&lt;br /&gt;
| SPI0_CLK_M2&lt;br /&gt;
| PDM1_CLK1_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO1_B3&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO0_B5&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#FF8D02;&amp;quot; | UART2_TX_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2C1_SCL_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#FFF;&amp;quot; | I2S1_MCLK_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 13&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GND&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#333; color:#FFF;&amp;quot; | 9&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 10&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO0_B6&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#FF8D02;&amp;quot; | UART2_RX_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2C1_SDA_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#FFF;&amp;quot; | I2S1_SCLK_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 14&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 139&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | CAN1_TX_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | PWM15_IR_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2S1_SDO2_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | UART8_CTSN_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2C7_SDA_M3&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO4_B3&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 11&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 12&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO4_A1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | SPI0_MOSI_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | UART9_CTSN_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2S1_SCLK_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 129&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 138&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | CAN1_RX_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | PWM14_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2S1_SDO1_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | UART8_RTSN_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | SPI0_CS0_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2C7_SCL_M3&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO4_B2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 13&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#333; color:#FFF;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GND&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 140&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2S1_SDO3_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | SPDIF0_TX_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | PWM11_IR_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | UART9_TX_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO4_B4&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 15&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 16&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO1_A5&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | SPI2_MOSI_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 37&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | +3.3V&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#FF0;&amp;quot; | 17&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 18&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO1_B0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | PDM1_SDI1_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | SPI2_CS1_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 40&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 33&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | UART6_TX_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | SPI4_MOSI_M2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2C2_SCL_M4&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO1_A1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 19&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#333; color:#FFF;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GND&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 32&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | UART6_RX_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | SPI4_MISO_M2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2C2_SDA_M4&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO1_A0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 21&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 22&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO1_B5&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | SPI0_CS1_M2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | UART7_TX_M2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 45&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 34&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | PWM0_M2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | UART6_RTSN_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | SPI4_CLK_M2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2C4_SDA_M3&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO1_A2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO1_A3&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2C4_SCL_M3&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | SPI4_CS0_M2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | UART6_CTSN_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | PWM1_M2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 35&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GND&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#333; color:#FFF;&amp;quot; | 25&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 26&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO1_A4&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | SPI2_MISO_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 36&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 23&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | SPI0_MISO_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2S1_SDI2_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2C6_SDA_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | PDM0_SDI0_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | UART1_RTSN_M2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | PWM6_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO0_C7&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#00F; color:#FFF;&amp;quot; | 27&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#00F; color:#FFF;&amp;quot; | 28&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO0_D0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | PWM7_IR_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | UART1_CTSN_M2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | PDM0_SDI1_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2C6_SCL_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2S1_SDI3_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | SPI3_MISO_M2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 24&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 42&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| UART4_RX_M2&lt;br /&gt;
| SPI0_MOSI_M2&lt;br /&gt;
| PDM1_SDI3_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO1_B2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#333; color:#FFF;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GND&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 41&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| SPI0_MISO_M2&lt;br /&gt;
| PDM1_SDI2_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO1_B1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 31&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 32&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO4_B0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2C6_SDA_M3&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | SPI2_CS1_M1&lt;br /&gt;
| UART8_TX_M0&lt;br /&gt;
| I2S1_SDI3_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 136&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 44&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| UART7_RX_M2&lt;br /&gt;
| SPI0_CS0_M2&lt;br /&gt;
| PDM1_CLK0_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO1_B4&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 33&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#330001; color:#FFF;&amp;quot; | 34&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GND&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 128&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2S1_MCLK_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | UART9_RTSN_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | SPI0_MISO_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO4_A0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 35&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 36&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO4_A2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | SPI0_CLK_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2S1_LRCK_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 130&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | SARADC_VIN2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 37&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 38&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO4_A5&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2C3_SDA_M2&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | UART3_TX_M2&lt;br /&gt;
| I2S1_SDI0_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 133&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GND&lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#333; color:#FFF;&amp;quot; | 39&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle; background-color:#008000; color:#FFF;&amp;quot; | 40&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | GPIO4_B1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2C6_SCL_M3&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | SPI0_CS1_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | UART8_RX_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | I2S1_SDO0_M0&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | SPDIF1_TX_M1&lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;vertical-align:middle;&amp;quot; | 137&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== More details about X1.2 Headers ====&lt;br /&gt;
&lt;br /&gt;
* Pins marked with color orange are designed for debug console.&lt;br /&gt;
* PWM: X6&lt;br /&gt;
** PWM0&lt;br /&gt;
*** Pin#23  PWM0_M2&lt;br /&gt;
** PWM6&lt;br /&gt;
*** Pin#27  PWM6_M0&lt;br /&gt;
** PWM7&lt;br /&gt;
*** Pin#28  PWM7_IR_M0&lt;br /&gt;
** PWM11&lt;br /&gt;
*** Pin#15  PWM11_IR_M1&lt;br /&gt;
** PWM14&lt;br /&gt;
*** Pin#5  PWM14_M2&lt;br /&gt;
*** Pin#13  PWM14_M1&lt;br /&gt;
** PWM15&lt;br /&gt;
*** Pin#3  PWM15_IR_M3&lt;br /&gt;
*** Pin#11  PWM15_IR_M1&lt;br /&gt;
* I2C: X5&lt;br /&gt;
** I2C-1&lt;br /&gt;
*** Pin#10  I2C1_SDA_M0  +  Pin#8  I2C1_SCL_M0&lt;br /&gt;
** I2C-4&lt;br /&gt;
*** Pin#23  I2C4_SDA_M3  +  Pin#24  I2C4_SCL_M3&lt;br /&gt;
** I2C-6&lt;br /&gt;
*** Pin#27  I2C6_SDA_M0  +  Pin#28  I2C6_SCL_M0&lt;br /&gt;
*** Each pin is connected to the 3.3V supply through a 2.2K pull-up resistor.&lt;br /&gt;
** I2C-7&lt;br /&gt;
*** Pin#11  I2C7_SDA_M3  +  Pin#13  I2C7_SCL_M3&lt;br /&gt;
*** Each pin is connected to the 3.3V supply through a 2.2K pull-up resistor.&lt;br /&gt;
** I2C-8&lt;br /&gt;
*** Pin#3  I2C8_SDA_M2 +  Pin#5  I2C8_SCL_M2&lt;br /&gt;
*** Each pin is connected to the 3.3V supply through a 2.2K pull-up resistor.&lt;br /&gt;
* SPI: X3&lt;br /&gt;
** SPI0&lt;br /&gt;
** SPI4&lt;br /&gt;
* UART: X5&lt;br /&gt;
** UART2&lt;br /&gt;
** UART4&lt;br /&gt;
** UART6&lt;br /&gt;
** UART7&lt;br /&gt;
** UART8&lt;br /&gt;
* ADC: X1&lt;br /&gt;
** Pin#37  SARADC_VIN2&lt;br /&gt;
** Input voltage: &amp;lt;code&amp;gt;0-3.3 V&amp;lt;/code&amp;gt;&lt;br /&gt;
* CAN: X1, CAN1&lt;br /&gt;
* USB 2.0: X1, USB_DP(PIN#27) + USB_DM(PIN#28)&lt;br /&gt;
** When selecting the USB function, we need to rework the hardware like this.&lt;br /&gt;
*** Add R104 and R106&lt;br /&gt;
*** Remove R169 and R170&lt;br /&gt;
* I2S&lt;br /&gt;
* PDM&lt;br /&gt;
* S/PDIF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-midnight-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3&amp;gt;Hardware X1.1&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-weight:bold; text-align:center;&amp;quot;&lt;br /&gt;
! GPIO number&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot; | Function6&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot; | Function5&lt;br /&gt;
! Function4&lt;br /&gt;
! Function3&lt;br /&gt;
! Function2&lt;br /&gt;
! Function1&lt;br /&gt;
! Pin#&lt;br /&gt;
! &lt;br /&gt;
! Pin#&lt;br /&gt;
! Function1&lt;br /&gt;
! Function2&lt;br /&gt;
! Function3&lt;br /&gt;
! Function4&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot; | Function5&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot; | Function6&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot; | Function7&lt;br /&gt;
! GPIO number&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| +3.3V&lt;br /&gt;
| style=&amp;quot;background-color:#FF0;&amp;quot; | 1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#F00;&amp;quot; | 2&lt;br /&gt;
| +5.0V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| UART6_RX_M1&lt;br /&gt;
| SPI4_MISO_M2&lt;br /&gt;
| I2C2_SDA_M4&lt;br /&gt;
| GPIO1_A0&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 3&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#F00;&amp;quot; | 4&lt;br /&gt;
| +5.0V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| UART6_TX_M1&lt;br /&gt;
| SPI4_MOSI_M2&lt;br /&gt;
| I2C2_SCL_M4&lt;br /&gt;
| GPIO1_A1&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 5&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000000; color:#F9F9F9;&amp;quot; | 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 43&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PDM1_CLK1_M1&lt;br /&gt;
| UART4_TX_M2&lt;br /&gt;
| SPI0_CLK_M2&lt;br /&gt;
| GPIO1_B3&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 7&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 8&lt;br /&gt;
| GPIO0_B5&lt;br /&gt;
| style=&amp;quot;background-color:#ff8d02;&amp;quot; | UART2_TX_M0&lt;br /&gt;
| I2C1_SCL_M0&lt;br /&gt;
| style=&amp;quot;background-color:#ffffff;&amp;quot; | I2S1_MCLK_M1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 13&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GND&lt;br /&gt;
| style=&amp;quot;background-color:#333; color:#FFF;&amp;quot; | 9&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 10&lt;br /&gt;
| GPIO0_B6&lt;br /&gt;
| style=&amp;quot;background-color:#ff8d02;&amp;quot; | UART2_RX_M0&lt;br /&gt;
| I2C1_SDA_M0&lt;br /&gt;
| style=&amp;quot;background-color:#ffffff;&amp;quot; | I2S1_SCLK_M1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| 34&lt;br /&gt;
| &lt;br /&gt;
| PWM0_M2&lt;br /&gt;
| UART6_RTSN_M1&lt;br /&gt;
| SPI4_CLK_M2&lt;br /&gt;
| I2C4_SDA_M3&lt;br /&gt;
| GPIO1_A2&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 11&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 12&lt;br /&gt;
| GPIO4_A1&lt;br /&gt;
| SPI0_MOSI_M1&lt;br /&gt;
| UART9_CTSN_M1&lt;br /&gt;
| I2S1_SCLK_M0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 129&lt;br /&gt;
|-&lt;br /&gt;
| 35&lt;br /&gt;
| &lt;br /&gt;
| PWM1_M2&lt;br /&gt;
| UART6_CTSN_M1&lt;br /&gt;
| SPI4_CS0_M2&lt;br /&gt;
| I2C4_SCL_M3&lt;br /&gt;
| GPIO1_A3&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 13&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#333; color:#FFF;&amp;quot; | 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 140&lt;br /&gt;
| &lt;br /&gt;
| I2S1_SDO3_M0&lt;br /&gt;
| SPDIF0_TX_M1&lt;br /&gt;
| PWM11_IR_M1&lt;br /&gt;
| UART9_TX_M1&lt;br /&gt;
| GPIO4_B4&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 15&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 16&lt;br /&gt;
| GPIO1_D6&lt;br /&gt;
| I2C8_SCL_M2&lt;br /&gt;
| UART1_RTSN_M1&lt;br /&gt;
| PWM14_M2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 62&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| +3.3V&lt;br /&gt;
| style=&amp;quot;background-color:#FF0;&amp;quot; | 17&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 18&lt;br /&gt;
| GPIO1_D7&lt;br /&gt;
| I2C8_SDA_M2&lt;br /&gt;
| UART1_CTSN_M1&lt;br /&gt;
| PWM15_IR_M3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 63&lt;br /&gt;
|-&lt;br /&gt;
| 37&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SPI2_MOSI_M0&lt;br /&gt;
| GPIO1_A5&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 19&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#333; color:#FFF;&amp;quot; | 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SPI2_MISO_M0&lt;br /&gt;
| GPIO1_A4&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 21&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 22&lt;br /&gt;
| GPIO1_B5&lt;br /&gt;
| SPI0_CS1_M2&lt;br /&gt;
| UART7_TX_M2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 45&lt;br /&gt;
|-&lt;br /&gt;
| 38&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SPI2_CLK_M0&lt;br /&gt;
| GPIO1_A6&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 23&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 24&lt;br /&gt;
| GPIO1_A7&lt;br /&gt;
| SPI2_CS0_M0&lt;br /&gt;
| PDM1_SDI0_M1&lt;br /&gt;
| PWM3_IR_M3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 39&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GND&lt;br /&gt;
| style=&amp;quot;background-color:#333; color:#FFF;&amp;quot; | 25&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 26&lt;br /&gt;
| SARADC_VIN5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 139&lt;br /&gt;
| CAN1_TX_M1&lt;br /&gt;
| I2S1_SDO2_M0&lt;br /&gt;
| PWM15_IR_M1&lt;br /&gt;
| UART8_CTSN_M0&lt;br /&gt;
| I2C7_SDA_M3&lt;br /&gt;
| GPIO4_B3&lt;br /&gt;
| style=&amp;quot;background-color:#00F; color:#FFF;&amp;quot; | 27&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#00F; color:#FFF;&amp;quot; | 28&lt;br /&gt;
| GPIO4_B2&lt;br /&gt;
| I2C7_SCL_M3&lt;br /&gt;
| SPI0_CS0_M1&lt;br /&gt;
| UART8_RTSN_M0&lt;br /&gt;
| PWM14_M1&lt;br /&gt;
| I2S1_SDO1_M0&lt;br /&gt;
| CAN1_RX_M1&lt;br /&gt;
| 138&lt;br /&gt;
|-&lt;br /&gt;
| 42&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PDM1_SDI3_M1&lt;br /&gt;
| UART4_RX_M2&lt;br /&gt;
| SPI0_MOSI_M2&lt;br /&gt;
| GPIO1_B2&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 29&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#333; color:#FFF;&amp;quot; | 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 41&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PDM1_SDI2_M1&lt;br /&gt;
| SPI0_MISO_M2&lt;br /&gt;
| GPIO1_B1&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 31&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 32&lt;br /&gt;
| GPIO4_B0&lt;br /&gt;
| I2C6_SDA_M3&lt;br /&gt;
| UART8_TX_M0&lt;br /&gt;
| I2S1_SDI3_M0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 136&lt;br /&gt;
|-&lt;br /&gt;
| 44&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PDM1_CLK0_M1&lt;br /&gt;
| UART7_RX_M2&lt;br /&gt;
| SPI0_CS0_M2&lt;br /&gt;
| GPIO1_B4&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 33&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#330001; color:#FFF;&amp;quot; | 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 128&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| I2S1_MCLK_M0&lt;br /&gt;
| UART9_RTSN_M1&lt;br /&gt;
| SPI0_MISO_M1&lt;br /&gt;
| GPIO4_A0&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 35&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 36&lt;br /&gt;
| GPIO4_A2&lt;br /&gt;
| SPI0_CLK_M1&lt;br /&gt;
| I2S1_LRCK_M0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 130&lt;br /&gt;
|-&lt;br /&gt;
| 40&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| PDM1_SDI1_M1&lt;br /&gt;
| SPI2_CS1_M0&lt;br /&gt;
| GPIO1_B0&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 37&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 38&lt;br /&gt;
| GPIO4_A5&lt;br /&gt;
| I2C3_SDA_M2&lt;br /&gt;
| UART3_TX_M2&lt;br /&gt;
| I2S1_SDI0_M0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 133&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GND&lt;br /&gt;
| style=&amp;quot;background-color:#333; color:#FFF;&amp;quot; | 39&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 40&lt;br /&gt;
| GPIO4_B1&lt;br /&gt;
| I2C6_SCL_M3&lt;br /&gt;
| SPI0_CS1_M1&lt;br /&gt;
| UART8_RX_M0&lt;br /&gt;
| SPDIF1_TX_M1&lt;br /&gt;
| I2S1_SDO0_M0&lt;br /&gt;
| &lt;br /&gt;
| 137&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== More details about X1.1 Headers ====&lt;br /&gt;
&lt;br /&gt;
* Pins marked with color orange are designed for debug console.&lt;br /&gt;
* PWM: X6&lt;br /&gt;
** PWM0&lt;br /&gt;
*** Pin#11  PWM0_M2&lt;br /&gt;
** PWM1&lt;br /&gt;
*** Pin#13  PWM1_M2&lt;br /&gt;
** PWM3&lt;br /&gt;
*** Pin#24  PWM3_IR_M3&lt;br /&gt;
** PWM11&lt;br /&gt;
*** Pin#15  PWM11_IR_M1&lt;br /&gt;
** PWM14&lt;br /&gt;
*** Pin#16  PWM14_M2   &lt;br /&gt;
*** Pin#28  PWM14_M1&lt;br /&gt;
** PWM15&lt;br /&gt;
*** Pin#18  PWM15_IR_M3&lt;br /&gt;
*** Pin#27  PWM15_IR_M1&lt;br /&gt;
* I2C: X5&lt;br /&gt;
** I2C-1&lt;br /&gt;
*** Pin#10  I2C1_SDA_M0  +  Pin#8  I2C1_SCL_M0&lt;br /&gt;
** I2C-4&lt;br /&gt;
*** Pin#11  I2C4_SDA_M3  +  Pin#13  I2C4_SCL_M3&lt;br /&gt;
** I2C-6&lt;br /&gt;
*** Pin#32  I2C6_SDA_M3  +  Pin#40  I2C6_SCL_M3&lt;br /&gt;
** I2C-7&lt;br /&gt;
*** Pin#27  I2C7_SDA_M3  +  Pin#28  I2C7_SCL_M3&lt;br /&gt;
*** Each pin is connected to the 3.3V supply through a 2.2K pull-up resistor.&lt;br /&gt;
** I2C-8&lt;br /&gt;
*** Pin#18  I2C8_SDA_M2 +  Pin#16  I2C8_SCL_M2&lt;br /&gt;
* SPI: X3&lt;br /&gt;
** SPI0&lt;br /&gt;
** SPI2&lt;br /&gt;
** SPI4&lt;br /&gt;
* UART: X5&lt;br /&gt;
** UART2-m0&lt;br /&gt;
** UART4-m2&lt;br /&gt;
** UART6-m1&lt;br /&gt;
** UART7-m2&lt;br /&gt;
** UART8-m0&lt;br /&gt;
* ADC: X1&lt;br /&gt;
** Pin#26  SARADC_VIN5&lt;br /&gt;
** Input voltage: &amp;lt;code&amp;gt;0-1.8 V&amp;lt;/code&amp;gt;&lt;br /&gt;
* CAN: X1, CAN1&lt;br /&gt;
* USB 2.0: X1, USB_DP(PIN#27) + USB_DM(PIN#28)&lt;br /&gt;
** When selecting the USB function, we need to rework the hardware like this.&lt;br /&gt;
*** Add R104 and R106&lt;br /&gt;
*** Remove R169 and R170&lt;br /&gt;
* I2S&lt;br /&gt;
* PDM&lt;br /&gt;
* S/PDIF&lt;br /&gt;
&lt;br /&gt;
=== IO Voltage ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;vertical-align:middle;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! GPIO&lt;br /&gt;
! Voltage Level&lt;br /&gt;
! Tolerance&lt;br /&gt;
|-&lt;br /&gt;
| All GPIO&lt;br /&gt;
| 3.3V&lt;br /&gt;
| 3.63V&lt;br /&gt;
|-&lt;br /&gt;
| SARADC_IN5&lt;br /&gt;
| 1.8V&lt;br /&gt;
| 1.98V&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== GPIO number ===&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3588 GPIO has 5 banks, GPIO0 to GPIO4, each bank has 32 pins, naming as below:&lt;br /&gt;
&lt;br /&gt;
 GPIO0_A0 ~ A7 &lt;br /&gt;
 GPIO0_B0 ~ B7&lt;br /&gt;
 GPIO0_C0 ~ C7&lt;br /&gt;
 GPIO0_D0 ~ D7&lt;br /&gt;
    &lt;br /&gt;
 GPIO1_A0 ~ A7&lt;br /&gt;
 ....&lt;br /&gt;
 GPIO1_D0 ~ D7&lt;br /&gt;
&lt;br /&gt;
 GPIO2_A0 ~ A7&lt;br /&gt;
 ....&lt;br /&gt;
 GPIO2_D0 ~ D7&lt;br /&gt;
&lt;br /&gt;
 GPIO3_A0 ~ A7&lt;br /&gt;
 ....&lt;br /&gt;
 GPIO3_D0 ~ D7&lt;br /&gt;
&lt;br /&gt;
 GPIO4_A0 ~ A7&lt;br /&gt;
 ....&lt;br /&gt;
 GPIO4_D0 ~ D7&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For Rockchip 5.10 kernel, the GPIO number can be calculated as below, take GPIO4_D5 as an example:&lt;br /&gt;
&lt;br /&gt;
 GPIO4_D5 = 32*4 + 8*3 + 5 = 157&lt;br /&gt;
 (A=0, B=1, C=2, D=3)&lt;br /&gt;
&lt;br /&gt;
[[File:Gpio_number.png]]&lt;br /&gt;
&lt;br /&gt;
To set GPIO4_D5 output&lt;br /&gt;
&lt;br /&gt;
 # cd /sys/class/gpio&lt;br /&gt;
 # echo 157 &amp;gt; export&lt;br /&gt;
 # cd gpio157&lt;br /&gt;
 # echo out &amp;gt; direction&lt;br /&gt;
 # echo 1 &amp;gt; value     # output high&lt;br /&gt;
 # echo 0 &amp;gt; value     # output low&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock3/hardware/3c/gpio</id>
		<title>Rock3/hardware/3c/gpio</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock3/hardware/3c/gpio"/>
				<updated>2023-04-19T10:29:48Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-midnight-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3&amp;gt;Hardware V1.1/V1.2&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3&amp;gt; [https://github.com/nascs/wiringX/blob/rock3/docs/source/platforms/radxa/rock3c.rst wiringX GPIO mapping] &amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center; vertical-align:middle;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
! GPIO number&lt;br /&gt;
! Function5&lt;br /&gt;
! Function4&lt;br /&gt;
! Function3&lt;br /&gt;
! Function2&lt;br /&gt;
! Function1&lt;br /&gt;
! Pin#&lt;br /&gt;
! &lt;br /&gt;
! Pin#&lt;br /&gt;
! Function1&lt;br /&gt;
! Function2&lt;br /&gt;
! Function3&lt;br /&gt;
! style=&amp;quot;text-align:left;&amp;quot; | Function4&lt;br /&gt;
! Function5&lt;br /&gt;
! GPIO number&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#F00; color:#ffffff;&amp;quot; | +3.3V&lt;br /&gt;
| style=&amp;quot;background-color:#FF0;&amp;quot; | 1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#F00; color:#FFF;&amp;quot; | 2&lt;br /&gt;
| style=&amp;quot;background-color:#F00; color:#FFF;&amp;quot; | +5.0V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| &lt;br /&gt;
| CAN1_RX_M0&lt;br /&gt;
| I2C3_SDA_M0&lt;br /&gt;
| UART3_RX_M0&lt;br /&gt;
| GPIO1_A0&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 3&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#F00; color:#FFF;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;background-color:#F00; color:#ffffff;&amp;quot; | +5.0V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| &lt;br /&gt;
| CAN1_TX_M0&lt;br /&gt;
| I2C3_SCL_M0&lt;br /&gt;
| UART3_TX_M0&lt;br /&gt;
| GPIO1_A1&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 5&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 116&lt;br /&gt;
| &lt;br /&gt;
| PWM14_M0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO3_C4&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 7&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 8&lt;br /&gt;
| GPIO0_D1&lt;br /&gt;
| style=&amp;quot;background-color:#FFA500;&amp;quot; | UART2_TX_M0&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| 25&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | GND&lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | 9&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 10&lt;br /&gt;
| GPIO0_D0&lt;br /&gt;
| style=&amp;quot;background-color:#FFA500;&amp;quot; | UART2_RX_M0&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| 24&lt;br /&gt;
|-&lt;br /&gt;
| 97&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO3_A1&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 11&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 12&lt;br /&gt;
| GPIO3_A3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| I2S3_SCLK_M0&lt;br /&gt;
| 99&lt;br /&gt;
|-&lt;br /&gt;
| 98&lt;br /&gt;
| &lt;br /&gt;
| I2S3_MCLK_M0&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO3_A2&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 13&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | 14&lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 104&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO3_B0&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 15&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 16&lt;br /&gt;
| GPIO3_B1&lt;br /&gt;
| UART4_RX_M1&lt;br /&gt;
| PWM8_M0&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| 105&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#F00; color:#ffffff;&amp;quot; | +3.3V&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 17&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 18&lt;br /&gt;
| GPIO3_B2&lt;br /&gt;
| UART4_TX_M1&lt;br /&gt;
| PWM9_M0&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| 106&lt;br /&gt;
|-&lt;br /&gt;
| 147&lt;br /&gt;
| &lt;br /&gt;
| PWM15_IR_M1&lt;br /&gt;
| I2S3_SCLK_M1&lt;br /&gt;
| SPI3_MOSI_M1&lt;br /&gt;
| GPIO4_C3&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 19&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | 20&lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 149&lt;br /&gt;
| UART9_TX_M1&lt;br /&gt;
| PWM12_M1&lt;br /&gt;
| I2S3_SDO_M1&lt;br /&gt;
| SPI3_MISO_M1&lt;br /&gt;
| GPIO4_C5&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 21&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 22&lt;br /&gt;
| GPIO3_C1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| I2S1_SDO2_M2&lt;br /&gt;
| 113&lt;br /&gt;
|-&lt;br /&gt;
| 146&lt;br /&gt;
| &lt;br /&gt;
| PWM14_M1&lt;br /&gt;
| I2S3_MCLK_M1&lt;br /&gt;
| SPI3_CLK_M1&lt;br /&gt;
| GPIO4_C2&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 23&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 24&lt;br /&gt;
| GPIO4_C6&lt;br /&gt;
| SPI3_CS0_M1&lt;br /&gt;
| PWM13_M1&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | UART9_RX_M1&lt;br /&gt;
| I2S3_SDI_M1&lt;br /&gt;
| 150&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | GND&lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | 25&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 26&lt;br /&gt;
| NC&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 138&lt;br /&gt;
| &lt;br /&gt;
| I2C4_SDA_M0&lt;br /&gt;
| I2S2_SDI_M1&lt;br /&gt;
| &lt;br /&gt;
| GPIO4_B2&lt;br /&gt;
| style=&amp;quot;background-color:#0070C0; color:#FFF;&amp;quot; | 27&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#0070C0; color:#FFF;&amp;quot; | 28&lt;br /&gt;
| GPIO4_B3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | I2C4_SCL_M0&lt;br /&gt;
| I2S2_SDO_M1&lt;br /&gt;
| 139&lt;br /&gt;
|-&lt;br /&gt;
| 107&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO3_B3&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 29&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | 30&lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#ffffff;&amp;quot; | GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 108&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO3_B4&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 31&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 32&lt;br /&gt;
| GPIO3_C2&lt;br /&gt;
| UART5_TX_M1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| I2S1_SDO3_M2&lt;br /&gt;
| 114&lt;br /&gt;
|-&lt;br /&gt;
| 115&lt;br /&gt;
| UART5_RX_M1&lt;br /&gt;
| &lt;br /&gt;
| I2S1_SCLK_RX_M2&lt;br /&gt;
| &lt;br /&gt;
| GPIO3_C3&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 33&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | 34&lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 100&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| I2S3_LRCK_M0&lt;br /&gt;
| &lt;br /&gt;
| GPIO3_A4&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 35&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 36&lt;br /&gt;
| GPIO3_A7&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| &lt;br /&gt;
| 103&lt;br /&gt;
|-&lt;br /&gt;
| 36&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| I2S1_SCLK_RX_M0&lt;br /&gt;
| &lt;br /&gt;
| GPIO1_A4&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 37&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 38&lt;br /&gt;
| GPIO3_A6&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| I2S3_SDI_M0&lt;br /&gt;
| 102&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | GND&lt;br /&gt;
| style=&amp;quot;background-color:#333333; color:#FFF;&amp;quot; | 39&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 40&lt;br /&gt;
| GPIO3_A5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot; | &lt;br /&gt;
| I2S3_SDO_M0&lt;br /&gt;
| 101&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== GPIO number ===&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3566 GPIO has 5 banks, GPIO0 to GPIO4, each bank has 32pins, naming as below:&lt;br /&gt;
&lt;br /&gt;
 GPIO0_A0 ~ A7 &lt;br /&gt;
 GPIO0_B0 ~ B7&lt;br /&gt;
 GPIO0_C0 ~ C7&lt;br /&gt;
 GPIO0_D0 ~ D7&lt;br /&gt;
    &lt;br /&gt;
 GPIO1_A0 ~ A7&lt;br /&gt;
 ....&lt;br /&gt;
 GPIO1_D0 ~ D7&lt;br /&gt;
&lt;br /&gt;
For Rockchip 4.19 kernel, the GPIO number can be calculated as below, take GPIO4_A7 (PIN26 on 40-PIN HEADER) as an example:&lt;br /&gt;
&lt;br /&gt;
 GPIO4_A7 = 4*32 + 0*8 + 7 = 135&lt;br /&gt;
 (A=0, B=1, C=2, D=3)&lt;br /&gt;
&lt;br /&gt;
To set GPIO4_A7 output&lt;br /&gt;
 &lt;br /&gt;
cd /sys/class/gpio&lt;br /&gt;
 echo 135 &amp;gt; export&lt;br /&gt;
 cd gpio135&lt;br /&gt;
 echo out &amp;gt; direction&lt;br /&gt;
 echo 1 &amp;gt; value     # output high&lt;br /&gt;
 echo 0 &amp;gt; value     # output low&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock3/hardware/3b/gpio</id>
		<title>Rock3/hardware/3b/gpio</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock3/hardware/3b/gpio"/>
				<updated>2023-04-19T10:28:10Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rock3_header}}&lt;br /&gt;
{{Languages|rock3/hardware/gpio}}&lt;br /&gt;
&lt;br /&gt;
    [[rock3 | ROCK 3]] &amp;gt; [[rock3/hardware | Hardware]] &amp;gt; [[rock3/hardware/3b | ROCK 3 Model B Main Board]] &amp;gt; [[rock3/hardware/3b/gpio | ROCK 3B GPIO]]&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;span id=&amp;quot;gpio&amp;quot;&amp;gt;General purpose input-output (GPIO) connector&amp;lt;/span&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
ROCK 3B has one 40-pin expansion header. Each pin is distinguished by color.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-md-12 &amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;panel panel-midnight-white&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-heading&amp;quot;&amp;gt;&amp;lt;h3&amp;gt;Hardware V1.1&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;vertical-align:middle; background-color:#F9F9F9;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-weight:bold; text-align:center; background-color:#F2F2F2;&amp;quot;&lt;br /&gt;
! GPIO number&lt;br /&gt;
! Function4&lt;br /&gt;
! Function3&lt;br /&gt;
! Function2&lt;br /&gt;
! Function1&lt;br /&gt;
! Pin#&lt;br /&gt;
! &lt;br /&gt;
! Pin#&lt;br /&gt;
! Function1&lt;br /&gt;
! Function2&lt;br /&gt;
! Function3&lt;br /&gt;
! Function4&lt;br /&gt;
! GPIO number&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| +3.3V&lt;br /&gt;
| style=&amp;quot;background-color:#FF0;&amp;quot; | 1&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#F00;&amp;quot; | 2&lt;br /&gt;
| +5.0V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| CAN1_RX_M0&lt;br /&gt;
| UART3_RX_M0&lt;br /&gt;
| I2C3_SDA_M0&lt;br /&gt;
| GPIO1_A0&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 3&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#F00;&amp;quot; | 4&lt;br /&gt;
| +5.0V&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| CAN1_TX_M0&lt;br /&gt;
| UART3_TX_M0&lt;br /&gt;
| I2C3_SCL_M0&lt;br /&gt;
| GPIO1_A1&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 5&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 6&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| &lt;br /&gt;
| PWM1_M1&lt;br /&gt;
| I2C2_SCL_M0&lt;br /&gt;
| GPIO0_B5&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 7&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 8&lt;br /&gt;
| GPIO0_D1&lt;br /&gt;
| style=&amp;quot;background-color:#FFA500;&amp;quot; | UART2_TXD&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 25&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GND&lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 9&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 10&lt;br /&gt;
| GPIO0_D0&lt;br /&gt;
| style=&amp;quot;background-color:#FFA500;&amp;quot; | UART2_RXD&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 24&lt;br /&gt;
|-&lt;br /&gt;
| 116&lt;br /&gt;
| &lt;br /&gt;
| UART7_TX_M1&lt;br /&gt;
| PWM14_M0&lt;br /&gt;
| GPIO3_C4&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 11&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 12&lt;br /&gt;
| GPIO3_A3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 99&lt;br /&gt;
|-&lt;br /&gt;
| 117&lt;br /&gt;
| &lt;br /&gt;
| UART7_RX_M1&lt;br /&gt;
| PWM15_IR_M0&lt;br /&gt;
| GPIO3_C5&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 13&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 14&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| &lt;br /&gt;
| UART0_RX&lt;br /&gt;
| PWM1_M0&lt;br /&gt;
| GPIO0_C0&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 15&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 16&lt;br /&gt;
| GPIO0_B6&lt;br /&gt;
| I2C2_SDA_M0&lt;br /&gt;
| PWM2_M1&lt;br /&gt;
| &lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| +3.3V&lt;br /&gt;
| style=&amp;quot;background-color:#FF0;&amp;quot; | 17&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 18&lt;br /&gt;
| GPIO3_B2&lt;br /&gt;
| UART4_TX_M1&lt;br /&gt;
| PWM9_M0&lt;br /&gt;
| &lt;br /&gt;
| 106&lt;br /&gt;
|-&lt;br /&gt;
| 147&lt;br /&gt;
| CAN1_TX_M1&lt;br /&gt;
| SPI3_MOSI_M1&lt;br /&gt;
| PWM15_IR_M1&lt;br /&gt;
| GPIO4_C3&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 19&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 20&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 149&lt;br /&gt;
| UART9_TX_M1&lt;br /&gt;
| SPI3_MISO_M1&lt;br /&gt;
| PWM12_M1&lt;br /&gt;
| GPIO4_C5&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 21&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 22&lt;br /&gt;
| GPIO0_C1&lt;br /&gt;
| PWM2_M0&lt;br /&gt;
| UART0_TX&lt;br /&gt;
| &lt;br /&gt;
| 17&lt;br /&gt;
|-&lt;br /&gt;
| 146&lt;br /&gt;
| CAN1_RX_M1&lt;br /&gt;
| SPI3_CLK_M1&lt;br /&gt;
| PWM14_M1&lt;br /&gt;
| GPIO4_C2&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 23&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 24&lt;br /&gt;
| GPIO4_C6&lt;br /&gt;
| PWM13_M1&lt;br /&gt;
| SPI3_CS0_M1&lt;br /&gt;
| UART9_RX_M1&lt;br /&gt;
| 150&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GND&lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 25&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 26&lt;br /&gt;
| NC&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| USB_DP&lt;br /&gt;
| CAN0_RX_M0&lt;br /&gt;
| I2C1_SDA&lt;br /&gt;
| GPIO0_B4&lt;br /&gt;
| style=&amp;quot;background-color:#00F; color:#FFF;&amp;quot; | 27&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#00F; color:#FFF;&amp;quot; | 28&lt;br /&gt;
| GPIO0_B3&lt;br /&gt;
| I2C1_SCL&lt;br /&gt;
| CAN0_TX_M0&lt;br /&gt;
| USB_DM&lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| 95&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| UART8_TX_M1&lt;br /&gt;
| GPIO2_D7&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 29&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 30&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 96&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| UART8_RX_M1&lt;br /&gt;
| GPIO3_A0&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 31&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 32&lt;br /&gt;
| GPIO3_C2&lt;br /&gt;
| UART5_TX_M1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 114&lt;br /&gt;
|-&lt;br /&gt;
| 115&lt;br /&gt;
| &lt;br /&gt;
| UART5_RX_M1&lt;br /&gt;
| SPI1_CLK_M1&lt;br /&gt;
| GPIO3_C3&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 33&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 34&lt;br /&gt;
| GND&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 100&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GPIO3_A4&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 35&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 36&lt;br /&gt;
| GPIO3_A2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 98&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| SARADC_VIN5&lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 37&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 38&lt;br /&gt;
| GPIO3_A6&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 102&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| GND&lt;br /&gt;
| style=&amp;quot;background-color:#000; color:#FFF;&amp;quot; | 39&lt;br /&gt;
| &lt;br /&gt;
| style=&amp;quot;background-color:#008000; color:#FFF;&amp;quot; | 40&lt;br /&gt;
| GPIO3_A5&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 101&lt;br /&gt;
|}&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;clearfix&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== More details about 40-pin Header In V1.3/V1.31 ====&lt;br /&gt;
&lt;br /&gt;
* Pins marked with color orange are designed for debug console.&lt;br /&gt;
* PWM; x7, PWM1 / PWM2 / PWM9 / PWM12 / PWM13 / PWM14 / PWM15&lt;br /&gt;
* SPI: x1, SPI3&lt;br /&gt;
* I2C: x3, I2C1 / I2C2 / I2C3&lt;br /&gt;
* UART: x6, UART0 / UART3 / UART5 / UART7 / UART8 / UART9&lt;br /&gt;
* ADC: x1, SARADC_VIN5&lt;br /&gt;
* CAN: x2, CAN0 / CAN1&lt;br /&gt;
&lt;br /&gt;
=== IO Voltage ===&lt;br /&gt;
&lt;br /&gt;
RK3568 have three IO voltages, 1.8V/3.3V. For ROCK 3, the high level voltage of GPIO pin on 40-PIN HEADER is 3.3V.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
| GPIO       | Voltage Level | Tolerance |&lt;br /&gt;
| ---------- | ------------- | --------- |&lt;br /&gt;
| GPIO3_C0   | 3.3V          | 3.63V     |&lt;br /&gt;
| ADC_IN5    | 1.8V          | 1.98V     |&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== GPIO number ===&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3568 GPIO has 5 banks, GPIO0 to GPIO4, each bank has 32pins, naming as below:&lt;br /&gt;
&lt;br /&gt;
 GPIO0_A0 ~ A7 &lt;br /&gt;
 GPIO0_B0 ~ B7&lt;br /&gt;
 GPIO0_C0 ~ C7&lt;br /&gt;
 GPIO0_D0 ~ D7&lt;br /&gt;
    &lt;br /&gt;
 GPIO1_A0 ~ A7&lt;br /&gt;
 ....&lt;br /&gt;
 GPIO1_D0 ~ D7&lt;br /&gt;
&lt;br /&gt;
For Rockchip 4.19 kernel, the GPIO number can be calculated as below, take GPIO4_D1 (PIN26 on 4-0PIN HEADER) as an example:&lt;br /&gt;
&lt;br /&gt;
 GPIO4_D1 = 4*32 + 3*8 + 1 = 153&lt;br /&gt;
 (A=0, B=1, C=2, D=3)&lt;br /&gt;
&lt;br /&gt;
To set GPIO4_D1 output&lt;br /&gt;
&lt;br /&gt;
 cd /sys/class/gpio&lt;br /&gt;
 echo 153 &amp;gt; export&lt;br /&gt;
 cd gpio153&lt;br /&gt;
 echo out &amp;gt; direction&lt;br /&gt;
 echo 1 &amp;gt; value     # output high&lt;br /&gt;
 echo 0 &amp;gt; value     # output low&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock4/hardware</id>
		<title>Rock4/hardware</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock4/hardware"/>
				<updated>2023-04-11T03:06:47Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rock4_header}}&lt;br /&gt;
{{Languages|rock4/hardware}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
    [[rock4 | ROCK 4]] &amp;gt; [[rock4/hardware | Hardware]]&lt;br /&gt;
&lt;br /&gt;
Here are the technical information about the ROCK 4 series hardware and add-ons.&lt;br /&gt;
&lt;br /&gt;
* [[Rock4/hardware/rock4 | ROCK 4]] - Introduction of the ROCK 4 hardware&lt;br /&gt;
** ROCK 4 model A | B&lt;br /&gt;
*** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4plus_product_brief.pdf Product brief pdf] - Overview of ROCK 4B Plus features&lt;br /&gt;
*** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_v13_sch_20181112.pdf v1.3 schematic pdf] - Download Schematic of ROCK 4 model A | B&lt;br /&gt;
*** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/ROCK-Pi-4B-3D.stp.gz 3D drawing STP] - Download 3D model of ROCK 4 model A | B&lt;br /&gt;
*** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_2d_v14_201811122_bottom.dxf.zip 2D Bottom dxf], [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_2d_v14_201811122_top.dxf.zip 2D Top dxf] - Download 2D CAD of ROCK 4 model A | B&lt;br /&gt;
*** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_v14_components_reference_201811122.pdf v1.4 CAM pdf] - Download components Position Reference of ROCK 4 model A | B&lt;br /&gt;
** ROCK 4 model C&lt;br /&gt;
*** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4c_v12_sch_20200620.pdf v1.2 schematic pdf] - Download Schematic of ROCK 4 model C&lt;br /&gt;
*** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4c_v12_components_reference_20200602.pdf v1.2 CAM pdf] - Download components Position Reference of ROCK 4 model C&lt;br /&gt;
*** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4c_2d_v12.zip 2D Top&amp;amp;Bottom dxf] - Download 2D CAD of ROCK 4 model C&lt;br /&gt;
&lt;br /&gt;
** ROCK 4 SE&lt;br /&gt;
*** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/ROCK-4-SE-V1.53-SCH.pdf v1.53 schematic pdf] - Download Schematic of ROCK 4 SE&lt;br /&gt;
*** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/ROCK-4-SE-V1.53-SMD.pdf v1.53 CAM pdf] - Download components Position Reference of ROCK 4 SE&lt;br /&gt;
** ROCK 4C+&lt;br /&gt;
*** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4c_plus_product_brief.pdf Product brief pdf] - Overview of ROCK 4C Plus features&lt;br /&gt;
*** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4c_plus_v12_sch_220304.pdf v1.2 schematic pdf] - Download Schematic of ROCK 4C+ V1.2&lt;br /&gt;
*** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4c_plus_v12_smd_220304.pdf v1.2 CAM pdf] - Download components Position Reference of ROCK 4C+ V1.2&lt;br /&gt;
*** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/ROCK-4C+-V1.411-SCH.pdf v1.411 schematic pdf] - Download Schematic of ROCK 4C+ V1.4&lt;br /&gt;
*** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/ROCK-4C+-V1.411-SMD.pdf v1.411 CAM pdf] - Download components Position Reference of ROCK 4C+ V1.4&lt;br /&gt;
*** [https://dl.radxa.com/rockpi4/docs/hw/rockpi4/ROCK4Cp_3D_V1.4.step.zip v1.4 3D stp] - Download ROCK 4C+ V1.4 3D STP file&lt;br /&gt;
&lt;br /&gt;
** [[Rockpi4/hardware/revision | Hardware Revision]] - Difference between each hardware revisions.&lt;br /&gt;
** [[Rockpi4/hardware/models | Models and SKU]] - Different variants for the same hardware revision&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
* [[rockpi4/Core | ROCK 4 Core SoM]] - Introduction of the ROCK 4 Core SoM&lt;br /&gt;
&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
* Datasheet&lt;br /&gt;
** [http://rockchip.fr/RK3399%20datasheet%20V1.8.pdf RK3399 datasheet] - The SoC of ROCK 4A/B/C&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/Rockchip%20RK3399-T%20Datasheet%20V1.0-20210818.pdf RK3399-T datasheet] - The SoC of ROCK 4 SE(2022) and ROCK 4C Plus(2022)&lt;br /&gt;
** RK3399 TRM(Technical Reference Manual) [http://rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part1.pdf Part] [http://rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part2.pdf Part2] - The detail about RK3399&lt;br /&gt;
** [http://rockchip.fr/RK808%20datasheet%20V1.4.pdf RK808] - The PMIC&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/AP6256%20datasheet_V1.3_12202017.pdf AP6256] - The wifi/bt combo&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/LDR6015T%20Spec%20EN%20V1.0.pdf LDR6015] - The USB PD protocol IC&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/ES8316%20PB.pdf ES8316] - The audio codec&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/FORESEE_LPDDR4_200ball_NCLD4CXMAXXXM32_10x14.5_VFBGA_Spec_B1_20170802.pdf Foresee LPDDR4] - The DRAM chip &lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/datasheets/RTL8211E(G)-VB(VL)-CG-DataSheet-1.7.pdf RTL8211E] - The ethernet phy&lt;br /&gt;
* [[rockpi4/hardware/cpu | CPU]]&lt;br /&gt;
* [[rockpi4/hardware/gpio | GPIO]]&lt;br /&gt;
* [[rockpi4/hardware/led | LED]]&lt;br /&gt;
* [[rockpi4/hardware/emmc | eMMC module]]&lt;br /&gt;
*[[Rockpi4/hardware/usb3_eMMC_reader | USB3 eMMC Reader]]&lt;br /&gt;
* [[rockpi4/hardware/rtc | RTC battery]]&lt;br /&gt;
&lt;br /&gt;
* Official heatsink&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/heatsink-1225-al-1.stp 3D drawing] - 3D model of official heatsink&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/heatsink/rockpi4_heatsink_datasheet.pdf Heatsink datasheet]&lt;br /&gt;
* [[Rockpi4/hardware/display | Display]]&lt;br /&gt;
* [[Rockpi4/hardware/camera/ | Camera module]]&lt;br /&gt;
&lt;br /&gt;
* [[Rockpi4/hardware/HATs | HATs]]&lt;br /&gt;
** [[Rockpi4/hardware/PoE | PoE HAT]]&lt;br /&gt;
** [[Dual_Quad_SATA_HAT | Dual/Quad SATA HAT]]&lt;br /&gt;
** [[Penta_SATA_HAT | Penta SATA HAT]]&lt;br /&gt;
&lt;br /&gt;
* [[Rockpi4/hardware/M2_extend | M.2 extend board]]&lt;br /&gt;
** 2D file for M.2 extend board - [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/PCIE_to_FPC_V1.4.dxf Connector to FPC board], [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/FPC_to_M2_V1.4.dxf SSD mount board]&lt;br /&gt;
** Schematic of M.2 extend board - [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/rockpi4-m2-extend-sch_pcie_to_fpc_V1.4.pdf Connector to FPC board], [https://dl.radxa.com/rockpi4/docs/hw/m2_extend/rockpi4-m2-extend-sch_fpc_to_m2_V1.4.pdf SSD mount board]&lt;br /&gt;
* [[Rockpi4/hardware/spi_flash |  SPI Flash]]&lt;br /&gt;
&lt;br /&gt;
* Device Tree Overlays&lt;br /&gt;
    * [[Rockpi4/hardware/devtree_overlays | linux4.4]]&lt;br /&gt;
    * [[rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10 | linux 5.10 ]]&lt;br /&gt;
&lt;br /&gt;
* Compliance&lt;br /&gt;
** [https://dl.radxa.com/rockpi4/docs/hw/compliance/BCTC2109795863C%20ROCK%20Pi%204%20MODEL%20B%20RED.pdf CE RED] - EU&lt;br /&gt;
** [https://fcc.report/FCC-ID/2A3PA-ROCKPI4/ FCC ID: 2A3PA-ROCKPI4] - US&lt;br /&gt;
** [https://fccid.io/2A3PA-ROCK4SE FCC ID: 2A3PA-ROCK4SE] - US&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock4/dev</id>
		<title>Rock4/dev</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock4/dev"/>
				<updated>2023-04-11T03:03:40Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rock4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|rock4/dev}}&lt;br /&gt;
&lt;br /&gt;
    [[rock4 | ROCK 4]] &amp;gt; [[rock4/dev | Development Guide]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This page describes development tips for ROCK Pi.&lt;br /&gt;
&lt;br /&gt;
* [[rockpi4/dev/usb-install | USB Installation]] describe how to use PC tools to install image on ROCK Pi 4.&lt;br /&gt;
* [[rockpi4/dev/spi-install | Install images to SPI flash]] describe how to write bootloader to SPI flash on ROCK Pi 4.&lt;br /&gt;
* [[rockpi4/dev/Debian | Build Debian]]&lt;br /&gt;
* [[rockpi4/dev/rootfs | replace your rootfs]]&lt;br /&gt;
* [[Yocto-layer-for-radxa-boards | Build Yocto ]]&lt;br /&gt;
* [[rockpi4/dev/kernel-4.4 | Build vendor kernel(Rockchip 4.4)]]&lt;br /&gt;
* [[rockpi4/dev/kernel-mainline | Build mainline kernel(kernel 5.x)]]&lt;br /&gt;
* [[rockpi4/dev/u-boot | U-boot ]]&lt;br /&gt;
* [[rockpi4/dev/u-boot/pxe | U-boot/PXE Boot ]]&lt;br /&gt;
* [[rockpi4/dev/usbnet | USB Device Network]]&lt;br /&gt;
* [[rockpi4/dev/rockpi-android-tv | Build Android (nougat) TV]]&lt;br /&gt;
* [[rockpi4/dev/serial-console | Serial Console]]&lt;br /&gt;
* [[rockpi4/dev/install-opencv | Install OpenCV]]&lt;br /&gt;
* [[rockpi4/dev/libmraa | Install Libmraa ]]&lt;br /&gt;
* [[rockpi4/dev/install-opencl | Install OpenCL ]]&lt;br /&gt;
* [[rockpi4/dev/apmode | Setting AP Mode ]]&lt;br /&gt;
* [[rockpi4/dev/monitor-mode | Setting WiFi Monitor Mode ]]&lt;br /&gt;
* [[rockpi4/dev/vs | Setting Up Visual Studio For ROCK Pi 4 ]]&lt;br /&gt;
* [[rockpi4/dev/compile-a-kernel-module-on-rockpi4 | Compile a kernel module on ROCK Pi 4]]&lt;br /&gt;
* [[rockpi4/dev/build-Armbian | Build Armbian ]]&lt;br /&gt;
* [[rockpi4/dev/adb | Using ADB]]&lt;br /&gt;
* [[rockpi4/dev/gpu-run-test-with-kernel-5.10 | GPU Run Test with Kernel 5.10]]&lt;br /&gt;
* [[rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10  | Common interface with linux-5.10]]&lt;br /&gt;
* [[rockpi4/dev/headphone-jack-work-on-rock-pi-4cplus | Headphone work on ROCK Pi 4C Plus]]&lt;br /&gt;
* [[rockpi4/dev/usb-host-and-otg-switch-on-rock-pi-4 | USB host and otg switch on ROCK Pi 4]]&lt;br /&gt;
* [[rockpi4/dev/how-to-use-debian | How to use Debian]]&lt;br /&gt;
== Android ==&lt;br /&gt;
* [[Rockpi4/rockpi-android7 | Android7 Tablet(Support Raspberry Pi official 7&amp;quot; Display)]]&lt;br /&gt;
* [[Rockpi4/dev/rockpi-android-tv | Android7 TV]]&lt;br /&gt;
* [[Rockpi4/rockpi-android9 | Android9 Tablet]]&lt;br /&gt;
* [[Rockpi4/rockpi-android9 | Android9 TV]]&lt;br /&gt;
* [[Rockpi4/install/android-NVME | Android9 Run on M.2 NVME SSD]]&lt;br /&gt;
* [[Rockpi4/android-mraa | Android9 Mraa API]]&lt;br /&gt;
* [[Rockpi4/rockpi-android10 | Android10 Tablet]]&lt;br /&gt;
* [[Rockpi4/rockpi-android11 | Android11]]&lt;br /&gt;
* [https://forum.radxa.com/t/solve-google-play-device-is-not-play-protect-certified-issue/229 Solve Google Play Device is not Play Protect certified issue]&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10</id>
		<title>Rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10"/>
				<updated>2023-04-11T03:03:20Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
{{Languages|rockpi4/dev/devtree_overlays | Common interface with linux-5.10}}&lt;br /&gt;
&lt;br /&gt;
       [[rockpi4 | ROCK Pi 4]] &amp;gt; [[rockpi4/dev | Development]] &amp;gt; [[rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10  | Common interface with linux-5.10 ]]&lt;br /&gt;
&lt;br /&gt;
=== Device Tree Overlays===&lt;br /&gt;
&lt;br /&gt;
==== Introduction ====&lt;br /&gt;
&lt;br /&gt;
This directory contains Device Tree overlays. Device Tree makes it possible&lt;br /&gt;
to support many hardware configurations with a single kernel and without the&lt;br /&gt;
need to explicitly load or blacklisr kernel modules.&lt;br /&gt;
&lt;br /&gt;
On Radxa borad which uses linux5.10 kernel, you can use &amp;quot;rsetup&amp;quot; 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]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to enable a overlay  dtbo ====&lt;br /&gt;
===== usage =====&lt;br /&gt;
run &amp;quot;rsetup&amp;quot; command as below:&lt;br /&gt;
 radxa@rock-4c-plus:~$ rsetup&lt;br /&gt;
&lt;br /&gt;
 Please select an option below:                                               &lt;br /&gt;
                                                                             &lt;br /&gt;
                            System Maintaince                                 &lt;br /&gt;
                            Onboard Hardware                                  &lt;br /&gt;
                            Overlay Management                                &lt;br /&gt;
                            Connectivity                                     &lt;br /&gt;
                            User Settings                                     &lt;br /&gt;
                            Localization                                      &lt;br /&gt;
                            Common Tasks                                    &lt;br /&gt;
                             About                                            &lt;br /&gt;
                                                                         &lt;br /&gt;
                                                                             &lt;br /&gt;
                                                                             &lt;br /&gt;
               &amp;lt;Ok&amp;gt;                         &amp;lt;Cancel&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Overlay Management&amp;quot;   &lt;br /&gt;
&lt;br /&gt;
 Configure Device Tree Overlay  &lt;br /&gt;
                        Install overlay from source&lt;br /&gt;
                        Manage installed overlay &lt;br /&gt;
                        Rebuild boot configuration&lt;br /&gt;
                        Reset overlay libraries with kernel's default &lt;br /&gt;
                                                                         &lt;br /&gt;
                                                                             &lt;br /&gt;
              &amp;lt;Ok&amp;gt;                         &amp;lt;Cancel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Manage installed overlay&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    [ ] audioinjector-isolated-soundcard.dtbo                                &lt;br /&gt;
    [ ] cm3-sodimm-io-sata.dtbo                                              &lt;br /&gt;
    [ ] radxa-5inch-touchscreen-on-cm3-sodimm-io.dtbo                    &lt;br /&gt;
    [ ] radxa-5inch-touchscreen-on-rock-3a.dtbo                          &lt;br /&gt;
    [ ] radxa-5inch-touchscreen-on-rock-3b.dtbo                         &lt;br /&gt;
    [ ] radxa-cm3-io-dual-cameras-gc2053.dtbo                           &lt;br /&gt;
    [ ] radxa-cm3-io-hd101boe9365-display.dtbo                           &lt;br /&gt;
    [ ] radxa-cm3-io-headphone.dtbo                                     &lt;br /&gt;
    [ ] radxa-cm3-io-i2c0-hym8563.dtbo                                   &lt;br /&gt;
    [ ] radxa-cm3-io-pcie2x1.dtbo                                         &lt;br /&gt;
    [ ] radxa-cm3-io-radxa-10p1inch-display.dtbo                         &lt;br /&gt;
    [ ] radxa-cm3-io-sata1.dtbo                                          &lt;br /&gt;
    [ ] radxa-cm3-io-sata2.dtbo                                          &lt;br /&gt;
    [ ] radxa-cm3-io-sharp-lq133t1jw01-without-hdmi.dtbo                  &lt;br /&gt;
    [ ] radxa-cm3-raspcm4io-pcie2x1.dtbo                                 &lt;br /&gt;
    [ ] radxa-cm3-sodimm-io-raspberrypi-7inch-touchscreen.dtbo  &lt;br /&gt;
    [ ] radxa-cm3i-gmac1.dtbo                                            &lt;br /&gt;
    [ ] rk3399-dwc3-0-host.dtbo                                             &lt;br /&gt;
    [ ] rk3399-dwc3-0-otg.dtbo                                          &lt;br /&gt;
    [ ] rk3399-dwc3-0-peripheral.dtbo&lt;br /&gt;
    [ ] rk3399-i2c2.dtbo&lt;br /&gt;
    [ ] rk3399-i2c6.dtbo&lt;br /&gt;
    [ ] rk3399-i2c7.dtbo                                     &lt;br /&gt;
    [ ] rk3399-opp-1800.dtbo                                             &lt;br /&gt;
    [ ] rk3399-opp-2000.dtbo                                          &lt;br /&gt;
    [ ] rk3399-opp-2200.dtbo                                              &lt;br /&gt;
    [ ] rk3399-opp-2400.dtbo &lt;br /&gt;
    [ ] rk3399-pwm0.dtbo&lt;br /&gt;
    [ ] rk3399-pwm1.dtbo&lt;br /&gt;
    [ ] rk3399-spi-5-enc28j60.dtbo                                     &lt;br /&gt;
    [ ] rk3399-spi-gpio-enc28j60.dtbo&lt;br /&gt;
    [ ] rk3399-spi1-m1-cs0-spidev.dtbo                                 &lt;br /&gt;
    [ ] rk3399-spi2-m1-cs0-spidev.dtbo        &lt;br /&gt;
    [ ] rk3399-uart0.dtbo         &lt;br /&gt;
    [ ] rk3399-uart2.dtbo&lt;br /&gt;
    [ ] rk3399-uart4.dtbo       &lt;br /&gt;
    [ ] rk3399-w1-gpio4-d6.dtbo                             &lt;br /&gt;
    [ ] rk3568-can1-m0.dtbo                                                   &lt;br /&gt;
    [ ] rk3568-can1-m1.dtbo                                              &lt;br /&gt;
    [ ] rk3568-disable-gmac1.dtbo                                         &lt;br /&gt;
    [ ] rk3568-disable-npu.dtbo                                           &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart0.dtbo                                   &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart2m0.dtbo                                  &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart3m0.dtbo                                &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart5m1.dtbo                                &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart7m1.dtbo                                 &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart8m1.dtbo                               &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart9m1.dtbo                                  &lt;br /&gt;
    [ ] rk3568-i2c2-m0.dtbo  &lt;br /&gt;
                                                                         &lt;br /&gt;
                                                                             &lt;br /&gt;
              &amp;lt;Ok&amp;gt;                         &amp;lt;Cancel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the overlays you want to load with the space bar, &lt;br /&gt;
&lt;br /&gt;
    [*] rk3399-uart0.dtbo  &lt;br /&gt;
&lt;br /&gt;
Overlay with a &amp;quot;*&amp;quot; indicates that it is enabled.&lt;br /&gt;
&lt;br /&gt;
reboot, to make overlays work&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====  uart2 =====&lt;br /&gt;
Select the &amp;quot;rk3399-uart2.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-uart2.dtbo&lt;br /&gt;
then reboot , the ttyS2 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  uart4 =====&lt;br /&gt;
Select the &amp;quot;rk3399-uart4.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-uart4.dtbo&lt;br /&gt;
then reboot , the ttyS4 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  i2c2 =====&lt;br /&gt;
Select the &amp;quot;rk3399-i2c2.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-i2c2.dtbo&lt;br /&gt;
then reboot , the i2c-2 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  i2c6 =====&lt;br /&gt;
Select the &amp;quot;rk3399-i2c6.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-i2c6.dtbo&lt;br /&gt;
then reboot , the i2c-6 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  i2c7 =====&lt;br /&gt;
Select the &amp;quot;rk3399-i2c7.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-i2c7.dtbo&lt;br /&gt;
then reboot , the i2c-7 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  spi1 =====&lt;br /&gt;
Select the &amp;quot;rk3399-spi1-m1-cs0-spidev.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-spi1-m1-cs0-spidev.dtbo&lt;br /&gt;
then reboot , the spi1.0 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  spi2 =====&lt;br /&gt;
Select the &amp;quot;rk3399-spi1-m1-cs0-spidev.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-spi2-m1-cs0-spidev.dtbo&lt;br /&gt;
then reboot , the spi2.0 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  pwm0 =====&lt;br /&gt;
Select the &amp;quot;rk3399-pwm0.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-pwm0.dtbo&lt;br /&gt;
then reboot , the pwmchip0 device is generated in the /sys/class/pwm/ directory&lt;br /&gt;
&lt;br /&gt;
=====  pwm1 =====&lt;br /&gt;
Select the &amp;quot;rk3399-pwm1.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-pwm1.dtbo&lt;br /&gt;
then reboot , the pwmchip1 device is generated in the /sys/class/pwm/ directory&lt;br /&gt;
&lt;br /&gt;
=====  one wire =====&lt;br /&gt;
Select the &amp;quot;rk3399-w1-gpio4-d6.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-w1-gpio4-d6.dtbo&lt;br /&gt;
then reboot , the 28-80000028f6a0 device is generated in the /sys/bus/w1/devices/ directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to use a overylay written by yourselt ====&lt;br /&gt;
===== DTBO code specification =====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
In our dtbo source file, you need add a new node named &amp;quot;matedata&amp;quot;, this node needs the following fields:&lt;br /&gt;
 * title: it's property is text, used to display in the rsetup menu, there is  no necessary to also indicate the supported development board.&lt;br /&gt;
 * 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.&lt;br /&gt;
 * category: text, Used to classify in the rsetup menu. At present, only 'display', 'camera' and 'misc' are defined&lt;br /&gt;
 * description: text, The functions and precautions of dtbo are briefly introduced, used to display dtbo when installing rsetup.&lt;br /&gt;
&lt;br /&gt;
===== get the sdk source =====&lt;br /&gt;
 [[https://github.com/radxa/rockchip-bsp SDK rockchip-bsp]] &lt;br /&gt;
install the tools&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install git device-tree-compiler build-essential&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====  get the source code and update it ===== &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b master https://github.com/radxa/rockchip-bsp.git&lt;br /&gt;
cd rockchip-bsp&lt;br /&gt;
git submodule init&lt;br /&gt;
git submodule update&lt;br /&gt;
cd rockchip-bsp&lt;br /&gt;
git checkout master&lt;br /&gt;
git fetch origin&lt;br /&gt;
git rebase origin/master&lt;br /&gt;
git submodule update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
overlay source code are located under the directory &amp;quot;rockchip-bsp/kerne/arch/arm64/boot/dts/rockchip/overlay/&amp;quot;, &lt;br /&gt;
&lt;br /&gt;
===== write overlay code =====&lt;br /&gt;
example:&lt;br /&gt;
rk3399-rock4-i2c7.dts&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dts-v1/;&lt;br /&gt;
/plugin/;&lt;br /&gt;
&lt;br /&gt;
/ {&lt;br /&gt;
	metadata {&lt;br /&gt;
		title = &amp;quot;Enable i2c7 on ROCK 4 plus&amp;quot;;&lt;br /&gt;
		compatible = &amp;quot;radxa,rock-4c-plus&amp;quot;, &amp;quot;rockchip,rk3399&amp;quot;;&lt;br /&gt;
		category = &amp;quot;misc&amp;quot;;&lt;br /&gt;
		description = &amp;quot;Enable Radxa rock-4c-plus i2c7&amp;quot;;&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	fragment@0 {&lt;br /&gt;
		target = &amp;lt;&amp;amp;i2c7&amp;gt;;&lt;br /&gt;
		__overlay__ {&lt;br /&gt;
			status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
		};&lt;br /&gt;
	};&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== compile the dts to dtbo ===== &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rockchip-bsp/kernel$ make dtbs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Upload it to the board ===== &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp rk3399-rock4-i2c7.dts radxa@192.168.xx.xx:~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== move the dtbo to correct directory =====&lt;br /&gt;
radxa@rock-4c-plus:~$ sudo mv rk3399-rock4-i2c7.dtbo /boot/dtbo&lt;br /&gt;
&lt;br /&gt;
Then, use rsetup to check to whether that overlay is enabled, the steps are similar to &amp;quot;How to enable a overlay  dtbo&amp;quot; .&lt;br /&gt;
Finally, reboot the board, you will see i2c-7 under the /dev/ directory.&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10</id>
		<title>Rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10"/>
				<updated>2023-04-11T03:02:18Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
{{Languages|rockpi4/dev/devtree_overlays | Common interface with linux-5.10}}&lt;br /&gt;
&lt;br /&gt;
       [[rockpi4 | ROCK Pi 4]] &amp;gt; [[rockpi4/dev | Development]] &amp;gt; [[rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10  | Linux5.10 Device Tree Overlays ]]&lt;br /&gt;
&lt;br /&gt;
=== Device Tree Overlays===&lt;br /&gt;
&lt;br /&gt;
==== Introduction ====&lt;br /&gt;
&lt;br /&gt;
This directory contains Device Tree overlays. Device Tree makes it possible&lt;br /&gt;
to support many hardware configurations with a single kernel and without the&lt;br /&gt;
need to explicitly load or blacklisr kernel modules.&lt;br /&gt;
&lt;br /&gt;
On Radxa borad which uses linux5.10 kernel, you can use &amp;quot;rsetup&amp;quot; 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]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to enable a overlay  dtbo ====&lt;br /&gt;
===== usage =====&lt;br /&gt;
run &amp;quot;rsetup&amp;quot; command as below:&lt;br /&gt;
 radxa@rock-4c-plus:~$ rsetup&lt;br /&gt;
&lt;br /&gt;
 Please select an option below:                                               &lt;br /&gt;
                                                                             &lt;br /&gt;
                            System Maintaince                                 &lt;br /&gt;
                            Onboard Hardware                                  &lt;br /&gt;
                            Overlay Management                                &lt;br /&gt;
                            Connectivity                                     &lt;br /&gt;
                            User Settings                                     &lt;br /&gt;
                            Localization                                      &lt;br /&gt;
                            Common Tasks                                    &lt;br /&gt;
                             About                                            &lt;br /&gt;
                                                                         &lt;br /&gt;
                                                                             &lt;br /&gt;
                                                                             &lt;br /&gt;
               &amp;lt;Ok&amp;gt;                         &amp;lt;Cancel&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Overlay Management&amp;quot;   &lt;br /&gt;
&lt;br /&gt;
 Configure Device Tree Overlay  &lt;br /&gt;
                        Install overlay from source&lt;br /&gt;
                        Manage installed overlay &lt;br /&gt;
                        Rebuild boot configuration&lt;br /&gt;
                        Reset overlay libraries with kernel's default &lt;br /&gt;
                                                                         &lt;br /&gt;
                                                                             &lt;br /&gt;
              &amp;lt;Ok&amp;gt;                         &amp;lt;Cancel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Manage installed overlay&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    [ ] audioinjector-isolated-soundcard.dtbo                                &lt;br /&gt;
    [ ] cm3-sodimm-io-sata.dtbo                                              &lt;br /&gt;
    [ ] radxa-5inch-touchscreen-on-cm3-sodimm-io.dtbo                    &lt;br /&gt;
    [ ] radxa-5inch-touchscreen-on-rock-3a.dtbo                          &lt;br /&gt;
    [ ] radxa-5inch-touchscreen-on-rock-3b.dtbo                         &lt;br /&gt;
    [ ] radxa-cm3-io-dual-cameras-gc2053.dtbo                           &lt;br /&gt;
    [ ] radxa-cm3-io-hd101boe9365-display.dtbo                           &lt;br /&gt;
    [ ] radxa-cm3-io-headphone.dtbo                                     &lt;br /&gt;
    [ ] radxa-cm3-io-i2c0-hym8563.dtbo                                   &lt;br /&gt;
    [ ] radxa-cm3-io-pcie2x1.dtbo                                         &lt;br /&gt;
    [ ] radxa-cm3-io-radxa-10p1inch-display.dtbo                         &lt;br /&gt;
    [ ] radxa-cm3-io-sata1.dtbo                                          &lt;br /&gt;
    [ ] radxa-cm3-io-sata2.dtbo                                          &lt;br /&gt;
    [ ] radxa-cm3-io-sharp-lq133t1jw01-without-hdmi.dtbo                  &lt;br /&gt;
    [ ] radxa-cm3-raspcm4io-pcie2x1.dtbo                                 &lt;br /&gt;
    [ ] radxa-cm3-sodimm-io-raspberrypi-7inch-touchscreen.dtbo  &lt;br /&gt;
    [ ] radxa-cm3i-gmac1.dtbo                                            &lt;br /&gt;
    [ ] rk3399-dwc3-0-host.dtbo                                             &lt;br /&gt;
    [ ] rk3399-dwc3-0-otg.dtbo                                          &lt;br /&gt;
    [ ] rk3399-dwc3-0-peripheral.dtbo&lt;br /&gt;
    [ ] rk3399-i2c2.dtbo&lt;br /&gt;
    [ ] rk3399-i2c6.dtbo&lt;br /&gt;
    [ ] rk3399-i2c7.dtbo                                     &lt;br /&gt;
    [ ] rk3399-opp-1800.dtbo                                             &lt;br /&gt;
    [ ] rk3399-opp-2000.dtbo                                          &lt;br /&gt;
    [ ] rk3399-opp-2200.dtbo                                              &lt;br /&gt;
    [ ] rk3399-opp-2400.dtbo &lt;br /&gt;
    [ ] rk3399-pwm0.dtbo&lt;br /&gt;
    [ ] rk3399-pwm1.dtbo&lt;br /&gt;
    [ ] rk3399-spi-5-enc28j60.dtbo                                     &lt;br /&gt;
    [ ] rk3399-spi-gpio-enc28j60.dtbo&lt;br /&gt;
    [ ] rk3399-spi1-m1-cs0-spidev.dtbo                                 &lt;br /&gt;
    [ ] rk3399-spi2-m1-cs0-spidev.dtbo        &lt;br /&gt;
    [ ] rk3399-uart0.dtbo         &lt;br /&gt;
    [ ] rk3399-uart2.dtbo&lt;br /&gt;
    [ ] rk3399-uart4.dtbo       &lt;br /&gt;
    [ ] rk3399-w1-gpio4-d6.dtbo                             &lt;br /&gt;
    [ ] rk3568-can1-m0.dtbo                                                   &lt;br /&gt;
    [ ] rk3568-can1-m1.dtbo                                              &lt;br /&gt;
    [ ] rk3568-disable-gmac1.dtbo                                         &lt;br /&gt;
    [ ] rk3568-disable-npu.dtbo                                           &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart0.dtbo                                   &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart2m0.dtbo                                  &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart3m0.dtbo                                &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart5m1.dtbo                                &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart7m1.dtbo                                 &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart8m1.dtbo                               &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart9m1.dtbo                                  &lt;br /&gt;
    [ ] rk3568-i2c2-m0.dtbo  &lt;br /&gt;
                                                                         &lt;br /&gt;
                                                                             &lt;br /&gt;
              &amp;lt;Ok&amp;gt;                         &amp;lt;Cancel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the overlays you want to load with the space bar, &lt;br /&gt;
&lt;br /&gt;
    [*] rk3399-uart0.dtbo  &lt;br /&gt;
&lt;br /&gt;
Overlay with a &amp;quot;*&amp;quot; indicates that it is enabled.&lt;br /&gt;
&lt;br /&gt;
reboot, to make overlays work&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====  uart2 =====&lt;br /&gt;
Select the &amp;quot;rk3399-uart2.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-uart2.dtbo&lt;br /&gt;
then reboot , the ttyS2 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  uart4 =====&lt;br /&gt;
Select the &amp;quot;rk3399-uart4.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-uart4.dtbo&lt;br /&gt;
then reboot , the ttyS4 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  i2c2 =====&lt;br /&gt;
Select the &amp;quot;rk3399-i2c2.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-i2c2.dtbo&lt;br /&gt;
then reboot , the i2c-2 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  i2c6 =====&lt;br /&gt;
Select the &amp;quot;rk3399-i2c6.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-i2c6.dtbo&lt;br /&gt;
then reboot , the i2c-6 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  i2c7 =====&lt;br /&gt;
Select the &amp;quot;rk3399-i2c7.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-i2c7.dtbo&lt;br /&gt;
then reboot , the i2c-7 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  spi1 =====&lt;br /&gt;
Select the &amp;quot;rk3399-spi1-m1-cs0-spidev.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-spi1-m1-cs0-spidev.dtbo&lt;br /&gt;
then reboot , the spi1.0 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  spi2 =====&lt;br /&gt;
Select the &amp;quot;rk3399-spi1-m1-cs0-spidev.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-spi2-m1-cs0-spidev.dtbo&lt;br /&gt;
then reboot , the spi2.0 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  pwm0 =====&lt;br /&gt;
Select the &amp;quot;rk3399-pwm0.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-pwm0.dtbo&lt;br /&gt;
then reboot , the pwmchip0 device is generated in the /sys/class/pwm/ directory&lt;br /&gt;
&lt;br /&gt;
=====  pwm1 =====&lt;br /&gt;
Select the &amp;quot;rk3399-pwm1.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-pwm1.dtbo&lt;br /&gt;
then reboot , the pwmchip1 device is generated in the /sys/class/pwm/ directory&lt;br /&gt;
&lt;br /&gt;
=====  one wire =====&lt;br /&gt;
Select the &amp;quot;rk3399-w1-gpio4-d6.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-w1-gpio4-d6.dtbo&lt;br /&gt;
then reboot , the 28-80000028f6a0 device is generated in the /sys/bus/w1/devices/ directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to use a overylay written by yourselt ====&lt;br /&gt;
===== DTBO code specification =====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
In our dtbo source file, you need add a new node named &amp;quot;matedata&amp;quot;, this node needs the following fields:&lt;br /&gt;
 * title: it's property is text, used to display in the rsetup menu, there is  no necessary to also indicate the supported development board.&lt;br /&gt;
 * 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.&lt;br /&gt;
 * category: text, Used to classify in the rsetup menu. At present, only 'display', 'camera' and 'misc' are defined&lt;br /&gt;
 * description: text, The functions and precautions of dtbo are briefly introduced, used to display dtbo when installing rsetup.&lt;br /&gt;
&lt;br /&gt;
===== get the sdk source =====&lt;br /&gt;
 [[https://github.com/radxa/rockchip-bsp SDK rockchip-bsp]] &lt;br /&gt;
install the tools&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install git device-tree-compiler build-essential&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====  get the source code and update it ===== &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b master https://github.com/radxa/rockchip-bsp.git&lt;br /&gt;
cd rockchip-bsp&lt;br /&gt;
git submodule init&lt;br /&gt;
git submodule update&lt;br /&gt;
cd rockchip-bsp&lt;br /&gt;
git checkout master&lt;br /&gt;
git fetch origin&lt;br /&gt;
git rebase origin/master&lt;br /&gt;
git submodule update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
overlay source code are located under the directory &amp;quot;rockchip-bsp/kerne/arch/arm64/boot/dts/rockchip/overlay/&amp;quot;, &lt;br /&gt;
&lt;br /&gt;
===== write overlay code =====&lt;br /&gt;
example:&lt;br /&gt;
rk3399-rock4-i2c7.dts&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dts-v1/;&lt;br /&gt;
/plugin/;&lt;br /&gt;
&lt;br /&gt;
/ {&lt;br /&gt;
	metadata {&lt;br /&gt;
		title = &amp;quot;Enable i2c7 on ROCK 4 plus&amp;quot;;&lt;br /&gt;
		compatible = &amp;quot;radxa,rock-4c-plus&amp;quot;, &amp;quot;rockchip,rk3399&amp;quot;;&lt;br /&gt;
		category = &amp;quot;misc&amp;quot;;&lt;br /&gt;
		description = &amp;quot;Enable Radxa rock-4c-plus i2c7&amp;quot;;&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	fragment@0 {&lt;br /&gt;
		target = &amp;lt;&amp;amp;i2c7&amp;gt;;&lt;br /&gt;
		__overlay__ {&lt;br /&gt;
			status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
		};&lt;br /&gt;
	};&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== compile the dts to dtbo ===== &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rockchip-bsp/kernel$ make dtbs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Upload it to the board ===== &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp rk3399-rock4-i2c7.dts radxa@192.168.xx.xx:~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== move the dtbo to correct directory =====&lt;br /&gt;
radxa@rock-4c-plus:~$ sudo mv rk3399-rock4-i2c7.dtbo /boot/dtbo&lt;br /&gt;
&lt;br /&gt;
Then, use rsetup to check to whether that overlay is enabled, the steps are similar to &amp;quot;How to enable a overlay  dtbo&amp;quot; .&lt;br /&gt;
Finally, reboot the board, you will see i2c-7 under the /dev/ directory.&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10</id>
		<title>Rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10"/>
				<updated>2023-04-11T03:00:37Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: Created page with &amp;quot;{{rockpi4_header}} {{Languages|rockpi4/dev/devtree_overlays | Linux5.10 Device Tree Overlays}}          ROCK Pi 4 &amp;gt;  Development &amp;gt; rockpi4/dev/...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
{{Languages|rockpi4/dev/devtree_overlays | Linux5.10 Device Tree Overlays}}&lt;br /&gt;
&lt;br /&gt;
       [[rockpi4 | ROCK Pi 4]] &amp;gt; [[rockpi4/dev | Development]] &amp;gt; [[rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10  | Linux5.10 Device Tree Overlays ]]&lt;br /&gt;
&lt;br /&gt;
=== Device Tree Overlays===&lt;br /&gt;
&lt;br /&gt;
==== Introduction ====&lt;br /&gt;
&lt;br /&gt;
This directory contains Device Tree overlays. Device Tree makes it possible&lt;br /&gt;
to support many hardware configurations with a single kernel and without the&lt;br /&gt;
need to explicitly load or blacklisr kernel modules.&lt;br /&gt;
&lt;br /&gt;
On Radxa borad which uses linux5.10 kernel, you can use &amp;quot;rsetup&amp;quot; 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]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to enable a overlay  dtbo ====&lt;br /&gt;
===== usage =====&lt;br /&gt;
run &amp;quot;rsetup&amp;quot; command as below:&lt;br /&gt;
 radxa@rock-4c-plus:~$ rsetup&lt;br /&gt;
&lt;br /&gt;
 Please select an option below:                                               &lt;br /&gt;
                                                                             &lt;br /&gt;
                            System Maintaince                                 &lt;br /&gt;
                            Onboard Hardware                                  &lt;br /&gt;
                            Overlay Management                                &lt;br /&gt;
                            Connectivity                                     &lt;br /&gt;
                            User Settings                                     &lt;br /&gt;
                            Localization                                      &lt;br /&gt;
                            Common Tasks                                    &lt;br /&gt;
                             About                                            &lt;br /&gt;
                                                                         &lt;br /&gt;
                                                                             &lt;br /&gt;
                                                                             &lt;br /&gt;
               &amp;lt;Ok&amp;gt;                         &amp;lt;Cancel&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Overlay Management&amp;quot;   &lt;br /&gt;
&lt;br /&gt;
 Configure Device Tree Overlay  &lt;br /&gt;
                        Install overlay from source&lt;br /&gt;
                        Manage installed overlay &lt;br /&gt;
                        Rebuild boot configuration&lt;br /&gt;
                        Reset overlay libraries with kernel's default &lt;br /&gt;
                                                                         &lt;br /&gt;
                                                                             &lt;br /&gt;
              &amp;lt;Ok&amp;gt;                         &amp;lt;Cancel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Manage installed overlay&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    [ ] audioinjector-isolated-soundcard.dtbo                                &lt;br /&gt;
    [ ] cm3-sodimm-io-sata.dtbo                                              &lt;br /&gt;
    [ ] radxa-5inch-touchscreen-on-cm3-sodimm-io.dtbo                    &lt;br /&gt;
    [ ] radxa-5inch-touchscreen-on-rock-3a.dtbo                          &lt;br /&gt;
    [ ] radxa-5inch-touchscreen-on-rock-3b.dtbo                         &lt;br /&gt;
    [ ] radxa-cm3-io-dual-cameras-gc2053.dtbo                           &lt;br /&gt;
    [ ] radxa-cm3-io-hd101boe9365-display.dtbo                           &lt;br /&gt;
    [ ] radxa-cm3-io-headphone.dtbo                                     &lt;br /&gt;
    [ ] radxa-cm3-io-i2c0-hym8563.dtbo                                   &lt;br /&gt;
    [ ] radxa-cm3-io-pcie2x1.dtbo                                         &lt;br /&gt;
    [ ] radxa-cm3-io-radxa-10p1inch-display.dtbo                         &lt;br /&gt;
    [ ] radxa-cm3-io-sata1.dtbo                                          &lt;br /&gt;
    [ ] radxa-cm3-io-sata2.dtbo                                          &lt;br /&gt;
    [ ] radxa-cm3-io-sharp-lq133t1jw01-without-hdmi.dtbo                  &lt;br /&gt;
    [ ] radxa-cm3-raspcm4io-pcie2x1.dtbo                                 &lt;br /&gt;
    [ ] radxa-cm3-sodimm-io-raspberrypi-7inch-touchscreen.dtbo  &lt;br /&gt;
    [ ] radxa-cm3i-gmac1.dtbo                                            &lt;br /&gt;
    [ ] rk3399-dwc3-0-host.dtbo                                             &lt;br /&gt;
    [ ] rk3399-dwc3-0-otg.dtbo                                          &lt;br /&gt;
    [ ] rk3399-dwc3-0-peripheral.dtbo&lt;br /&gt;
    [ ] rk3399-i2c2.dtbo&lt;br /&gt;
    [ ] rk3399-i2c6.dtbo&lt;br /&gt;
    [ ] rk3399-i2c7.dtbo                                     &lt;br /&gt;
    [ ] rk3399-opp-1800.dtbo                                             &lt;br /&gt;
    [ ] rk3399-opp-2000.dtbo                                          &lt;br /&gt;
    [ ] rk3399-opp-2200.dtbo                                              &lt;br /&gt;
    [ ] rk3399-opp-2400.dtbo &lt;br /&gt;
    [ ] rk3399-pwm0.dtbo&lt;br /&gt;
    [ ] rk3399-pwm1.dtbo&lt;br /&gt;
    [ ] rk3399-spi-5-enc28j60.dtbo                                     &lt;br /&gt;
    [ ] rk3399-spi-gpio-enc28j60.dtbo&lt;br /&gt;
    [ ] rk3399-spi1-m1-cs0-spidev.dtbo                                 &lt;br /&gt;
    [ ] rk3399-spi2-m1-cs0-spidev.dtbo        &lt;br /&gt;
    [ ] rk3399-uart0.dtbo         &lt;br /&gt;
    [ ] rk3399-uart2.dtbo&lt;br /&gt;
    [ ] rk3399-uart4.dtbo       &lt;br /&gt;
    [ ] rk3399-w1-gpio4-d6.dtbo                             &lt;br /&gt;
    [ ] rk3568-can1-m0.dtbo                                                   &lt;br /&gt;
    [ ] rk3568-can1-m1.dtbo                                              &lt;br /&gt;
    [ ] rk3568-disable-gmac1.dtbo                                         &lt;br /&gt;
    [ ] rk3568-disable-npu.dtbo                                           &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart0.dtbo                                   &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart2m0.dtbo                                  &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart3m0.dtbo                                &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart5m1.dtbo                                &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart7m1.dtbo                                 &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart8m1.dtbo                               &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart9m1.dtbo                                  &lt;br /&gt;
    [ ] rk3568-i2c2-m0.dtbo  &lt;br /&gt;
                                                                         &lt;br /&gt;
                                                                             &lt;br /&gt;
              &amp;lt;Ok&amp;gt;                         &amp;lt;Cancel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the overlays you want to load with the space bar, &lt;br /&gt;
&lt;br /&gt;
    [*] rk3399-uart0.dtbo  &lt;br /&gt;
&lt;br /&gt;
Overlay with a &amp;quot;*&amp;quot; indicates that it is enabled.&lt;br /&gt;
&lt;br /&gt;
reboot, to make overlays work&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====  uart2 =====&lt;br /&gt;
Select the &amp;quot;rk3399-uart2.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-uart2.dtbo&lt;br /&gt;
then reboot , the ttyS2 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  uart4 =====&lt;br /&gt;
Select the &amp;quot;rk3399-uart4.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-uart4.dtbo&lt;br /&gt;
then reboot , the ttyS4 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  i2c2 =====&lt;br /&gt;
Select the &amp;quot;rk3399-i2c2.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-i2c2.dtbo&lt;br /&gt;
then reboot , the i2c-2 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  i2c6 =====&lt;br /&gt;
Select the &amp;quot;rk3399-i2c6.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-i2c6.dtbo&lt;br /&gt;
then reboot , the i2c-6 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  i2c7 =====&lt;br /&gt;
Select the &amp;quot;rk3399-i2c7.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-i2c7.dtbo&lt;br /&gt;
then reboot , the i2c-7 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  spi1 =====&lt;br /&gt;
Select the &amp;quot;rk3399-spi1-m1-cs0-spidev.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-spi1-m1-cs0-spidev.dtbo&lt;br /&gt;
then reboot , the spi1.0 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  spi2 =====&lt;br /&gt;
Select the &amp;quot;rk3399-spi1-m1-cs0-spidev.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-spi2-m1-cs0-spidev.dtbo&lt;br /&gt;
then reboot , the spi2.0 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  pwm0 =====&lt;br /&gt;
Select the &amp;quot;rk3399-pwm0.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-pwm0.dtbo&lt;br /&gt;
then reboot , the pwmchip0 device is generated in the /sys/class/pwm/ directory&lt;br /&gt;
&lt;br /&gt;
=====  pwm1 =====&lt;br /&gt;
Select the &amp;quot;rk3399-pwm1.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-pwm1.dtbo&lt;br /&gt;
then reboot , the pwmchip1 device is generated in the /sys/class/pwm/ directory&lt;br /&gt;
&lt;br /&gt;
=====  one wire =====&lt;br /&gt;
Select the &amp;quot;rk3399-w1-gpio4-d6.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-w1-gpio4-d6.dtbo&lt;br /&gt;
then reboot , the 28-80000028f6a0 device is generated in the /sys/bus/w1/devices/ directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to use a overylay written by yourselt ====&lt;br /&gt;
===== DTBO code specification =====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
In our dtbo source file, you need add a new node named &amp;quot;matedata&amp;quot;, this node needs the following fields:&lt;br /&gt;
 * title: it's property is text, used to display in the rsetup menu, there is  no necessary to also indicate the supported development board.&lt;br /&gt;
 * 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.&lt;br /&gt;
 * category: text, Used to classify in the rsetup menu. At present, only 'display', 'camera' and 'misc' are defined&lt;br /&gt;
 * description: text, The functions and precautions of dtbo are briefly introduced, used to display dtbo when installing rsetup.&lt;br /&gt;
&lt;br /&gt;
===== get the sdk source =====&lt;br /&gt;
 [[https://github.com/radxa/rockchip-bsp SDK rockchip-bsp]] &lt;br /&gt;
install the tools&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install git device-tree-compiler build-essential&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====  get the source code and update it ===== &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b master https://github.com/radxa/rockchip-bsp.git&lt;br /&gt;
cd rockchip-bsp&lt;br /&gt;
git submodule init&lt;br /&gt;
git submodule update&lt;br /&gt;
cd rockchip-bsp&lt;br /&gt;
git checkout master&lt;br /&gt;
git fetch origin&lt;br /&gt;
git rebase origin/master&lt;br /&gt;
git submodule update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
overlay source code are located under the directory &amp;quot;rockchip-bsp/kerne/arch/arm64/boot/dts/rockchip/overlay/&amp;quot;, &lt;br /&gt;
&lt;br /&gt;
===== write overlay code =====&lt;br /&gt;
example:&lt;br /&gt;
rk3399-rock4-i2c7.dts&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dts-v1/;&lt;br /&gt;
/plugin/;&lt;br /&gt;
&lt;br /&gt;
/ {&lt;br /&gt;
	metadata {&lt;br /&gt;
		title = &amp;quot;Enable i2c7 on ROCK 4 plus&amp;quot;;&lt;br /&gt;
		compatible = &amp;quot;radxa,rock-4c-plus&amp;quot;, &amp;quot;rockchip,rk3399&amp;quot;;&lt;br /&gt;
		category = &amp;quot;misc&amp;quot;;&lt;br /&gt;
		description = &amp;quot;Enable Radxa rock-4c-plus i2c7&amp;quot;;&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	fragment@0 {&lt;br /&gt;
		target = &amp;lt;&amp;amp;i2c7&amp;gt;;&lt;br /&gt;
		__overlay__ {&lt;br /&gt;
			status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
		};&lt;br /&gt;
	};&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== compile the dts to dtbo ===== &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rockchip-bsp/kernel$ make dtbs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Upload it to the board ===== &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp rk3399-rock4-i2c7.dts radxa@192.168.xx.xx:~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== move the dtbo to correct directory =====&lt;br /&gt;
radxa@rock-4c-plus:~$ sudo mv rk3399-rock4-i2c7.dtbo /boot/dtbo&lt;br /&gt;
&lt;br /&gt;
Then, use rsetup to check to whether that overlay is enabled, the steps are similar to &amp;quot;How to enable a overlay  dtbo&amp;quot; .&lt;br /&gt;
Finally, reboot the board, you will see i2c-7 under the /dev/ directory.&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/hardware/devtree_overlays_linux5.10</id>
		<title>Rockpi4/hardware/devtree overlays linux5.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/hardware/devtree_overlays_linux5.10"/>
				<updated>2023-04-11T03:00:12Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock4/dev</id>
		<title>Rock4/dev</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock4/dev"/>
				<updated>2023-04-11T02:56:30Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rock4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|rock4/dev}}&lt;br /&gt;
&lt;br /&gt;
    [[rock4 | ROCK 4]] &amp;gt; [[rock4/dev | Development Guide]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This page describes development tips for ROCK Pi.&lt;br /&gt;
&lt;br /&gt;
* [[rockpi4/dev/usb-install | USB Installation]] describe how to use PC tools to install image on ROCK Pi 4.&lt;br /&gt;
* [[rockpi4/dev/spi-install | Install images to SPI flash]] describe how to write bootloader to SPI flash on ROCK Pi 4.&lt;br /&gt;
* [[rockpi4/dev/Debian | Build Debian]]&lt;br /&gt;
* [[rockpi4/dev/rootfs | replace your rootfs]]&lt;br /&gt;
* [[Yocto-layer-for-radxa-boards | Build Yocto ]]&lt;br /&gt;
* [[rockpi4/dev/kernel-4.4 | Build vendor kernel(Rockchip 4.4)]]&lt;br /&gt;
* [[rockpi4/dev/kernel-mainline | Build mainline kernel(kernel 5.x)]]&lt;br /&gt;
* [[rockpi4/dev/u-boot | U-boot ]]&lt;br /&gt;
* [[rockpi4/dev/u-boot/pxe | U-boot/PXE Boot ]]&lt;br /&gt;
* [[rockpi4/dev/usbnet | USB Device Network]]&lt;br /&gt;
* [[rockpi4/dev/rockpi-android-tv | Build Android (nougat) TV]]&lt;br /&gt;
* [[rockpi4/dev/serial-console | Serial Console]]&lt;br /&gt;
* [[rockpi4/dev/install-opencv | Install OpenCV]]&lt;br /&gt;
* [[rockpi4/dev/libmraa | Install Libmraa ]]&lt;br /&gt;
* [[rockpi4/dev/install-opencl | Install OpenCL ]]&lt;br /&gt;
* [[rockpi4/dev/apmode | Setting AP Mode ]]&lt;br /&gt;
* [[rockpi4/dev/monitor-mode | Setting WiFi Monitor Mode ]]&lt;br /&gt;
* [[rockpi4/dev/vs | Setting Up Visual Studio For ROCK Pi 4 ]]&lt;br /&gt;
* [[rockpi4/dev/compile-a-kernel-module-on-rockpi4 | Compile a kernel module on ROCK Pi 4]]&lt;br /&gt;
* [[rockpi4/dev/build-Armbian | Build Armbian ]]&lt;br /&gt;
* [[rockpi4/dev/adb | Using ADB]]&lt;br /&gt;
* [[rockpi4/dev/gpu-run-test-with-kernel-5.10 | GPU Run Test with Kernel 5.10]]&lt;br /&gt;
* [[rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10  | Linux5.10 Device Tree Overlays]]&lt;br /&gt;
* [[rockpi4/dev/headphone-jack-work-on-rock-pi-4cplus | Headphone work on ROCK Pi 4C Plus]]&lt;br /&gt;
* [[rockpi4/dev/usb-host-and-otg-switch-on-rock-pi-4 | USB host and otg switch on ROCK Pi 4]]&lt;br /&gt;
* [[rockpi4/dev/how-to-use-debian | How to use Debian]]&lt;br /&gt;
== Android ==&lt;br /&gt;
* [[Rockpi4/rockpi-android7 | Android7 Tablet(Support Raspberry Pi official 7&amp;quot; Display)]]&lt;br /&gt;
* [[Rockpi4/dev/rockpi-android-tv | Android7 TV]]&lt;br /&gt;
* [[Rockpi4/rockpi-android9 | Android9 Tablet]]&lt;br /&gt;
* [[Rockpi4/rockpi-android9 | Android9 TV]]&lt;br /&gt;
* [[Rockpi4/install/android-NVME | Android9 Run on M.2 NVME SSD]]&lt;br /&gt;
* [[Rockpi4/android-mraa | Android9 Mraa API]]&lt;br /&gt;
* [[Rockpi4/rockpi-android10 | Android10 Tablet]]&lt;br /&gt;
* [[Rockpi4/rockpi-android11 | Android11]]&lt;br /&gt;
* [https://forum.radxa.com/t/solve-google-play-device-is-not-play-protect-certified-issue/229 Solve Google Play Device is not Play Protect certified issue]&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/hardware/devtree_overlays_linux5.10</id>
		<title>Rockpi4/hardware/devtree overlays linux5.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/hardware/devtree_overlays_linux5.10"/>
				<updated>2023-04-11T02:55:48Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
{{Languages|rockpi4/dev/devtree_overlays | Linux5.10 Device Tree Overlays}}&lt;br /&gt;
&lt;br /&gt;
       [[rockpi4 | ROCK Pi 4]] &amp;gt; [[rockpi4/dev | Development]] &amp;gt; [[rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10  | Linux5.10 Device Tree Overlays ]]&lt;br /&gt;
&lt;br /&gt;
=== Device Tree Overlays===&lt;br /&gt;
&lt;br /&gt;
==== Introduction ====&lt;br /&gt;
&lt;br /&gt;
This directory contains Device Tree overlays. Device Tree makes it possible&lt;br /&gt;
to support many hardware configurations with a single kernel and without the&lt;br /&gt;
need to explicitly load or blacklisr kernel modules.&lt;br /&gt;
&lt;br /&gt;
On Radxa borad which uses linux5.10 kernel, you can use &amp;quot;rsetup&amp;quot; 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]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to enable a overlay  dtbo ====&lt;br /&gt;
===== usage =====&lt;br /&gt;
run &amp;quot;rsetup&amp;quot; command as below:&lt;br /&gt;
 radxa@rock-4c-plus:~$ rsetup&lt;br /&gt;
&lt;br /&gt;
 Please select an option below:                                               &lt;br /&gt;
                                                                             &lt;br /&gt;
                            System Maintaince                                 &lt;br /&gt;
                            Onboard Hardware                                  &lt;br /&gt;
                            Overlay Management                                &lt;br /&gt;
                            Connectivity                                     &lt;br /&gt;
                            User Settings                                     &lt;br /&gt;
                            Localization                                      &lt;br /&gt;
                            Common Tasks                                    &lt;br /&gt;
                             About                                            &lt;br /&gt;
                                                                         &lt;br /&gt;
                                                                             &lt;br /&gt;
                                                                             &lt;br /&gt;
               &amp;lt;Ok&amp;gt;                         &amp;lt;Cancel&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Overlay Management&amp;quot;   &lt;br /&gt;
&lt;br /&gt;
 Configure Device Tree Overlay  &lt;br /&gt;
                        Install overlay from source&lt;br /&gt;
                        Manage installed overlay &lt;br /&gt;
                        Rebuild boot configuration&lt;br /&gt;
                        Reset overlay libraries with kernel's default &lt;br /&gt;
                                                                         &lt;br /&gt;
                                                                             &lt;br /&gt;
              &amp;lt;Ok&amp;gt;                         &amp;lt;Cancel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Manage installed overlay&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    [ ] audioinjector-isolated-soundcard.dtbo                                &lt;br /&gt;
    [ ] cm3-sodimm-io-sata.dtbo                                              &lt;br /&gt;
    [ ] radxa-5inch-touchscreen-on-cm3-sodimm-io.dtbo                    &lt;br /&gt;
    [ ] radxa-5inch-touchscreen-on-rock-3a.dtbo                          &lt;br /&gt;
    [ ] radxa-5inch-touchscreen-on-rock-3b.dtbo                         &lt;br /&gt;
    [ ] radxa-cm3-io-dual-cameras-gc2053.dtbo                           &lt;br /&gt;
    [ ] radxa-cm3-io-hd101boe9365-display.dtbo                           &lt;br /&gt;
    [ ] radxa-cm3-io-headphone.dtbo                                     &lt;br /&gt;
    [ ] radxa-cm3-io-i2c0-hym8563.dtbo                                   &lt;br /&gt;
    [ ] radxa-cm3-io-pcie2x1.dtbo                                         &lt;br /&gt;
    [ ] radxa-cm3-io-radxa-10p1inch-display.dtbo                         &lt;br /&gt;
    [ ] radxa-cm3-io-sata1.dtbo                                          &lt;br /&gt;
    [ ] radxa-cm3-io-sata2.dtbo                                          &lt;br /&gt;
    [ ] radxa-cm3-io-sharp-lq133t1jw01-without-hdmi.dtbo                  &lt;br /&gt;
    [ ] radxa-cm3-raspcm4io-pcie2x1.dtbo                                 &lt;br /&gt;
    [ ] radxa-cm3-sodimm-io-raspberrypi-7inch-touchscreen.dtbo  &lt;br /&gt;
    [ ] radxa-cm3i-gmac1.dtbo                                            &lt;br /&gt;
    [ ] rk3399-dwc3-0-host.dtbo                                             &lt;br /&gt;
    [ ] rk3399-dwc3-0-otg.dtbo                                          &lt;br /&gt;
    [ ] rk3399-dwc3-0-peripheral.dtbo&lt;br /&gt;
    [ ] rk3399-i2c2.dtbo&lt;br /&gt;
    [ ] rk3399-i2c6.dtbo&lt;br /&gt;
    [ ] rk3399-i2c7.dtbo                                     &lt;br /&gt;
    [ ] rk3399-opp-1800.dtbo                                             &lt;br /&gt;
    [ ] rk3399-opp-2000.dtbo                                          &lt;br /&gt;
    [ ] rk3399-opp-2200.dtbo                                              &lt;br /&gt;
    [ ] rk3399-opp-2400.dtbo &lt;br /&gt;
    [ ] rk3399-pwm0.dtbo&lt;br /&gt;
    [ ] rk3399-pwm1.dtbo&lt;br /&gt;
    [ ] rk3399-spi-5-enc28j60.dtbo                                     &lt;br /&gt;
    [ ] rk3399-spi-gpio-enc28j60.dtbo&lt;br /&gt;
    [ ] rk3399-spi1-m1-cs0-spidev.dtbo                                 &lt;br /&gt;
    [ ] rk3399-spi2-m1-cs0-spidev.dtbo        &lt;br /&gt;
    [ ] rk3399-uart0.dtbo         &lt;br /&gt;
    [ ] rk3399-uart2.dtbo&lt;br /&gt;
    [ ] rk3399-uart4.dtbo       &lt;br /&gt;
    [ ] rk3399-w1-gpio4-d6.dtbo                             &lt;br /&gt;
    [ ] rk3568-can1-m0.dtbo                                                   &lt;br /&gt;
    [ ] rk3568-can1-m1.dtbo                                              &lt;br /&gt;
    [ ] rk3568-disable-gmac1.dtbo                                         &lt;br /&gt;
    [ ] rk3568-disable-npu.dtbo                                           &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart0.dtbo                                   &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart2m0.dtbo                                  &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart3m0.dtbo                                &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart5m1.dtbo                                &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart7m1.dtbo                                 &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart8m1.dtbo                               &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart9m1.dtbo                                  &lt;br /&gt;
    [ ] rk3568-i2c2-m0.dtbo  &lt;br /&gt;
                                                                         &lt;br /&gt;
                                                                             &lt;br /&gt;
              &amp;lt;Ok&amp;gt;                         &amp;lt;Cancel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the overlays you want to load with the space bar, &lt;br /&gt;
&lt;br /&gt;
    [*] rk3399-uart0.dtbo  &lt;br /&gt;
&lt;br /&gt;
Overlay with a &amp;quot;*&amp;quot; indicates that it is enabled.&lt;br /&gt;
&lt;br /&gt;
reboot, to make overlays work&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====  uart2 =====&lt;br /&gt;
Select the &amp;quot;rk3399-uart2.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-uart2.dtbo&lt;br /&gt;
then reboot , the ttyS2 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  uart4 =====&lt;br /&gt;
Select the &amp;quot;rk3399-uart4.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-uart4.dtbo&lt;br /&gt;
then reboot , the ttyS4 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  i2c2 =====&lt;br /&gt;
Select the &amp;quot;rk3399-i2c2.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-i2c2.dtbo&lt;br /&gt;
then reboot , the i2c-2 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  i2c6 =====&lt;br /&gt;
Select the &amp;quot;rk3399-i2c6.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-i2c6.dtbo&lt;br /&gt;
then reboot , the i2c-6 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  i2c7 =====&lt;br /&gt;
Select the &amp;quot;rk3399-i2c7.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-i2c7.dtbo&lt;br /&gt;
then reboot , the i2c-7 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  spi1 =====&lt;br /&gt;
Select the &amp;quot;rk3399-spi1-m1-cs0-spidev.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-spi1-m1-cs0-spidev.dtbo&lt;br /&gt;
then reboot , the spi1.0 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  spi2 =====&lt;br /&gt;
Select the &amp;quot;rk3399-spi1-m1-cs0-spidev.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-spi2-m1-cs0-spidev.dtbo&lt;br /&gt;
then reboot , the spi2.0 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  pwm0 =====&lt;br /&gt;
Select the &amp;quot;rk3399-pwm0.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-pwm0.dtbo&lt;br /&gt;
then reboot , the pwmchip0 device is generated in the /sys/class/pwm/ directory&lt;br /&gt;
&lt;br /&gt;
=====  pwm1 =====&lt;br /&gt;
Select the &amp;quot;rk3399-pwm1.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-pwm1.dtbo&lt;br /&gt;
then reboot , the pwmchip1 device is generated in the /sys/class/pwm/ directory&lt;br /&gt;
&lt;br /&gt;
=====  one wire =====&lt;br /&gt;
Select the &amp;quot;rk3399-w1-gpio4-d6.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-w1-gpio4-d6.dtbo&lt;br /&gt;
then reboot , the 28-80000028f6a0 device is generated in the /sys/bus/w1/devices/ directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to use a overylay written by yourselt ====&lt;br /&gt;
===== DTBO code specification =====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
In our dtbo source file, you need add a new node named &amp;quot;matedata&amp;quot;, this node needs the following fields:&lt;br /&gt;
 * title: it's property is text, used to display in the rsetup menu, there is  no necessary to also indicate the supported development board.&lt;br /&gt;
 * 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.&lt;br /&gt;
 * category: text, Used to classify in the rsetup menu. At present, only 'display', 'camera' and 'misc' are defined&lt;br /&gt;
 * description: text, The functions and precautions of dtbo are briefly introduced, used to display dtbo when installing rsetup.&lt;br /&gt;
&lt;br /&gt;
===== get the sdk source =====&lt;br /&gt;
 [[https://github.com/radxa/rockchip-bsp SDK rockchip-bsp]] &lt;br /&gt;
install the tools&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install git device-tree-compiler build-essential&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====  get the source code and update it ===== &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b master https://github.com/radxa/rockchip-bsp.git&lt;br /&gt;
cd rockchip-bsp&lt;br /&gt;
git submodule init&lt;br /&gt;
git submodule update&lt;br /&gt;
cd rockchip-bsp&lt;br /&gt;
git checkout master&lt;br /&gt;
git fetch origin&lt;br /&gt;
git rebase origin/master&lt;br /&gt;
git submodule update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
overlay source code are located under the directory &amp;quot;rockchip-bsp/kerne/arch/arm64/boot/dts/rockchip/overlay/&amp;quot;, &lt;br /&gt;
&lt;br /&gt;
===== write overlay code =====&lt;br /&gt;
example:&lt;br /&gt;
rk3399-rock4-i2c7.dts&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dts-v1/;&lt;br /&gt;
/plugin/;&lt;br /&gt;
&lt;br /&gt;
/ {&lt;br /&gt;
	metadata {&lt;br /&gt;
		title = &amp;quot;Enable i2c7 on ROCK 4 plus&amp;quot;;&lt;br /&gt;
		compatible = &amp;quot;radxa,rock-4c-plus&amp;quot;, &amp;quot;rockchip,rk3399&amp;quot;;&lt;br /&gt;
		category = &amp;quot;misc&amp;quot;;&lt;br /&gt;
		description = &amp;quot;Enable Radxa rock-4c-plus i2c7&amp;quot;;&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	fragment@0 {&lt;br /&gt;
		target = &amp;lt;&amp;amp;i2c7&amp;gt;;&lt;br /&gt;
		__overlay__ {&lt;br /&gt;
			status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
		};&lt;br /&gt;
	};&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== compile the dts to dtbo ===== &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rockchip-bsp/kernel$ make dtbs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Upload it to the board ===== &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp rk3399-rock4-i2c7.dts radxa@192.168.xx.xx:~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== move the dtbo to correct directory =====&lt;br /&gt;
radxa@rock-4c-plus:~$ sudo mv rk3399-rock4-i2c7.dtbo /boot/dtbo&lt;br /&gt;
&lt;br /&gt;
Then, use rsetup to check to whether that overlay is enabled, the steps are similar to &amp;quot;How to enable a overlay  dtbo&amp;quot; .&lt;br /&gt;
Finally, reboot the board, you will see i2c-7 under the /dev/ directory.&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rock4/dev</id>
		<title>Rock4/dev</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rock4/dev"/>
				<updated>2023-04-11T02:53:33Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rock4_header}}&lt;br /&gt;
&lt;br /&gt;
{{Languages|rock4/dev}}&lt;br /&gt;
&lt;br /&gt;
    [[rock4 | ROCK 4]] &amp;gt; [[rock4/dev | Development Guide]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This page describes development tips for ROCK Pi.&lt;br /&gt;
&lt;br /&gt;
* [[rockpi4/dev/usb-install | USB Installation]] describe how to use PC tools to install image on ROCK Pi 4.&lt;br /&gt;
* [[rockpi4/dev/spi-install | Install images to SPI flash]] describe how to write bootloader to SPI flash on ROCK Pi 4.&lt;br /&gt;
* [[rockpi4/dev/Debian | Build Debian]]&lt;br /&gt;
* [[rockpi4/dev/rootfs | replace your rootfs]]&lt;br /&gt;
* [[Yocto-layer-for-radxa-boards | Build Yocto ]]&lt;br /&gt;
* [[rockpi4/dev/kernel-4.4 | Build vendor kernel(Rockchip 4.4)]]&lt;br /&gt;
* [[rockpi4/dev/kernel-mainline | Build mainline kernel(kernel 5.x)]]&lt;br /&gt;
* [[rockpi4/dev/u-boot | U-boot ]]&lt;br /&gt;
* [[rockpi4/dev/u-boot/pxe | U-boot/PXE Boot ]]&lt;br /&gt;
* [[rockpi4/dev/usbnet | USB Device Network]]&lt;br /&gt;
* [[rockpi4/dev/rockpi-android-tv | Build Android (nougat) TV]]&lt;br /&gt;
* [[rockpi4/dev/serial-console | Serial Console]]&lt;br /&gt;
* [[rockpi4/dev/install-opencv | Install OpenCV]]&lt;br /&gt;
* [[rockpi4/dev/libmraa | Install Libmraa ]]&lt;br /&gt;
* [[rockpi4/dev/install-opencl | Install OpenCL ]]&lt;br /&gt;
* [[rockpi4/dev/apmode | Setting AP Mode ]]&lt;br /&gt;
* [[rockpi4/dev/monitor-mode | Setting WiFi Monitor Mode ]]&lt;br /&gt;
* [[rockpi4/dev/vs | Setting Up Visual Studio For ROCK Pi 4 ]]&lt;br /&gt;
* [[rockpi4/dev/compile-a-kernel-module-on-rockpi4 | Compile a kernel module on ROCK Pi 4]]&lt;br /&gt;
* [[rockpi4/dev/build-Armbian | Build Armbian ]]&lt;br /&gt;
* [[rockpi4/dev/adb | Using ADB]]&lt;br /&gt;
* [[rockpi4/dev/gpu-run-test-with-kernel-5.10 | GPU Run Test with Kernel 5.10]]&lt;br /&gt;
* [[rockpi4/dev | dev]] &amp;gt; [[rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10  | Linux5.10 Device Tree Overlays]]&lt;br /&gt;
* [[rockpi4/dev/headphone-jack-work-on-rock-pi-4cplus | Headphone work on ROCK Pi 4C Plus]]&lt;br /&gt;
* [[rockpi4/dev/usb-host-and-otg-switch-on-rock-pi-4 | USB host and otg switch on ROCK Pi 4]]&lt;br /&gt;
* [[rockpi4/dev/how-to-use-debian | How to use Debian]]&lt;br /&gt;
== Android ==&lt;br /&gt;
* [[Rockpi4/rockpi-android7 | Android7 Tablet(Support Raspberry Pi official 7&amp;quot; Display)]]&lt;br /&gt;
* [[Rockpi4/dev/rockpi-android-tv | Android7 TV]]&lt;br /&gt;
* [[Rockpi4/rockpi-android9 | Android9 Tablet]]&lt;br /&gt;
* [[Rockpi4/rockpi-android9 | Android9 TV]]&lt;br /&gt;
* [[Rockpi4/install/android-NVME | Android9 Run on M.2 NVME SSD]]&lt;br /&gt;
* [[Rockpi4/android-mraa | Android9 Mraa API]]&lt;br /&gt;
* [[Rockpi4/rockpi-android10 | Android10 Tablet]]&lt;br /&gt;
* [[Rockpi4/rockpi-android11 | Android11]]&lt;br /&gt;
* [https://forum.radxa.com/t/solve-google-play-device-is-not-play-protect-certified-issue/229 Solve Google Play Device is not Play Protect certified issue]&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	<entry>
		<id>https://wiki.radxa.com/Rockpi4/hardware/devtree_overlays_linux5.10</id>
		<title>Rockpi4/hardware/devtree overlays linux5.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.radxa.com/Rockpi4/hardware/devtree_overlays_linux5.10"/>
				<updated>2023-04-11T02:52:24Z</updated>
		
		<summary type="html">&lt;p&gt;Nascs: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{rockpi4_header}}&lt;br /&gt;
{{Languages|rockpi4/dev/devtree_overlays | Linux5.10 Device Tree Overlays}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    [[rockpi4 | ROCK Pi 4]] &amp;gt; [[rockpi4/dev | dev]] &amp;gt; [[rockpi4/dev/use-rsetup-to-enable-common-interface-with-kernel-5.10  | Linux5.10 Device Tree Overlays]]&lt;br /&gt;
&lt;br /&gt;
=== Device Tree Overlays===&lt;br /&gt;
&lt;br /&gt;
==== Introduction ====&lt;br /&gt;
&lt;br /&gt;
This directory contains Device Tree overlays. Device Tree makes it possible&lt;br /&gt;
to support many hardware configurations with a single kernel and without the&lt;br /&gt;
need to explicitly load or blacklisr kernel modules.&lt;br /&gt;
&lt;br /&gt;
On Radxa borad which uses linux5.10 kernel, you can use &amp;quot;rsetup&amp;quot; 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]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to enable a overlay  dtbo ====&lt;br /&gt;
===== usage =====&lt;br /&gt;
run &amp;quot;rsetup&amp;quot; command as below:&lt;br /&gt;
 radxa@rock-4c-plus:~$ rsetup&lt;br /&gt;
&lt;br /&gt;
 Please select an option below:                                               &lt;br /&gt;
                                                                             &lt;br /&gt;
                            System Maintaince                                 &lt;br /&gt;
                            Onboard Hardware                                  &lt;br /&gt;
                            Overlay Management                                &lt;br /&gt;
                            Connectivity                                     &lt;br /&gt;
                            User Settings                                     &lt;br /&gt;
                            Localization                                      &lt;br /&gt;
                            Common Tasks                                    &lt;br /&gt;
                             About                                            &lt;br /&gt;
                                                                         &lt;br /&gt;
                                                                             &lt;br /&gt;
                                                                             &lt;br /&gt;
               &amp;lt;Ok&amp;gt;                         &amp;lt;Cancel&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Overlay Management&amp;quot;   &lt;br /&gt;
&lt;br /&gt;
 Configure Device Tree Overlay  &lt;br /&gt;
                        Install overlay from source&lt;br /&gt;
                        Manage installed overlay &lt;br /&gt;
                        Rebuild boot configuration&lt;br /&gt;
                        Reset overlay libraries with kernel's default &lt;br /&gt;
                                                                         &lt;br /&gt;
                                                                             &lt;br /&gt;
              &amp;lt;Ok&amp;gt;                         &amp;lt;Cancel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Manage installed overlay&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    [ ] audioinjector-isolated-soundcard.dtbo                                &lt;br /&gt;
    [ ] cm3-sodimm-io-sata.dtbo                                              &lt;br /&gt;
    [ ] radxa-5inch-touchscreen-on-cm3-sodimm-io.dtbo                    &lt;br /&gt;
    [ ] radxa-5inch-touchscreen-on-rock-3a.dtbo                          &lt;br /&gt;
    [ ] radxa-5inch-touchscreen-on-rock-3b.dtbo                         &lt;br /&gt;
    [ ] radxa-cm3-io-dual-cameras-gc2053.dtbo                           &lt;br /&gt;
    [ ] radxa-cm3-io-hd101boe9365-display.dtbo                           &lt;br /&gt;
    [ ] radxa-cm3-io-headphone.dtbo                                     &lt;br /&gt;
    [ ] radxa-cm3-io-i2c0-hym8563.dtbo                                   &lt;br /&gt;
    [ ] radxa-cm3-io-pcie2x1.dtbo                                         &lt;br /&gt;
    [ ] radxa-cm3-io-radxa-10p1inch-display.dtbo                         &lt;br /&gt;
    [ ] radxa-cm3-io-sata1.dtbo                                          &lt;br /&gt;
    [ ] radxa-cm3-io-sata2.dtbo                                          &lt;br /&gt;
    [ ] radxa-cm3-io-sharp-lq133t1jw01-without-hdmi.dtbo                  &lt;br /&gt;
    [ ] radxa-cm3-raspcm4io-pcie2x1.dtbo                                 &lt;br /&gt;
    [ ] radxa-cm3-sodimm-io-raspberrypi-7inch-touchscreen.dtbo  &lt;br /&gt;
    [ ] radxa-cm3i-gmac1.dtbo                                            &lt;br /&gt;
    [ ] rk3399-dwc3-0-host.dtbo                                             &lt;br /&gt;
    [ ] rk3399-dwc3-0-otg.dtbo                                          &lt;br /&gt;
    [ ] rk3399-dwc3-0-peripheral.dtbo&lt;br /&gt;
    [ ] rk3399-i2c2.dtbo&lt;br /&gt;
    [ ] rk3399-i2c6.dtbo&lt;br /&gt;
    [ ] rk3399-i2c7.dtbo                                     &lt;br /&gt;
    [ ] rk3399-opp-1800.dtbo                                             &lt;br /&gt;
    [ ] rk3399-opp-2000.dtbo                                          &lt;br /&gt;
    [ ] rk3399-opp-2200.dtbo                                              &lt;br /&gt;
    [ ] rk3399-opp-2400.dtbo &lt;br /&gt;
    [ ] rk3399-pwm0.dtbo&lt;br /&gt;
    [ ] rk3399-pwm1.dtbo&lt;br /&gt;
    [ ] rk3399-spi-5-enc28j60.dtbo                                     &lt;br /&gt;
    [ ] rk3399-spi-gpio-enc28j60.dtbo&lt;br /&gt;
    [ ] rk3399-spi1-m1-cs0-spidev.dtbo                                 &lt;br /&gt;
    [ ] rk3399-spi2-m1-cs0-spidev.dtbo        &lt;br /&gt;
    [ ] rk3399-uart0.dtbo         &lt;br /&gt;
    [ ] rk3399-uart2.dtbo&lt;br /&gt;
    [ ] rk3399-uart4.dtbo       &lt;br /&gt;
    [ ] rk3399-w1-gpio4-d6.dtbo                             &lt;br /&gt;
    [ ] rk3568-can1-m0.dtbo                                                   &lt;br /&gt;
    [ ] rk3568-can1-m1.dtbo                                              &lt;br /&gt;
    [ ] rk3568-disable-gmac1.dtbo                                         &lt;br /&gt;
    [ ] rk3568-disable-npu.dtbo                                           &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart0.dtbo                                   &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart2m0.dtbo                                  &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart3m0.dtbo                                &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart5m1.dtbo                                &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart7m1.dtbo                                 &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart8m1.dtbo                               &lt;br /&gt;
    [ ] rk3568-fiq-debugger-uart9m1.dtbo                                  &lt;br /&gt;
    [ ] rk3568-i2c2-m0.dtbo  &lt;br /&gt;
                                                                         &lt;br /&gt;
                                                                             &lt;br /&gt;
              &amp;lt;Ok&amp;gt;                         &amp;lt;Cancel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select the overlays you want to load with the space bar, &lt;br /&gt;
&lt;br /&gt;
    [*] rk3399-uart0.dtbo  &lt;br /&gt;
&lt;br /&gt;
Overlay with a &amp;quot;*&amp;quot; indicates that it is enabled.&lt;br /&gt;
&lt;br /&gt;
reboot, to make overlays work&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====  uart2 =====&lt;br /&gt;
Select the &amp;quot;rk3399-uart2.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-uart2.dtbo&lt;br /&gt;
then reboot , the ttyS2 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  uart4 =====&lt;br /&gt;
Select the &amp;quot;rk3399-uart4.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-uart4.dtbo&lt;br /&gt;
then reboot , the ttyS4 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  i2c2 =====&lt;br /&gt;
Select the &amp;quot;rk3399-i2c2.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-i2c2.dtbo&lt;br /&gt;
then reboot , the i2c-2 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  i2c6 =====&lt;br /&gt;
Select the &amp;quot;rk3399-i2c6.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-i2c6.dtbo&lt;br /&gt;
then reboot , the i2c-6 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  i2c7 =====&lt;br /&gt;
Select the &amp;quot;rk3399-i2c7.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-i2c7.dtbo&lt;br /&gt;
then reboot , the i2c-7 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  spi1 =====&lt;br /&gt;
Select the &amp;quot;rk3399-spi1-m1-cs0-spidev.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-spi1-m1-cs0-spidev.dtbo&lt;br /&gt;
then reboot , the spi1.0 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  spi2 =====&lt;br /&gt;
Select the &amp;quot;rk3399-spi1-m1-cs0-spidev.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-spi2-m1-cs0-spidev.dtbo&lt;br /&gt;
then reboot , the spi2.0 device is generated in the /dev/ directory&lt;br /&gt;
&lt;br /&gt;
=====  pwm0 =====&lt;br /&gt;
Select the &amp;quot;rk3399-pwm0.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-pwm0.dtbo&lt;br /&gt;
then reboot , the pwmchip0 device is generated in the /sys/class/pwm/ directory&lt;br /&gt;
&lt;br /&gt;
=====  pwm1 =====&lt;br /&gt;
Select the &amp;quot;rk3399-pwm1.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-pwm1.dtbo&lt;br /&gt;
then reboot , the pwmchip1 device is generated in the /sys/class/pwm/ directory&lt;br /&gt;
&lt;br /&gt;
=====  one wire =====&lt;br /&gt;
Select the &amp;quot;rk3399-w1-gpio4-d6.dtbo&amp;quot; overlay with the space bar&lt;br /&gt;
    [*] rk3399-w1-gpio4-d6.dtbo&lt;br /&gt;
then reboot , the 28-80000028f6a0 device is generated in the /sys/bus/w1/devices/ directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to use a overylay written by yourselt ====&lt;br /&gt;
===== DTBO code specification =====&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
In our dtbo source file, you need add a new node named &amp;quot;matedata&amp;quot;, this node needs the following fields:&lt;br /&gt;
 * title: it's property is text, used to display in the rsetup menu, there is  no necessary to also indicate the supported development board.&lt;br /&gt;
 * 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.&lt;br /&gt;
 * category: text, Used to classify in the rsetup menu. At present, only 'display', 'camera' and 'misc' are defined&lt;br /&gt;
 * description: text, The functions and precautions of dtbo are briefly introduced, used to display dtbo when installing rsetup.&lt;br /&gt;
&lt;br /&gt;
===== get the sdk source =====&lt;br /&gt;
 [[https://github.com/radxa/rockchip-bsp SDK rockchip-bsp]] &lt;br /&gt;
install the tools&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install git device-tree-compiler build-essential&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====  get the source code and update it ===== &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b master https://github.com/radxa/rockchip-bsp.git&lt;br /&gt;
cd rockchip-bsp&lt;br /&gt;
git submodule init&lt;br /&gt;
git submodule update&lt;br /&gt;
cd rockchip-bsp&lt;br /&gt;
git checkout master&lt;br /&gt;
git fetch origin&lt;br /&gt;
git rebase origin/master&lt;br /&gt;
git submodule update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
overlay source code are located under the directory &amp;quot;rockchip-bsp/kerne/arch/arm64/boot/dts/rockchip/overlay/&amp;quot;, &lt;br /&gt;
&lt;br /&gt;
===== write overlay code =====&lt;br /&gt;
example:&lt;br /&gt;
rk3399-rock4-i2c7.dts&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/dts-v1/;&lt;br /&gt;
/plugin/;&lt;br /&gt;
&lt;br /&gt;
/ {&lt;br /&gt;
	metadata {&lt;br /&gt;
		title = &amp;quot;Enable i2c7 on ROCK 4 plus&amp;quot;;&lt;br /&gt;
		compatible = &amp;quot;radxa,rock-4c-plus&amp;quot;, &amp;quot;rockchip,rk3399&amp;quot;;&lt;br /&gt;
		category = &amp;quot;misc&amp;quot;;&lt;br /&gt;
		description = &amp;quot;Enable Radxa rock-4c-plus i2c7&amp;quot;;&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	fragment@0 {&lt;br /&gt;
		target = &amp;lt;&amp;amp;i2c7&amp;gt;;&lt;br /&gt;
		__overlay__ {&lt;br /&gt;
			status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
		};&lt;br /&gt;
	};&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== compile the dts to dtbo ===== &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rockchip-bsp/kernel$ make dtbs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Upload it to the board ===== &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp rk3399-rock4-i2c7.dts radxa@192.168.xx.xx:~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== move the dtbo to correct directory =====&lt;br /&gt;
radxa@rock-4c-plus:~$ sudo mv rk3399-rock4-i2c7.dtbo /boot/dtbo&lt;br /&gt;
&lt;br /&gt;
Then, use rsetup to check to whether that overlay is enabled, the steps are similar to &amp;quot;How to enable a overlay  dtbo&amp;quot; .&lt;br /&gt;
Finally, reboot the board, you will see i2c-7 under the /dev/ directory.&lt;/div&gt;</summary>
		<author><name>Nascs</name></author>	</entry>

	</feed>