<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-CN">
		<id>http://wiki.myzr.com.cn/index.php?action=history&amp;feed=atom&amp;title=MY-IMX6_Linux-3.0.35_GPIO_Development</id>
		<title>MY-IMX6 Linux-3.0.35 GPIO Development - 版本历史</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.myzr.com.cn/index.php?action=history&amp;feed=atom&amp;title=MY-IMX6_Linux-3.0.35_GPIO_Development"/>
		<link rel="alternate" type="text/html" href="http://wiki.myzr.com.cn/index.php?title=MY-IMX6_Linux-3.0.35_GPIO_Development&amp;action=history"/>
		<updated>2026-05-25T04:02:04Z</updated>
		<subtitle>本wiki的该页面的版本历史</subtitle>
		<generator>MediaWiki 1.27.1</generator>

	<entry>
		<id>http://wiki.myzr.com.cn/index.php?title=MY-IMX6_Linux-3.0.35_GPIO_Development&amp;diff=2086&amp;oldid=prev</id>
		<title>Admin：创建页面，内容为“&lt;div&gt;  = '''GPIO output &amp; input''' = GPIO output &amp; input take SD1_CLK leads as an example.&lt;br&gt;  == '''Modification “.h” file''' == 1）Check configuration for SD...”</title>
		<link rel="alternate" type="text/html" href="http://wiki.myzr.com.cn/index.php?title=MY-IMX6_Linux-3.0.35_GPIO_Development&amp;diff=2086&amp;oldid=prev"/>
				<updated>2018-07-24T01:09:36Z</updated>
		
		<summary type="html">&lt;p&gt;创建页面，内容为“&amp;lt;div&amp;gt;  = &amp;#039;&amp;#039;&amp;#039;GPIO output &amp;amp; input&amp;#039;&amp;#039;&amp;#039; = GPIO output &amp;amp; input take SD1_CLK leads as an example.&amp;lt;br&amp;gt;  == &amp;#039;&amp;#039;&amp;#039;Modification “.h” file&amp;#039;&amp;#039;&amp;#039; == 1）Check configuration for SD...”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= '''GPIO output &amp;amp; input''' =&lt;br /&gt;
