<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>i.MX ProcessorsのトピックRe: how to access GPIO on imx28</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/how-to-access-GPIO-on-imx28/m-p/230449#M17216</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;General consideration are as following.&lt;BR /&gt; &lt;BR /&gt; Although you can develop your own driver to control GPIOs inside kernel space, there is a much simpler way for accessing GPIOs from user space. When timing requirements are not an issue, you are able to use GPIO-SYSFS.&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;SYSFS is a virtual file system that exports some kernel internal framework functionalities to user space and GPIO is one of the frameworks that can have functionalities exported through SYSFS.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt; &lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;The GPIO-SYSFS feature is available in all mainline kernels from 2.6.27 onwards.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;Configuring Kernel to export GPIO through SYSFS&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;To enable GPIO in SYSFS, select the following kernel option:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;Device Drivers ---&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --- GPIO Support&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [*] /sys/class/gpio/... (sysfs interface)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;If you are using i.MX233 or i.MX28, after recompiling the kernel, do not forget to generate boot streams again, &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;because this is not automatic even in ltib. Be sure that the pins you will try to use are really accessible as GPIO pins &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;and were not requested by the kernel (gpio_request). If pin was gpio_request'ed, you will need to gpio_export the same &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;pin inside the kernel in order to have it accessible through SYSFS. If pin is not set as GPIO by default, you will need to set &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;IO MUX in the proper file inside &amp;lt;kernel&amp;gt;/arch/arm/mach-XXX. For i.MX28 EVK this is &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&lt;BR /&gt; &amp;lt;ltib_dir&amp;gt;/rpm/BUILD/linux/arch/arm/mach-mx28/mx28evk_pins.c&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;Accessing GPIO in user space&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;After enabling GPIO-SYSFS feature, you can boot your device with the new kernel to make some tests.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;First you need to export the GPIO you want to test to the user space:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;echo XX &amp;gt; /sys/class/gpio/export&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;XX shall be determined by the following algorithm:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;GPIOA_[B] is the GPIO you want to export, where "A" is the GPIO bank and "B" is the offset of the pin in the bank.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;if the first available GPIO bank is 0 // (iMX.28, for example)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; XX = A*32 + B;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;else // first GPIO bank is 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; XX = (A-1)*32 + B;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;After exporting a GPIO pin, you shall be able to see the GPIO interface exported to:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;/sys/class/gpio/gpioXX&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;Through this interface, you are now able to do things like:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;# Reading the pin value&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;cat /sys/class/gpio/gpioXX/value&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;# Changing pin direction&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;echo in &amp;gt; /sys/class/gpio/gpioXX/direction&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;echo out &amp;gt; /sys/class/gpio/gpioXX/direction&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;# Toggling GPIO output level&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;echo 0 &amp;gt; /sys/class/gpio/gpioXX/value&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;echo 1 &amp;gt; /sys/class/gpio/gpioXX/value&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;It is important to note that through the GPIO virtual filesystem it is only possible to deal with &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;one GPIO pin at a time (per command). &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 27 Nov 2013 05:47:24 GMT</pubDate>
    <dc:creator>Yuri</dc:creator>
    <dc:date>2013-11-27T05:47:24Z</dc:date>
    <item>
      <title>how to access GPIO on imx28</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-access-GPIO-on-imx28/m-p/230448#M17215</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi I'm developing with imx28 (i.MX28) platform. BSP version is L2.6.35_10.12.01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'd like to access gpio port on user space.&lt;/P&gt;&lt;P&gt;So I did configuration of kernel. And I checked config file that show the flag "CONFIG_GPIO_SYSFS=y".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;But I can't see the sysfs on /sys/class/gpio.&lt;/SPAN&gt; This is my NFS mounted directory of Ubuntu host.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal, monaco;"&gt;root@freescale /sys/class$ ls&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: terminal, monaco; font-size: 8pt;"&gt;backlight&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; input&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; net&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scsi_device&amp;nbsp;&amp;nbsp; vc&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: terminal, monaco; font-size: 8pt;"&gt;bdi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; leds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; power_supply&amp;nbsp; scsi_disk&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; video4linux&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: terminal, monaco; font-size: 8pt;"&gt;block&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mdio_bus&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; raw&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scsi_host&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vtconsole&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: terminal, monaco; font-size: 8pt;"&gt;bsg&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mem&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sound&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: terminal, monaco; font-size: 8pt;"&gt;firmware&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; misc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; regulator&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spi_master&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: terminal, monaco; font-size: 8pt;"&gt;graphics&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mmc_host&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rfkill&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tty&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; font-family: terminal, monaco;"&gt;i2c-adapter&amp;nbsp;&amp;nbsp; mtd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rtc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ubi&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After the configuration I rebuild the image. The image name rebuilt is rootfs.ext2.gz.&lt;/P&gt;&lt;P&gt;This is copy to NFS directory (/tools/rootfs).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can anybody tell me how to access &lt;STRONG&gt;/sys/class/gpio&lt;/STRONG&gt; sysfs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Nov 2013 02:39:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-access-GPIO-on-imx28/m-p/230448#M17215</guid>
      <dc:creator>yongkimin</dc:creator>
      <dc:date>2013-11-27T02:39:43Z</dc:date>
    </item>
    <item>
      <title>Re: how to access GPIO on imx28</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-access-GPIO-on-imx28/m-p/230449#M17216</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;General consideration are as following.&lt;BR /&gt; &lt;BR /&gt; Although you can develop your own driver to control GPIOs inside kernel space, there is a much simpler way for accessing GPIOs from user space. When timing requirements are not an issue, you are able to use GPIO-SYSFS.&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;SYSFS is a virtual file system that exports some kernel internal framework functionalities to user space and GPIO is one of the frameworks that can have functionalities exported through SYSFS.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt; &lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;The GPIO-SYSFS feature is available in all mainline kernels from 2.6.27 onwards.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;Configuring Kernel to export GPIO through SYSFS&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;To enable GPIO in SYSFS, select the following kernel option:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;Device Drivers ---&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --- GPIO Support&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [*] /sys/class/gpio/... (sysfs interface)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;If you are using i.MX233 or i.MX28, after recompiling the kernel, do not forget to generate boot streams again, &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;because this is not automatic even in ltib. Be sure that the pins you will try to use are really accessible as GPIO pins &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;and were not requested by the kernel (gpio_request). If pin was gpio_request'ed, you will need to gpio_export the same &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;pin inside the kernel in order to have it accessible through SYSFS. If pin is not set as GPIO by default, you will need to set &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;IO MUX in the proper file inside &amp;lt;kernel&amp;gt;/arch/arm/mach-XXX. For i.MX28 EVK this is &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&lt;BR /&gt; &amp;lt;ltib_dir&amp;gt;/rpm/BUILD/linux/arch/arm/mach-mx28/mx28evk_pins.c&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;Accessing GPIO in user space&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;After enabling GPIO-SYSFS feature, you can boot your device with the new kernel to make some tests.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;First you need to export the GPIO you want to test to the user space:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;echo XX &amp;gt; /sys/class/gpio/export&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;XX shall be determined by the following algorithm:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;GPIOA_[B] is the GPIO you want to export, where "A" is the GPIO bank and "B" is the offset of the pin in the bank.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;if the first available GPIO bank is 0 // (iMX.28, for example)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; XX = A*32 + B;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;else // first GPIO bank is 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; XX = (A-1)*32 + B;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;After exporting a GPIO pin, you shall be able to see the GPIO interface exported to:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;/sys/class/gpio/gpioXX&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;Through this interface, you are now able to do things like:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;# Reading the pin value&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;cat /sys/class/gpio/gpioXX/value&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;# Changing pin direction&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;echo in &amp;gt; /sys/class/gpio/gpioXX/direction&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;echo out &amp;gt; /sys/class/gpio/gpioXX/direction&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;# Toggling GPIO output level&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;echo 0 &amp;gt; /sys/class/gpio/gpioXX/value&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;echo 1 &amp;gt; /sys/class/gpio/gpioXX/value&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;It is important to note that through the GPIO virtual filesystem it is only possible to deal with &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Verdana','sans-serif';"&gt;one GPIO pin at a time (per command). &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Nov 2013 05:47:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-access-GPIO-on-imx28/m-p/230449#M17216</guid>
      <dc:creator>Yuri</dc:creator>
      <dc:date>2013-11-27T05:47:24Z</dc:date>
    </item>
    <item>
      <title>Re: Re: how to access GPIO on imx28</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-access-GPIO-on-imx28/m-p/230450#M17217</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you Yuri.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I did Kernel Configuration for GPIO. I checked in configuration files in ./config directory.&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier;"&gt;ykmin@ubuntu:~/L2.6.35_10.12.01_ER_source/LTIB/ltib$ grep -rwn "CONFIG_GPIO_SYSFS" ./config&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: 'courier new', courier; font-size: 8pt;"&gt;./config/platform/imx/imx28evk_updater_defconfig.dev:853:# CONFIG_GPIO_SYSFS is not set&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier;"&gt;./config/platform/imx/imx28evk_defconfig.dev:1077:&lt;SPAN style="color: #3366ff;"&gt;CONFIG_GPIO_SYSFS=y&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I did rebuild the image &lt;STRONG style="color: #3366ff;"&gt;./ltib -f&lt;/STRONG&gt; command. (Is this right?)&lt;/P&gt;&lt;P&gt;I don't modify yet in &lt;SPAN style="color: #3d3d3d; font-family: Verdana, sans-serif;"&gt;&amp;lt;ltib_dir&amp;gt;/rpm/BUILD/linux/arch/arm/mach-mx28/mx28evk_pins.c&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rebuilded image (rootfs.ext2.gz) copy to NFS directory (/tools/rootfs).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I connect my board to NFS directory and I check if /sys/class/gpio sysfs. But not founded.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you tell me what mean you tell me.&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-family: Verdana, sans-serif;"&gt;If pin was gpio_request'ed, you will need to gpio_export the same&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-family: Verdana, sans-serif;"&gt;pin inside the kernel in order to have it accessible through SYSFS.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Nov 2013 07:27:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-access-GPIO-on-imx28/m-p/230450#M17217</guid>
      <dc:creator>yongkimin</dc:creator>
      <dc:date>2013-11-27T07:27:26Z</dc:date>
    </item>
    <item>
      <title>Re: how to access GPIO on imx28</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-access-GPIO-on-imx28/m-p/230451#M17218</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I solved this.&lt;/P&gt;&lt;P&gt;At first I say thanks to &lt;STRONG&gt;Yuri Muhin&lt;/STRONG&gt; and &lt;STRONG&gt;Emanuele Coli&lt;/STRONG&gt; answer (&lt;A _jive_internal="true" href="https://community.nxp.com/message/312813#312813"&gt;https://community.freescale.com/message/312813#312813&lt;/A&gt;).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;apply the configuration &lt;STRONG&gt;CONFIG_GPIO_SYSFS=y&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;after build the image(&lt;STRONG&gt;uImage&lt;/STRONG&gt;) and update tftp directory.&lt;/P&gt;&lt;P&gt;and then you will see the &lt;STRONG&gt;/sys/class/gpio&lt;/STRONG&gt; sysfs.&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;change the source code /arch/arm/mach-mx28/mx28evk_pins.c In my case&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: 'times new roman', times; font-size: 8pt;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; line-height: 1.5em; font-family: 'times new roman', times;"&gt;&amp;nbsp; .name = "SSP0_DATA4",&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; line-height: 1.5em; font-family: 'times new roman', times;"&gt;&amp;nbsp; .id = PINID_SSP0_DATA4,&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; line-height: 1.5em; font-family: 'times new roman', times;"&gt;&amp;nbsp; .fun = PIN_GPIO,&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; line-height: 1.5em; font-family: 'times new roman', times;"&gt;&amp;nbsp; .strength = PAD_4MA,&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; line-height: 1.5em; font-family: 'times new roman', times;"&gt;&amp;nbsp; .voltage = PAD_3_3V,&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; line-height: 1.5em; font-family: 'times new roman', times;"&gt;&amp;nbsp; .pullup = 1,&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; line-height: 1.5em; font-family: 'times new roman', times;"&gt;&amp;nbsp; .drive = 1,&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; line-height: 1.5em; font-family: 'times new roman', times;"&gt;&amp;nbsp; .pull = 1,&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; line-height: 1.5em; font-family: 'times new roman', times;"&gt;&amp;nbsp; .data = 1,&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-size: 8pt; line-height: 1.5em; font-family: 'times new roman', times;"&gt;&amp;nbsp; .output = 1,&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="line-height: 1.5em; font-size: 8pt; font-family: 'times new roman', times;"&gt; },&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and after modify the source code call the &lt;STRONG&gt;gpio_export&lt;/STRONG&gt; function like as.&lt;/P&gt;&lt;P style="margin-left: 20.0pt;"&gt;&lt;SPAN lang="EN-US" style="font-size: 8.0pt; font-family: Consolas;"&gt;status = gpio_request(MXS_PIN_TO_GPIO(PINID_SSP0_DATA4), "GPS_RESET");&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 20.0pt;"&gt;&lt;SPAN lang="EN-US" style="font-size: 8.0pt; font-family: Consolas;"&gt;/* already requested ? */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 20.0pt;"&gt;&lt;SPAN lang="EN-US" style="font-size: 8.0pt; font-family: Consolas;"&gt;if (status == -EBUSY) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 20.0pt;"&gt;&lt;SPAN lang="EN-US" style="font-size: 8.0pt; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;gpio_export&lt;/STRONG&gt;(MXS_PIN_TO_GPIO(PINID_SSP0_DATA4), false);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 20.0pt;"&gt;&lt;SPAN lang="EN-US" style="font-size: 8.0pt; font-family: Consolas;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;In my case without this I can't see /sys/class/gpio/gpioXX.&lt;/P&gt;&lt;P style="margin-left: 20.0pt;"&gt;&lt;SPAN lang="EN-US" style="font-size: 8.0pt; font-family: Consolas;"&gt;root@freescale /sys/class/gpio$ ls&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 20.0pt;"&gt;&lt;SPAN lang="EN-US" style="font-size: 8.0pt; font-family: Consolas;"&gt;export&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpiochip0&amp;nbsp;&amp;nbsp;&amp;nbsp; gpiochip32 gpiochip96&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: 20.0pt;"&gt;&lt;SPAN lang="EN-US" style="font-size: 8.0pt; font-family: Consolas;"&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN lang="EN-US" style="font-size: 8.0pt; font-family: Consolas;"&gt;gpio68 &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN lang="EN-US" style="font-size: 8.0pt; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpiochip128&amp;nbsp; gpiochip64 unexport&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now I can change the value on GPIO using this command.&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;root@freescale /module_test$ echo 0 &amp;gt; /sys/class/gpio/gpio68/value&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;root@freescale /module_test$ echo 1 &amp;gt; /sys/class/gpio/gpio68/value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I did verify that with Oscilloscpe. I hope this report make a help to others.&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Dec 2013 04:19:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-access-GPIO-on-imx28/m-p/230451#M17218</guid>
      <dc:creator>yongkimin</dc:creator>
      <dc:date>2013-12-06T04:19:42Z</dc:date>
    </item>
  </channel>
</rss>

