<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://ess-wiki.advantech.com.tw/wiki/index.php?action=history&amp;feed=atom&amp;title=How_to_use_GPIO_RK3576</id>
		<title>How to use GPIO RK3576 - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://ess-wiki.advantech.com.tw/wiki/index.php?action=history&amp;feed=atom&amp;title=How_to_use_GPIO_RK3576"/>
		<link rel="alternate" type="text/html" href="https://ess-wiki.advantech.com.tw/wiki/index.php?title=How_to_use_GPIO_RK3576&amp;action=history"/>
		<updated>2026-05-02T21:11:13Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.28.3</generator>

	<entry>
		<id>https://ess-wiki.advantech.com.tw/wiki/index.php?title=How_to_use_GPIO_RK3576&amp;diff=40900&amp;oldid=prev</id>
		<title>Yunjin.jiang at 04:00, 24 September 2025</title>
		<link rel="alternate" type="text/html" href="https://ess-wiki.advantech.com.tw/wiki/index.php?title=How_to_use_GPIO_RK3576&amp;diff=40900&amp;oldid=prev"/>
				<updated>2025-09-24T04:00:49Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 04:00, 24 September 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br/&amp;gt; &lt;/del&gt;= Configuration =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Configuration =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The RK3576&amp;amp;nbsp;bank/bit notation for GPIOs must be formed&amp;amp;nbsp;as&amp;amp;nbsp;&amp;quot;GPIO&amp;lt;GPIO_bank&amp;gt;_&amp;lt;gpio_bit&amp;gt;&amp;quot;&amp;amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The RK3576&amp;amp;nbsp;bank/bit notation for GPIOs must be formed&amp;amp;nbsp;as&amp;amp;nbsp;&amp;quot;GPIO&amp;lt;GPIO_bank&amp;gt;_&amp;lt;gpio_bit&amp;gt;&amp;quot;&amp;amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Yunjin.jiang</name></author>	</entry>

	<entry>
		<id>https://ess-wiki.advantech.com.tw/wiki/index.php?title=How_to_use_GPIO_RK3576&amp;diff=40899&amp;oldid=prev</id>
		<title>Yunjin.jiang: Created page with &quot; &lt;br/&gt; = Configuration =  The RK3576&amp;nbsp;bank/bit notation for GPIOs must be formed&amp;nbsp;as&amp;nbsp;&quot;GPIO&lt;GPIO_bank&gt;_&lt;gpio_bit&gt;&quot;&amp;nbsp;  The numeric value of GPIO&amp;nbsp;is calcula...&quot;</title>
		<link rel="alternate" type="text/html" href="https://ess-wiki.advantech.com.tw/wiki/index.php?title=How_to_use_GPIO_RK3576&amp;diff=40899&amp;oldid=prev"/>
				<updated>2025-09-24T03:59:03Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot; &amp;lt;br/&amp;gt; = Configuration =  The RK3576 bank/bit notation for GPIOs must be formed as &amp;quot;GPIO&amp;lt;GPIO_bank&amp;gt;_&amp;lt;gpio_bit&amp;gt;&amp;quot;   The numeric value of GPIO is calcula...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; = Configuration =&lt;br /&gt;
&lt;br /&gt;
The RK3576&amp;amp;nbsp;bank/bit notation for GPIOs must be formed&amp;amp;nbsp;as&amp;amp;nbsp;&amp;quot;GPIO&amp;lt;GPIO_bank&amp;gt;_&amp;lt;gpio_bit&amp;gt;&amp;quot;&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
The numeric value of GPIO&amp;amp;nbsp;is calculated as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;32 x (gpio_bank) + gpio_bit&amp;lt;br/&amp;gt; &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gpio_bit&amp;amp;nbsp;: A0～A7 0-7 B0～B7 8-15 C0～C7 16-23 D0～D7 24-31&lt;br /&gt;
&lt;br /&gt;
E.g. GPIO3_A0&amp;amp;nbsp;becomes 96&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== AOM-3841 ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| GPIO Number&lt;br /&gt;
| GPIO formed&lt;br /&gt;
| Numeric Representation&lt;br /&gt;
|-&lt;br /&gt;
| GPIO3&lt;br /&gt;
| &amp;amp;nbsp;GPIO0_B0&lt;br /&gt;
| 8&lt;br /&gt;
|-&lt;br /&gt;
| GPIO4&lt;br /&gt;
| &amp;amp;nbsp;GPIO4_C5&lt;br /&gt;
| 149&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Test =&lt;br /&gt;
&lt;br /&gt;
Here we take GPIO3&amp;amp;nbsp;of AOM-3841 as an example.&lt;br /&gt;
&lt;br /&gt;
Export GPIO then you can use control GPIO from userr space through sysfs&lt;br /&gt;
&lt;br /&gt;
Export GPIO3&lt;br /&gt;
&amp;lt;pre&amp;gt;# echo 8 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set GPIO direction to in/out&lt;br /&gt;
&amp;lt;pre&amp;gt;# echo &amp;quot;out&amp;quot; &amp;gt; /sys/class/gpio/gpio8/direction&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set GPIO value 0/1 if GPIO pin define is output&lt;br /&gt;
&amp;lt;pre&amp;gt;#  echo 1 &amp;gt; /sys/class/gpio/gpio8/value&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Used as IRQ signal&lt;br /&gt;
&lt;br /&gt;
Note:You have to configure GPIO to input&lt;br /&gt;
&amp;lt;pre&amp;gt;#  echo &amp;quot;rising&amp;quot; &amp;gt; /sys/class/gpio/gpio8/edge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*rising: Trigger on rising edge &lt;br /&gt;
*falling: Trigger on falling edge &lt;br /&gt;
*both: Trigger on both edges &lt;br /&gt;
*none: Disable interrupt on both edges &lt;br /&gt;
&lt;br /&gt;
Unexport GPIO3&lt;br /&gt;
&amp;lt;pre&amp;gt;# echo 8 &amp;gt; /sys/class/gpio/unexport&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Test'''&lt;br /&gt;
&lt;br /&gt;
GPIO3 and GPIO4 of AOM-3841 are taken as an example:&lt;br /&gt;
&lt;br /&gt;
*Connect GPIO3 and GPIO4 &lt;br /&gt;
*Export GPIO3 and GPIO4 &lt;br /&gt;
&amp;lt;pre&amp;gt;# echo 8 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
# echo 149 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Set GPIO3 to output &lt;br /&gt;
&amp;lt;pre&amp;gt;# echo &amp;quot;out&amp;quot; &amp;gt; /sys/class/gpio/gpio8/direction&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Set GPIO4 to input &lt;br /&gt;
&amp;lt;pre&amp;gt;# echo &amp;quot;in&amp;quot; &amp;gt; /sys/class/gpio/gpio149/direction&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Change GPIO3 to 1 and read GPIO4 value &lt;br /&gt;
&amp;lt;pre&amp;gt;# echo 1 &amp;gt; /sys/class/gpio/gpio8/value&lt;br /&gt;
# cat /sys/class/gpio/gpio149/value &lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Change GPIO3 to 0 and read GPIO4 value &lt;br /&gt;
&amp;lt;pre&amp;gt;# echo 0 &amp;gt; /sys/class/gpio/gpio8/value&lt;br /&gt;
# cat /sys/class/gpio/gpio149/value &lt;br /&gt;
0&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Yunjin.jiang</name></author>	</entry>

	</feed>