GPIO output &amp;amp; input take SD1_CLK leads as an example.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Modification “.h” file''' ==&lt;br /&gt;
1）Check configuration for SD1_CLK in file.&amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -n &amp;quot;/PAD_SD1_CLK/p&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2）Configuration for SD1_CLK in comment header file.&amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -i &amp;quot;s/MX6Q_PAD_SD1_CLK/\/\/ &amp;amp;/g&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
3）Adding configuration for SD1_CLK in mx6q_sabresd_pads &amp;lt;br&amp;gt;&lt;br /&gt;
Configure SD1_CLK function as MX6Q_PAD_SD1_CLK__GPIO_1_20 &amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -i &amp;quot;/mx6q_sabresd_pads/a\\\t MX6Q_PAD_SD1_CLK__GPIO_1_20,&amp;quot; \&amp;lt;br&amp;gt;&lt;br /&gt;
arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
4）Check modified result&amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -n &amp;quot;/PAD_SD1_CLK/p&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Configure kernel''' ==&lt;br /&gt;
*Mamu position&amp;lt;br&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;  -*- GPIO Support  ---&amp;gt;  [*]   /sys/class/gpio/... (sysfs interface)&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:my_imx6_gpio_1.2.0.1.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Compilation''' ==&lt;br /&gt;
:make uImage&amp;lt;br&amp;gt;&lt;br /&gt;
== '''Re-program system and boot''' ==&lt;br /&gt;
== '''Device operation''' ==&lt;br /&gt;
&lt;br /&gt;
=== Check out gpio directory ===&lt;br /&gt;
GPIO led out can bee seen under /sys/class/gpio/ directory &amp;lt;br&amp;gt;&lt;br /&gt;
$ ls /sys/class/gpio/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
　　[[File:my_imx6_gpio_1.5.1.1.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Register GPIO to system ===&lt;br /&gt;
Register GPIO_1_20 to system with echo，then an extra gpio20 directory can be found under gpio directory.&amp;lt;br&amp;gt;&lt;br /&gt;
Tips：I.MX6 GPIO value is calculation this way（where grouped - 1） * 32 + order number，so lead number of GPIO_1_20 is（1 – 1） * 32 + 20 = 20.&amp;lt;br&amp;gt;&lt;br /&gt;
$ echo 20 &amp;gt; /sys/class/gpio/export&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
　　[[File:my_imx6_gpio_1.5.2.1.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===GPIO output control ===&lt;br /&gt;
*Set leads as output state &amp;lt;br&amp;gt;&lt;br /&gt;
$ echo out &amp;gt; /sys/class/gpio/gpio20/direction&amp;lt;br&amp;gt;&lt;br /&gt;
*Set lead output at high electrical level&amp;lt;br&amp;gt;&lt;br /&gt;
echo 1 &amp;gt; /sys/class/gpio/gpio20/value&amp;lt;br&amp;gt;&lt;br /&gt;
*Set lead output at low electrical level &amp;lt;br&amp;gt;&lt;br /&gt;
echo 0 &amp;gt; /sys/class/gpio/gpio20/value&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Set lead as input state ===&lt;br /&gt;
*Set lead as input state.&amp;lt;br&amp;gt;&lt;br /&gt;
echo in &amp;gt; /sys/class/gpio/gpio20/direction&amp;lt;br&amp;gt;&lt;br /&gt;
*Gain lead value&amp;lt;br&amp;gt;&lt;br /&gt;
cat /sys/class/gpio/gpio20/value&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Logout GPIO interface ===&lt;br /&gt;
*Logout GPIO_1_20&amp;lt;br&amp;gt;&lt;br /&gt;
echo 20 &amp;gt; /sys/class/gpio/unexport&amp;lt;br&amp;gt;&lt;br /&gt;
= '''GPIO LED''' =&lt;br /&gt;
----&lt;br /&gt;
Instruction：take GPIO LED以PAD NANDF_CS0 as example.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Enter kernel directory''' ==&lt;br /&gt;
$ cd ~/MY-I.MX6/linux-3.0.35/&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:my_imx6_gpio_2.1.0.1.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Add code''' ==&lt;br /&gt;
=== Modification.h file ===&lt;br /&gt;
1）Check out configuration for NANDF_CS0 in header file.&amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -n &amp;quot;/PAD_NANDF_CS0/p&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2）Comment configuration for NANDF_CS0 in header file.&amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -i &amp;quot;s/MX6Q_PAD_NANDF_CS0/\/\/ &amp;amp;/g&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
3）Add configuration for NANDF_CS0 in mx6q_sabresd_pads.&amp;lt;br&amp;gt;&lt;br /&gt;
Configure NANDF_CS0 function as MX6Q_PAD_NANDF_CS0__GPIO_6_11.&amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -i &amp;quot;/mx6q_sabresd_pads/a\\\tMX6Q_PAD_NANDF_CS0__GPIO_6_11,&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4）Check out modified result.&amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -n &amp;quot;/PAD_NANDF_CS0/p&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modification.c file ===&lt;br /&gt;
1）Check out whether GPIO is used repeatedly in .c file&amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -n '/IMX_GPIO_NR(6,.11)/p' arch/arm/mach-mx6/board-mx6q_sabresd.c&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2）Add macro definition of GPIOin .c file&amp;lt;br&amp;gt;&lt;br /&gt;
Add #define SABRESD_USER_LED        IMX_GPIO_NR(6, 11) &amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ GPIO_DEFINE=&amp;quot;#define SABRESD_USER_LED\tIMX_GPIO_NR(6, 11)&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -i &amp;quot;1,/#define/{/#define/s/#define/${GPIO_DEFINE}\n&amp;amp;/}&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.c&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2）Check out data definition with gpio_led&amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -n '/struct gpio_led /,/\}/p' arch/arm/mach-mx6/board-mx6q_sabresd.c&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
3）Add data definition of user_led&amp;lt;br&amp;gt;&lt;br /&gt;
static struct gpio_led imx6q_gpio_leds[] = {&amp;lt;br&amp;gt;&lt;br /&gt;
　　　　GPIO_LED(SABRESD_USER_LED, &amp;quot;user_led&amp;quot;, 0, 1,&amp;lt;br&amp;gt;&lt;br /&gt;
　　　　　　　　&amp;quot;charger&amp;quot;),&amp;lt;br&amp;gt;&lt;br /&gt;
}；&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Kernel configuration''' ==&lt;br /&gt;
*manu position&amp;lt;br&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;  [*] LED Support  ---&amp;gt;  &amp;lt;*&amp;gt;   LED Support for GPIO connected LEDs&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:my_imx6_gpio_2.3.0.1.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Compilation''' ==&lt;br /&gt;
make uImage&amp;lt;br&amp;gt;&lt;br /&gt;
== '''Re-program system and boot''' ==&lt;br /&gt;
== '''GPIO_LED operation''' ==&lt;br /&gt;
=== Device file directory ===&lt;br /&gt;
To be saved under /sys/class/leds/user_led directory after booting system，which can be seen with ls.&amp;lt;br&amp;gt;&lt;br /&gt;
$ ls /sys/class/leds/user_led&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
　　[[File:my_imx6_gpio_2.6.1.1.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Operating example ===&lt;br /&gt;
1）Set NANDF_CS0 as 1&amp;lt;br&amp;gt;&lt;br /&gt;
$ echo 1 &amp;gt; /sys/class/leds/user_led/brightness&amp;lt;br&amp;gt;&lt;br /&gt;
2）Set NANDF_CS0 as 0&amp;lt;br&amp;gt;&lt;br /&gt;
$ echo 0 &amp;gt; /sys/class/leds/user_led/brightness&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= '''GPIO key''' =&lt;br /&gt;
----&lt;br /&gt;
GPIO key by taking GPIO_4、EIM_BCLK、CSI0_DATA_EN as example，are separetely SW2，SW3和SW4 in schematic.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Modification.h file''' ==&lt;br /&gt;
1）Check out configuration for PAD in header file.&amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -n &amp;quot;/PAD_GPIO_4/p&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -n &amp;quot;/PAD_EIM_BCLK/p&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -n &amp;quot;/PAD_CSI0_DATA_EN/p&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2）Comment configuration for PAD in header file.&amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -i &amp;quot;s/MX6Q_PAD_GPIO_4/\/\/ &amp;amp;/g&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -i &amp;quot;s/MX6Q_PAD_EIM_BCLK/\/\/ &amp;amp;/g&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -i &amp;quot;s/MX6Q_PAD_CSI0_DATA_EN/\/\/ &amp;amp;/g&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
3）Add configuration for PAD in mx6q_sabresd_pads.&amp;lt;br&amp;gt;&lt;br /&gt;
Configure GPIO_4 function as MX6Q_PAD_GPIO_4__GPIO_1_4.&amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -i &amp;quot;/mx6q_sabresd_pads/a\\\tMX6Q_PAD_GPIO_4__GPIO_1_4,&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
Configure EIM_BCLK function as MX6Q_PAD_EIM_BCLK__GPIO_6_31.&amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -i &amp;quot;/mx6q_sabresd_pads/a\\\tMX6Q_PAD_EIM_BCLK__GPIO_6_31,&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
Configrue PAD function of CSI0_DATA_EN as MX6Q_PAD_CSI0_DATA_EN__GPIO_5_20.&amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -i &amp;quot;/mx6q_sabresd_pads/a\\\tMX6Q_PAD_CSI0_DATA_EN__GPIO_5_20,&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
4）Check out modified result&amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -n &amp;quot;/PAD_GPIO_4/p&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -n &amp;quot;/PAD_EIM_BCLK/p&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -n &amp;quot;/PAD_CSI0_DATA_EN/p&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.h&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Modification.c file''' ==&lt;br /&gt;
1）Check out whether GPIO is used repeatedly in .c file.&amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -n '/IMX_GPIO_NR(1,.4)/p' arch/arm/mach-mx6/board-mx6q_sabresd.c&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -n '/IMX_GPIO_NR(6,.31)/p' arch/arm/mach-mx6/board-mx6q_sabresd.c&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -n '/IMX_GPIO_NR(5,.20)/p' arch/arm/mach-mx6/board-mx6q_sabresd.c&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2）Add macro definition of GPIO in .c file.&amp;lt;br&amp;gt;&lt;br /&gt;
*MX6Q_PAD_GPIO_4__GPIO_1_4&amp;lt;br&amp;gt;&lt;br /&gt;
In .c file add #define SABRESD_POWER_OFF    IMX_GPIO_NR(1, 4))&amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ GPIO_DEFINE=&amp;quot;#define SABRESD_POWER_OFF\tIMX_GPIO_NR(1, 4)&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -i &amp;quot;1,/#define/{/#define/s/#define/${GPIO_DEFINE}\n&amp;amp;/}&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.c&amp;lt;br&amp;gt;&lt;br /&gt;
*MX6Q_PAD_CSI0_DATA_EN__GPIO_5_20&amp;lt;br&amp;gt;&lt;br /&gt;
In .c file add #define SABRESD_VOLUME_UP   IMX_GPIO_NR(6, 31).&amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ GPIO_DEFINE=&amp;quot;#define SABRESD_VOLUME_UP\tIMX_GPIO_NR(6, 31)&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -i &amp;quot;1,/#define/{/#define/s/#define/${GPIO_DEFINE}\n&amp;amp;/}&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.c&amp;lt;br&amp;gt;&lt;br /&gt;
*MX6Q_PAD_CSI0_DATA_EN__GPIO_5_20&amp;lt;br&amp;gt;&lt;br /&gt;
In .c file add #define SABRESD_VOLUME_DN   IMX_GPIO_NR(5, 20)) &amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ GPIO_DEFINE=&amp;quot;#define SABRESD_VOLUME_DN\tIMX_GPIO_NR(5, 20)&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -i &amp;quot;1,/#define/{/#define/s/#define/${GPIO_DEFINE}\n&amp;amp;/}&amp;quot; arch/arm/mach-mx6/board-mx6q_sabresd.c&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
3）Chech out data definition with gpio_keys_button.&amp;lt;br&amp;gt;&lt;br /&gt;
Example：&amp;lt;br&amp;gt;&lt;br /&gt;
$ sed -n '/gpio_keys_button/,/\}/p' arch/arm/mach-mx6/board-mx6q_sabresd.c&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
4）Add data definition for volume-up、volume-down、power.&amp;lt;br&amp;gt;&lt;br /&gt;
static struct gpio_keys_button imx6q_buttons[] = {&amp;lt;br&amp;gt;&lt;br /&gt;
GPIO_BUTTON(SABRESD_VOLUME_UP, KEY_VOLUMEUP, 1, &amp;quot;volume-up&amp;quot;, 0, 1),&amp;lt;br&amp;gt;&lt;br /&gt;
GPIO_BUTTON(SABRESD_VOLUME_DN, KEY_VOLUMEDOWN, 1, &amp;quot;volume-down&amp;quot;, 0, 1),&amp;lt;br&amp;gt;&lt;br /&gt;
GPIO_BUTTON(SABRESD_POWER_OFF, KEY_POWER, 1, &amp;quot;power&amp;quot;, 1, 1),&amp;lt;br&amp;gt;&lt;br /&gt;
};&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Kernel configuration''' ==&lt;br /&gt;
*manu position：&amp;lt;br&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;  Input device support  ---&amp;gt;  [*]   Keyboards  ---&amp;gt;  &amp;lt;*&amp;gt;   GPIO Buttons&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:my_imx6_gpio_3.2.0.1.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== '''Compilation''' ==&lt;br /&gt;
make uImage&amp;lt;br&amp;gt;&lt;br /&gt;
== '''Re-program system and boot''' ==&lt;br /&gt;
== '''GPIO key operation''' ==&lt;br /&gt;
===GPIO_KEYS device ===&lt;br /&gt;
To be saved under /sys/devices/platform/gpio-keys directory after booting system，which can be seen with ls.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
　　[[File:my_imx6_gpio_3.5.1.1.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
$ ls /sys/devices/platform/gpio-keys&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Check out device information ===&lt;br /&gt;
Relatie information can be found in proc file system.&amp;lt;br&amp;gt;&lt;br /&gt;
$ cat /proc/bus/input/devices&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
　　[[File:my_imx6_gpio_3.5.2.1.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Device file ===&lt;br /&gt;
Event0 is matched up with device file corresponding to gpio key，check out with ls.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
　　[[File:my_imx6_gpio_3.5.3.1.jpg]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
$ ls /dev/input/event0 –la&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Operating example ===&lt;br /&gt;
Refer to Linux test manual.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>