<?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>topic Re: Simple GPIO Example - quandry in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458783#M71867</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Javier,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your&amp;nbsp; code is not good enough, every time please don't modify&amp;nbsp; the headers.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;In device tree for pinctl,&amp;nbsp; 0x80000000 means&amp;nbsp;&amp;nbsp; no pin config need &lt;BR /&gt;And 0x40000000&amp;nbsp;means&amp;nbsp; set SION .&lt;BR /&gt;So the correct change should be as following in imx6ul-14x14-evk.dts:&lt;/P&gt;&lt;P&gt;MX6UL_PAD_CSI_DATA01__GPIO4_IO22&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x40000000&lt;/P&gt;&lt;P&gt;Here is the test result:&lt;/P&gt;&lt;P&gt;Before set SION:&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# /unit_tests/memtool IOMUXC.SW_MUX_CTL_PAD_CSI_DATA01&lt;BR /&gt;SOC: i.MX6UL&lt;BR /&gt;IOMUXC&amp;nbsp;&amp;nbsp; Addr:0x20e0000&lt;BR /&gt;&amp;nbsp; IOMUXC.SW_MUX_CTL_PAD_CSI_DATA01 Addr:0x020E01E8 Value:0x00000005 - SW_MUX_CTL Register&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IOMUXC.SW_MUX_CTL_PAD_CSI_DATA01.MUX_MODE(0..3)&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x5&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select 1 of 9 iomux modes to be used for pad: CSI_DATA01.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #ff0000;"&gt; IOMUXC.SW_MUX_CTL_PAD_CSI_DATA01.SION(4..4)&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Force the selected mux mode Input path no matter of MUX_MODE functionality.&lt;/P&gt;&lt;P&gt;Set SION in dts:&lt;/P&gt;&lt;P&gt;imx6ul-14x14-evk.dts&lt;BR /&gt;67 &amp;amp;iomuxc {&lt;BR /&gt;268&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-names = "default";&lt;BR /&gt;269&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-0 = &amp;lt;&amp;amp;pinctrl_hog_1&amp;gt;;&lt;BR /&gt;270&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; imx6ul-evk {&lt;BR /&gt;271&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl_hog_1: hoggrp-1 {&lt;BR /&gt;272&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fsl,pins = &amp;lt;&lt;BR /&gt;273&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6UL_PAD_UART1_RTS_B__GPIO1_IO19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x17059 /* SD1 CD */&lt;BR /&gt;274&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6UL_PAD_GPIO1_IO05__USDHC1_VSELECT&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x17059 /* SD1 VSELECT */&lt;BR /&gt;275&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6UL_PAD_GPIO1_IO09__GPIO1_IO09&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x17059 /* SD1 RESET */&lt;BR /&gt;276&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6UL_PAD_SNVS_TAMPER0__GPIO5_IO00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x80000000&lt;BR /&gt;&lt;SPAN style="color: #ff0000;"&gt;277&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6UL_PAD_CSI_DATA01__GPIO4_IO22&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;0x40000000&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;278&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;;&lt;BR /&gt;279&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# /unit_tests/memtool IOMUXC.SW_MUX_CTL_PAD_CSI_DATA01&lt;BR /&gt;SOC: i.MX6UL&lt;BR /&gt;IOMUXC&amp;nbsp;&amp;nbsp; Addr:0x20e0000&lt;BR /&gt;&amp;nbsp; IOMUXC.SW_MUX_CTL_PAD_CSI_DATA01 Addr:0x020E01E8 Value:0x00000015 - SW_MUX_CTL Register&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IOMUXC.SW_MUX_CTL_PAD_CSI_DATA01.MUX_MODE(0..3)&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x5&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select 1 of 9 iomux modes to be used for pad: CSI_DATA01.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #ff0000;"&gt;&amp;nbsp; IOMUXC.SW_MUX_CTL_PAD_CSI_DATA01.SION(4..4)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;:0x1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Force the selected mux mode Input path no matter of MUX_MODE functionality.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 21 Feb 2017 10:50:39 GMT</pubDate>
    <dc:creator>BiyongSUN</dc:creator>
    <dc:date>2017-02-21T10:50:39Z</dc:date>
    <item>
      <title>Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458731#M71815</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am trying to build a simple GPIO Toggle Example on the IMX6UL UltraLite Board.&lt;/P&gt;&lt;P&gt;I have had no success yet.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have created a simple HelloWorld project.&lt;/P&gt;&lt;P&gt;But, I can not expand it to include GPIO Access.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can Not figure out how to include files such as gpio.h&lt;/P&gt;&lt;P&gt;But all of these fail: &amp;lt;gpio.h&amp;gt;&amp;nbsp; &amp;lt;Linux/gpio.h&amp;gt;&amp;nbsp; "Linux/gpio.h"&amp;nbsp; etc..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/P&gt;&lt;P&gt;#include &amp;lt;gpio.h&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;typedef unsigned long&amp;nbsp; U32;&lt;/P&gt;&lt;P&gt;typedef unsigned short U16;&lt;/P&gt;&lt;P&gt;typedef unsigned char&amp;nbsp; U8;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define MX6SL_PAD_EPDC_SDCLK__GPIO1_IO23 0x110 0x400 0x000 0x5 0x0&lt;/P&gt;&lt;P&gt;// IOMUXC_SW_MUX_CTL_PAD_GPIO_1_23 = 20E_0000h base + 0x010&lt;/P&gt;&lt;P&gt;#define&amp;nbsp; GPIO_1_23_MUX_CTL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( 0x2000000 + 0x0110 )&lt;/P&gt;&lt;P&gt;// IOMUXC_SW_PAD_CTL_PAD_GPIO_1_23 = 20E_0000h base + 0x000&lt;/P&gt;&lt;P&gt;#define&amp;nbsp; GPIO_1_23_PAD_CTL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( 0x2000000 + 0x0400 )&lt;/P&gt;&lt;P&gt;// IOMUXC_SW_PAD_INPUT_GPIO_1_23&amp;nbsp;&amp;nbsp; = 20E_0000h base + 0x0000&lt;/P&gt;&lt;P&gt;#define&amp;nbsp; GPIO_1_23_INPUT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( 0x2000000 + 0x0000 )&lt;/P&gt;&lt;P&gt;// IOMUXC_SW_MUX_DATA_GPIO_1_23&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x05&lt;/P&gt;&lt;P&gt;#define&amp;nbsp; GPIO_1_23_MUX_DATA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( 0x05 )&lt;/P&gt;&lt;P&gt;// IOMUXC_SW_CTL_DATA_GPIO_1_23&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1 &amp;lt;&amp;lt; 0x00&lt;/P&gt;&lt;P&gt;#define&amp;nbsp; GPIO_1_23_CTL_DATA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( 0x01 &amp;lt;&amp;lt; 0x00 )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define MX6SL_PAD_EPDC_SDLE__GPIO1_IO24&amp;nbsp; 0x114 0x404 0x000 0x5 0x0&lt;/P&gt;&lt;P&gt;#define MX6SL_PAD_EPDC_SDOE__GPIO1_IO25&amp;nbsp; 0x118 0x408 0x000 0x5 0x0&lt;/P&gt;&lt;P&gt;#define MX6SL_PAD_EPDC_SDSHR__GPIO1_IO26 0x11c 0x40c 0x000 0x5 0x0&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;int _t_;&lt;/P&gt;&lt;P&gt;#define&amp;nbsp; msleep(n)&amp;nbsp; for(_t_=1; _t_&amp;lt;10000; _t_++){_t_=_t_;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define&amp;nbsp; true&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;//#define IMX_GPIO_NR(port, index) ((((port)-1)*32)+((index)&amp;amp;31))&lt;/P&gt;&lt;P&gt;#define&amp;nbsp; IMX_GPIO_NR(b,p)&amp;nbsp; ( ((b - 1) * 32) + p )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int main(int argc, char **argv)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Hello World!\n");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_request(IMX_GPIO_NR(3, 11), "external_gpio_0");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_export(IMX_GPIO_NR(3, 11), true);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_request(IMX_GPIO_NR(3, 27), "external_gpio_1");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_export(IMX_GPIO_NR(3, 27), true);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;　gpio_direction_output( IMX_GPIO_NR(1,0) ,&amp;nbsp;&amp;nbsp; 1 );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; msleep(300);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_direction_output( IMX_GPIO_NR(2,18) ,&amp;nbsp; 1 );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; msleep(300);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_direction_output( IMX_GPIO_NR(2,19) ,&amp;nbsp; 1 );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; msleep(300);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_direction_output( IMX_GPIO_NR(1,20) ,&amp;nbsp; 0 );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_direction_output( UART2_TX_DATA ,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_direction_output( IMX_GPIO_NR(1,21) ,&amp;nbsp; 0 );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_direction_output( UART2_RX_DATA ,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_set_value(IMX_GPIO_NR(1, 0)&amp;nbsp; , 1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_set_value(IMX_GPIO_NR(2, 18) , 1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_set_value(IMX_GPIO_NR(2, 19) , 1);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_direction_output( IMX_GPIO_NR(1,23) ,&amp;nbsp; 1 );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_set_value(IMX_GPIO_NR(1, 23)&amp;nbsp; , 1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; msleep(1000);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_set_value(IMX_GPIO_NR(1, 23)&amp;nbsp; , 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; msleep(1000);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_set_value(IMX_GPIO_NR(1, 23)&amp;nbsp; , 1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; msleep(1000);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_export(IMX_GPIO_NR(1, 23), true);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_direction_output( IMX_GPIO_NR(1,23) ,&amp;nbsp; 1 );&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio_set_value(IMX_GPIO_NR(1, 23)&amp;nbsp; , 1);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have also tried direct register access, but just got segment faults:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int main(int argc, char **argv)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Hello World!\n");&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;//printf("\nset MUX\n");&lt;/P&gt;&lt;P&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *((long*)0x0209C000??) = (5);&amp;nbsp; // -set MUX&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;printf("\nset DIR\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *((long*)0x0209C004) = (1 &amp;lt;&amp;lt; 23);&amp;nbsp; // -set GPIO_1_23.Dir = 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;printf("\nset DATA 23\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *((long*)0x0209C000) = (1 &amp;lt;&amp;lt; 23);&amp;nbsp; // -set GPIO_1_23.Dat = 1&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also this segmentation fault :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define AIPS1_ARB_BASE_ADDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x02000000&lt;/P&gt;&lt;P&gt;#define AIPS1_ARB_END_ADDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x020FFFFF&lt;/P&gt;&lt;P&gt;#define AIPS2_ARB_BASE_ADDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x02100000&lt;/P&gt;&lt;P&gt;#define AIPS2_ARB_END_ADDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x021FFFFF&lt;/P&gt;&lt;P&gt;#define AIPS_TZ1_BASE_ADDR AIPS1_ARB_BASE_ADDR&lt;/P&gt;&lt;P&gt;#define AIPS_TZ2_BASE_ADDR AIPS2_ARB_BASE_ADDR&lt;/P&gt;&lt;P&gt;#define AIPS1_ON_BASE_ADDR (AIPS_TZ1_BASE_ADDR+0x7C000)&lt;/P&gt;&lt;P&gt;#define AIPS1_OFF_BASE_ADDR (AIPS_TZ1_BASE_ADDR+0x80000)&lt;/P&gt;&lt;P&gt;#define GPIO1_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x1C000)&lt;/P&gt;&lt;P&gt;#define IOMUXC_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x60000)&lt;/P&gt;&lt;P&gt;#define CCM_BASE_ADDR (AIPS1_OFF_BASE_ADDR+0x44000)&lt;/P&gt;&lt;P&gt;#define reg_32_CSU_SA (*(volatile U32*)(0x021C0218))&lt;/P&gt;&lt;P&gt;#define NSA_CP15 1&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;#define R32&amp;nbsp;&amp;nbsp; (volatile unsigned long *)&lt;/P&gt;&lt;P&gt;#define R16&amp;nbsp;&amp;nbsp; (volatile unsigned short *)&lt;/P&gt;&lt;P&gt;#define R8&amp;nbsp;&amp;nbsp;&amp;nbsp; (volatile unsigned char *)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;typedef unsigned long&amp;nbsp; U32;&lt;/P&gt;&lt;P&gt;typedef unsigned short U16;&lt;/P&gt;&lt;P&gt;typedef unsigned char&amp;nbsp; U8;&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;int _t_;&lt;/P&gt;&lt;P&gt;#define&amp;nbsp; msleep(n)&amp;nbsp; for(_t_=1; _t_&amp;lt;10000; _t_++){_t_=_t_;}&lt;/P&gt;&lt;P&gt;#define&amp;nbsp; true&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;　&lt;/P&gt;&lt;P&gt;int main(int argc, char **argv)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Hello World!\n");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Write to DIR register [DIR]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *R32(GPIO1_BASE_ADDR+4) = 0x00000004;&amp;nbsp; // 1 : GPIO 1_2&amp;nbsp; - output&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *R32 (GPIO1_BASE_ADDR) = 0x00000004;&amp;nbsp; // 1 --&amp;gt; GPIO 1_2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *R32 ( GPIO1_BASE_ADDR) = 0&amp;nbsp; ;&amp;nbsp; // 0 --&amp;gt; GPIO 1_2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I also tried adding these lines below in the&amp;nbsp; conf/bblayers.conf&amp;nbsp; file, but still with No Results :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FILESPATH_append = "~/yocto_3.14.38-6UL/build/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/linux-libc-headers/3.14-r0/linux-3.14/include/linux:"&lt;BR /&gt;FILESPATH_append = "~/yocto_3.14.38-6UL/build/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/linux-libc-headers/3.14-r0/linux-3.14/include:"&lt;/P&gt;&lt;P&gt;FILESEXTRAPATHS_prepend := "${THISDIR}/files:"&lt;BR /&gt;FILESEXTRAPATHS_append = "~/yocto_3.14.38-6UL/build/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/linux-libc-headers/3.14-r0/linux-3.14/include/linux:"&lt;BR /&gt;FILESEXTRAPATHS_append = "~/yocto_3.14.38-6UL/build/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/linux-libc-headers/3.14-r0/linux-3.14/include:"&lt;/P&gt;&lt;P&gt;SRC_URI += "~/yocto_3.14.38-6UL/build/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/linux-libc-headers/3.14-r0/linux-3.14/include/linux/gpio.h"&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Dec 2015 21:31:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458731#M71815</guid>
      <dc:creator>johncoleman</dc:creator>
      <dc:date>2015-12-03T21:31:10Z</dc:date>
    </item>
    <item>
      <title>Re: Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458732#M71816</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;From your code, we can know you have no any experience of the linux programming.&lt;/P&gt;&lt;P&gt;And the code you listed is for the linux kernel. Not user space.&lt;/P&gt;&lt;P&gt;From the user space, the GPIO should access from sys, which also have API in userspace.&lt;/P&gt;&lt;P&gt;Details please check the linux document file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3.14.28&lt;/P&gt;&lt;P&gt;Documentation/gpio/gpio-legacy.txt&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;suggest you can start at the beginning of the linux program and build up a concept of linux.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sysfs Interface for Userspace (OPTIONAL) ======================================== Platforms which use the "gpiolib" implementors framework may choose to configure a sysfs user interface to GPIOs.&amp;nbsp; This is different from the debugfs interface, since it provides control over GPIO direction and value instead of just showing a gpio state summary.&amp;nbsp; Plus, it could be present on production systems without debugging support.&lt;/P&gt;&lt;P&gt;Given appropriate hardware documentation for the system, userspace could know for example that GPIO #23 controls the write protect line used to protect boot loader segments in flash memory.&amp;nbsp; System upgrade procedures may need to temporarily remove that protection, first importing a GPIO, then changing its output state, then updating the code before re-enabling the write protection.&amp;nbsp; In normal use, GPIO #23 would never be touched, and the kernel would have no need to know about it.&lt;/P&gt;&lt;P&gt;Again depending on appropriate hardware documentation, on some systems userspace GPIO can be used to determine system configuration data that standard kernels won't know about.&amp;nbsp; And for some tasks, simple userspace GPIO drivers could be all that the system really needs.&lt;/P&gt;&lt;P&gt;Note that standard kernel drivers exist for common "LEDs and Buttons" GPIO tasks:&amp;nbsp; "leds-gpio" and "gpio_keys", respectively.&amp;nbsp; Use those instead of talking directly to the GPIOs; they integrate with kernel frameworks better than your userspace code could.&lt;/P&gt;&lt;P&gt;Paths in Sysfs&lt;/P&gt;&lt;P&gt;-------------- There are three kinds of entry in /sys/class/gpio:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; - Control interfaces used to get userspace control over GPIOs;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; - GPIOs themselves; and&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; - GPIO controllers ("gpio_chip" instances).&lt;/P&gt;&lt;P&gt;That's in addition to standard files including the "device" symlink.&lt;/P&gt;&lt;P&gt;The control interfaces are write-only:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /sys/class/gpio/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "export" ... Userspace may ask the kernel to export control of a GPIO to userspace by writing its number to this file.&lt;/P&gt;&lt;P&gt;&amp;nbsp; Example:&amp;nbsp; "echo 19 &amp;gt; export" will create a "gpio19" node&lt;/P&gt;&lt;P&gt;&amp;nbsp; for GPIO #19, if that's not requested by kernel code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "unexport" ... Reverses the effect of exporting to userspace.&lt;/P&gt;&lt;P&gt;&amp;nbsp; Example:&amp;nbsp; "echo 19 &amp;gt; unexport" will remove a "gpio19"&lt;/P&gt;&lt;P&gt;&amp;nbsp; node exported using the "export" file.&lt;/P&gt;&lt;P&gt;GPIO signals have paths like /sys/class/gpio/gpio42/ (for GPIO #42) and have the following read/write attributes:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /sys/class/gpio/gpioN/&lt;/P&gt;&lt;P&gt; "direction" ... reads as either "in" or "out".&amp;nbsp; This value may normally be written.&amp;nbsp; Writing as "out" defaults to&lt;/P&gt;&lt;P&gt;&amp;nbsp; initializing the value as low.&amp;nbsp; To ensure glitch free&lt;/P&gt;&lt;P&gt;&amp;nbsp; operation, values "low" and "high" may be written to&lt;/P&gt;&lt;P&gt;&amp;nbsp; configure the GPIO as an output with that initial value.&lt;/P&gt;&lt;P&gt;&amp;nbsp; Note that this attribute *will not exist* if the kernel&lt;/P&gt;&lt;P&gt;&amp;nbsp; doesn't support changing the direction of a GPIO, or&lt;/P&gt;&lt;P&gt;&amp;nbsp; it was exported by kernel code that didn't explicitly&lt;/P&gt;&lt;P&gt;&amp;nbsp; allow userspace to reconfigure this GPIO's direction.&lt;/P&gt;&lt;P&gt; "value" ... reads as either 0 (low) or 1 (high).&amp;nbsp; If the GPIO is configured as an output, this value may be written;&lt;/P&gt;&lt;P&gt;&amp;nbsp; any nonzero value is treated as high.&lt;/P&gt;&lt;P&gt;&amp;nbsp; If the pin can be configured as interrupt-generating interrupt&lt;/P&gt;&lt;P&gt;&amp;nbsp; and if it has been configured to generate interrupts (see the description of "edge"), you can poll(2) on that file and&lt;/P&gt;&lt;P&gt;&amp;nbsp; poll(2) will return whenever the interrupt was triggered. If&lt;/P&gt;&lt;P&gt;&amp;nbsp; you use poll(2), set the events POLLPRI and POLLERR. If you&lt;/P&gt;&lt;P&gt;&amp;nbsp; use select(2), set the file descriptor in exceptfds. After&lt;/P&gt;&lt;P&gt;&amp;nbsp; poll(2) returns, either lseek(2) to the beginning of the sysfs&lt;/P&gt;&lt;P&gt;&amp;nbsp; file and read the new value or close the file and re-open it&lt;/P&gt;&lt;P&gt;&amp;nbsp; to read the value.&lt;/P&gt;&lt;P&gt; "edge" ... reads as either "none", "rising", "falling", or "both". Write these strings to select the signal edge(s)&lt;/P&gt;&lt;P&gt;&amp;nbsp; that will make poll(2) on the "value" file return.&lt;/P&gt;&lt;P&gt;&amp;nbsp; This file exists only if the pin can be configured as an&lt;/P&gt;&lt;P&gt;&amp;nbsp; interrupt generating input pin.&lt;/P&gt;&lt;P&gt; "active_low" ... reads as either 0 (false) or 1 (true).&amp;nbsp; Write any nonzero value to invert the value attribute both&lt;/P&gt;&lt;P&gt;&amp;nbsp; for reading and writing.&amp;nbsp; Existing and subsequent&lt;/P&gt;&lt;P&gt;&amp;nbsp; poll(2) support configuration via the edge attribute&lt;/P&gt;&lt;P&gt;&amp;nbsp; for "rising" and "falling" edges will follow this&lt;/P&gt;&lt;P&gt;&amp;nbsp; setting.&lt;/P&gt;&lt;P&gt;GPIO controllers have paths like /sys/class/gpio/gpiochip42/ (for the controller implementing GPIOs starting at #42) and have the following read-only attributes:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /sys/class/gpio/gpiochipN/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "base" ... same as N, the first GPIO managed by this chip&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "label" ... provided for diagnostics (not always unique)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ngpio" ... how many GPIOs this manges (N to N + ngpio - 1)&lt;/P&gt;&lt;P&gt;Board documentation should in most cases cover what GPIOs are used for what purposes.&amp;nbsp; However, those numbers are not always stable; GPIOs on a daughtercard might be different depending on the base board being used, or other cards in the stack.&amp;nbsp; In such cases, you may need to use the gpiochip nodes (possibly in conjunction with schematics) to determine the correct GPIO number to use for a given signal.&lt;/P&gt;&lt;P&gt;Exporting from Kernel code&lt;/P&gt;&lt;P&gt;-------------------------- Kernel code can explicitly manage exports of GPIOs which have already been requested using gpio_request():&lt;/P&gt;&lt;P&gt; /* export the GPIO to userspace */&lt;/P&gt;&lt;P&gt; int gpio_export(unsigned gpio, bool direction_may_change);&lt;/P&gt;&lt;P&gt; /* reverse gpio_export() */&lt;/P&gt;&lt;P&gt; void gpio_unexport();&lt;/P&gt;&lt;P&gt; /* create a sysfs link to an exported GPIO node */&lt;/P&gt;&lt;P&gt; int gpio_export_link(struct device *dev, const char *name, unsigned gpio)&lt;/P&gt;&lt;P&gt; /* change the polarity of a GPIO node in sysfs */&lt;/P&gt;&lt;P&gt; int gpio_sysfs_set_active_low(unsigned gpio, int value);&lt;/P&gt;&lt;P&gt;After a kernel driver requests a GPIO, it may only be made available in the sysfs interface by gpio_export().&amp;nbsp; The driver can control whether the signal direction may change.&amp;nbsp; This helps drivers prevent userspace code from accidentally clobbering important system state.&lt;/P&gt;&lt;P&gt;This explicit exporting can help with debugging (by making some kinds of experiments easier), or can provide an always-there interface that's suitable for documenting as part of a board support package.&lt;/P&gt;&lt;P&gt;After the GPIO has been exported, gpio_export_link() allows creating symlinks from elsewhere in sysfs to the GPIO sysfs node.&amp;nbsp; Drivers can use this to provide the interface under their own device in sysfs with a descriptive name.&lt;/P&gt;&lt;P&gt;Drivers can use gpio_sysfs_set_active_low() to hide GPIO line polarity differences between boards from user space.&amp;nbsp; This only affects the sysfs interface.&amp;nbsp; Polarity change can be done both before and after gpio_export(), and previously enabled poll(2) support for either rising or falling edge will be reconfigured to follow this setting.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Dec 2015 05:16:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458732#M71816</guid>
      <dc:creator>BiyongSUN</dc:creator>
      <dc:date>2015-12-07T05:16:46Z</dc:date>
    </item>
    <item>
      <title>Re: Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458733#M71817</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;there are different ways to access the gpios. you can access them from kernel- and userspace. in kernel space you have to use simple kernel modules. in user space you can toggle in bash using sysfs or in c using mmap and so on. here are some toggle speed results i get&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Using sysfs (bash/c) [userspace]: ~3500Hz&lt;/P&gt;&lt;P&gt;calling /dev/mem using mmap [userspace]: ~800kHz&lt;/P&gt;&lt;P&gt;using gpio.h in a simple kernel module [kernelspace]: ~280kHz&lt;/P&gt;&lt;P&gt;ioremap() with writel [kernelspace] : ~1.6MHz&lt;/P&gt;&lt;P&gt;ioremap() with pointers [kernelspace]: ~5.5MHz&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check out my code:&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.dropbox.com/s/ecuo4iyb0y3i13o/gpio_examples.tar.gz?dl=0" title="https://www.dropbox.com/s/ecuo4iyb0y3i13o/gpio_examples.tar.gz?dl=0"&gt;Dropbox - gpio_examples.tar.gz&lt;/A&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Dec 2015 05:58:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458733#M71817</guid>
      <dc:creator>christophertele</dc:creator>
      <dc:date>2015-12-07T05:58:36Z</dc:date>
    </item>
    <item>
      <title>Re: Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458734#M71818</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am quite familiar with the explanations that you list - but still provides No output on the UL-Evk Board pins (with a Vmeter or scope).&lt;/P&gt;&lt;P&gt;- As you can see I already tried as you specified (clipped short to not Load the Blogs of course).&lt;/P&gt;&lt;P&gt;Actually, I am taking these from examples of howto code for Gpios here.&lt;/P&gt;&lt;P&gt;I can only Assume to Follow these examples - that I can find on freescale for their boards..&lt;/P&gt;&lt;P&gt;I am used to working on large Linux embedded client/server systems without worrying about gpios.&lt;/P&gt;&lt;P&gt;I would hope to see examples on freescale on howto work with its board gpios and io - to make any used of it.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Dec 2015 13:43:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458734#M71818</guid>
      <dc:creator>johncoleman</dc:creator>
      <dc:date>2015-12-07T13:43:50Z</dc:date>
    </item>
    <item>
      <title>Re: Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458735#M71819</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Christopher,&lt;/P&gt;&lt;P&gt;Will list the results.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Dec 2015 13:50:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458735#M71819</guid>
      <dc:creator>johncoleman</dc:creator>
      <dc:date>2015-12-07T13:50:22Z</dc:date>
    </item>
    <item>
      <title>Re: Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458736#M71820</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Christopher - Thanks for the code !&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I compiled your code and expanded it to about 8 more pins.&lt;/P&gt;&lt;P&gt;But, I still do not see any changes on the Port Pins.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Maybe, there is something that I need to Enable the GPIO handler ?&lt;/P&gt;&lt;P&gt;(GPIO already seems enabled in MenuConfig)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#include &amp;lt;stdio.h&amp;gt;&lt;BR /&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;BR /&gt;#include &amp;lt;errno.h&amp;gt;&lt;BR /&gt;#include &amp;lt;fcntl.h&amp;gt;&lt;BR /&gt;#include &amp;lt;sys/mman.h&amp;gt;&lt;BR /&gt;#include &amp;lt;errno.h&amp;gt;&lt;BR /&gt;#include &amp;lt;string.h&amp;gt;&lt;BR /&gt;#include &amp;lt;stdint.h&amp;gt;&lt;BR /&gt;#include &amp;lt;unistd.h&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//// MUX reg:&lt;BR /&gt;#define IOMUXC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x020E0000&lt;BR /&gt;//// MUX PAD reg:&lt;BR /&gt;#define IOMUXC_SW_MUX_CTL_PAD_SD4_DATA0&amp;nbsp; 0x020E031C&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;//// DATA reg:&lt;BR /&gt;#define GPIO1_DR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0209C000&lt;BR /&gt;//// DIR reg:&lt;BR /&gt;#define GPIO1_GDIR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0209C004&lt;/P&gt;&lt;P&gt;#define GPIO1_PSR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0209C008&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define GPIO2_DR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x020A0000&lt;BR /&gt;//// DIR reg:&lt;BR /&gt;#define GPIO2_GDIR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x020A0004&lt;BR /&gt;#define GPIO2_PSR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x020A0008&lt;/P&gt;&lt;P&gt;static volatile uint32_t *gpio;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int main(int argc, char **argv)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\n*** Test GPIOs :\n");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int fd ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("- Open /dev/mem ..\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Obtain handle to physical memory&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((fd = open ("/dev/mem", O_RDWR | O_SYNC) ) &amp;lt; 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Unable to open /dev/mem: %s\n", strerror(errno));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("- Map MUX Pins ..\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Map some of the pin mux registers within the range of the &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * GPIO40 GPIO40 pin.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; **/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio = (uint32_t *)mmap(0, (getpagesize() * 250), PROT_READ|PROT_WRITE, MAP_SHARED, fd, IOMUXC);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // The first 3 bits are the only thing that matters here according to the&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // datasheet.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(gpio + ((IOMUXC_SW_MUX_CTL_PAD_SD4_DATA0 - IOMUXC) / 4)) = 0x5;&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; *(gpio + ((0x020E031C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - IOMUXC) / 4)) = 0x5;&amp;nbsp;&amp;nbsp;&amp;nbsp; // UART1_RTS&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(gpio + ((0x020E04B8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - IOMUXC) / 4)) = 0x5;&amp;nbsp;&amp;nbsp;&amp;nbsp; // USB_OTG1_ID&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(gpio + ((0x020E0660&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - IOMUXC) / 4)) = 0x5;&amp;nbsp;&amp;nbsp;&amp;nbsp; // USB_OTG2_OC&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(gpio + ((0x020E01BC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - IOMUXC) / 4)) = 0x5;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SD1_CMD&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(gpio + ((0x020E01C0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - IOMUXC) / 4)) = 0x5;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SD1_CLK&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(gpio + ((0x020E01C4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - IOMUXC) / 4)) = 0x5;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SD1_DATA0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(gpio + ((0x020E01C8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - IOMUXC) / 4)) = 0x5;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SD1_DATA1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(gpio + ((0x020E01CC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - IOMUXC) / 4)) = 0x5;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SD1_DATA2&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(gpio + ((0x020E01D0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - IOMUXC) / 4)) = 0x5;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SD1_DATA3&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("- MunMap ..\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Be a good neighbor&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if((munmap((void *)gpio, (getpagesize() * 250))) &amp;lt; 0){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("munmap failed: %s\n", strerror(errno));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("- MMap =&amp;gt; gpio addr ..\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /** The i.MX 6 Dual and Quad Processor have 7 GPIO banks&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Each bank amounts to 1mb of memory which is perfectly &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * aligned for a memory map. Mmap will fail if the offset &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * is not a multiple of 1mb. For this example I just want &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * the GPIO2 bank which starts at 0x020A0000. I want the&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * bank (1mb or 250 pages of memory). I could get away with&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * a single page, but I am greedy :-P.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; **/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio = (uint32_t *)mmap(0, (getpagesize() * 250), PROT_READ|PROT_WRITE, MAP_SHARED, fd, GPIO2_DR);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((int32_t)gpio &amp;lt; 0){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("mmap failed: %s\n", strerror(errno));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("- Setup GPIOs DIR ..\n\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Setup GPIO40 or GPIO2_IO08 as an output.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * gpio[1] is the GPIO direction register (GPIO2_GDIR).&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * We want to only want to set bit 8 of this register&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * to a binary 1 while leaving the rest intact.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; **/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(gpio + ((GPIO2_GDIR - GPIO2_DR) / 4)) = *(gpio + ((GPIO2_GDIR - GPIO2_DR) / 4)) | 1&amp;lt;&amp;lt;8;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(gpio + ((GPIO2_GDIR - GPIO2_DR) / 4)) = *(gpio + ((GPIO2_GDIR - GPIO2_DR) / 4)) | (0xFFFFFFFF);&amp;nbsp;&amp;nbsp;&amp;nbsp; // Gpio2.00-32&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("- Looping ..\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Blink GPIO40 every 1000 millisec=1sec //500 milliseconds.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * gpio[0] is the GPIO data register (GPIO2_DR).&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * We only want to toggle bit 8 of this register&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * while leaving the rest alone.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; **/&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(".\n");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(gpio + ((GPIO2_DR - GPIO2_DR) / 4)) = *(gpio + ((GPIO2_DR - GPIO2_DR) / 4)) ^ 1&amp;lt;&amp;lt;8;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(gpio + ((GPIO2_DR - GPIO2_DR) / 4)) = *(gpio + ((GPIO2_DR - GPIO2_DR) / 4)) | (0xFFFFFFFF);&amp;nbsp;&amp;nbsp;&amp;nbsp; // Gpio2.00-32&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; usleep(500000);&amp;nbsp; //&amp;nbsp; usleep(250000);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(gpio + ((GPIO2_DR - GPIO2_DR) / 4)) = *(gpio + ((GPIO2_DR - GPIO2_DR) / 4)) ^ 1&amp;lt;&amp;lt;8;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(gpio + ((GPIO2_DR - GPIO2_DR) / 4)) = *(gpio + ((GPIO2_DR - GPIO2_DR) / 4)) &amp;amp; (0x00000000);&amp;nbsp;&amp;nbsp;&amp;nbsp; // Gpio2.00-32&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; usleep(500000);&amp;nbsp; //&amp;nbsp; usleep(250000);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 Dec 2015 17:30:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458736#M71820</guid>
      <dc:creator>johncoleman</dc:creator>
      <dc:date>2015-12-09T17:30:46Z</dc:date>
    </item>
    <item>
      <title>Re: Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458737#M71821</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;have you tried the other examples?check out the example "gpiotoggle.sh". just use the pin you want to toggle. that should work or you will get an error code during exporting the gpio.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;what about gpioMod.c ?&lt;/P&gt;&lt;P&gt;this exmaple makes use of gpio.h. usage is very simple and the function gpio_request() should work or will give back an error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this is how you calculate the GPIO Numbers:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;linux gpio number = (&amp;lt;X&amp;gt; - 1) * 32 + &amp;lt;Y&amp;gt;&lt;/P&gt;&lt;P&gt;GPIO&amp;lt;X&amp;gt;_IO&amp;lt;Y&amp;gt; (example: GPIO3_IO23, X=3, Y=23)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cheers&lt;/P&gt;&lt;P&gt;christopher&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Dec 2015 05:40:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458737#M71821</guid>
      <dc:creator>christophertele</dc:creator>
      <dc:date>2015-12-10T05:40:15Z</dc:date>
    </item>
    <item>
      <title>Re: Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458738#M71822</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The follow is the test on reference board. But it is pure linux topic, mentioned in 3.14.28&amp;nbsp; Documentation/gpio/gpio-legacy.txt, posted before.&lt;/P&gt;&lt;P&gt;This is just show you guys what is the correct method accessing gpio in linux, despite which kind of chip.&lt;/P&gt;&lt;P&gt;Suggest you guys again, read the linux document carefully.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;christopher's solution is also a workaround.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The test use the sysfs, which mentioned in the linux documents. Then use memtool to verify the result.&lt;/P&gt;&lt;P&gt;memtool is using the same way as the christopher's code. christopher's code is just very small part of memtool. the christopher's code is to access the register directly as memtool does.&lt;/P&gt;&lt;P&gt; But again here, from the linux programming layer, it is a workround.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;One important thing, you need to check the IOMUX you configured is correct for GPIO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6qdlsolo"&gt;root@imx6qdlsolo&lt;/A&gt;:~# echo 115 &amp;gt; /sys/class/gpio/export&lt;BR /&gt;&lt;A href="mailto:root@imx6qdlsolo"&gt;root@imx6qdlsolo&lt;/A&gt;:~# /unit_tests/memtool 0x20a8004 1&lt;BR /&gt;E&lt;BR /&gt;Reading 0x1 count starting at address 0x020A8004&lt;/P&gt;&lt;P&gt;0x020A8004:&amp;nbsp; 0E050000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6qdlsolo"&gt;root@imx6qdlsolo&lt;/A&gt;:~# echo out &amp;gt; /sys/class/gpio/gpio115/direction&lt;BR /&gt;&lt;A href="mailto:root@imx6qdlsolo"&gt;root@imx6qdlsolo&lt;/A&gt;:~# /unit_tests/memtool 0x20a8004 1&lt;BR /&gt;E&lt;BR /&gt;Reading 0x1 count starting at address 0x020A8004&lt;/P&gt;&lt;P&gt;0x020A8004:&amp;nbsp; 0E0D0000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you guys still don't believe, please google as following:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Untitled.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/21785i14C755BC99DA4C11/image-size/large?v=v2&amp;amp;px=999" role="button" title="Untitled.png" alt="Untitled.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Dec 2015 05:50:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458738#M71822</guid>
      <dc:creator>BiyongSUN</dc:creator>
      <dc:date>2015-12-10T05:50:20Z</dc:date>
    </item>
    <item>
      <title>Re: Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458739#M71823</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Christopher,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried the gpiotoggle.sh but with no pin level changes.&lt;/P&gt;&lt;P&gt;I even wrote a script to cover All Gpios - but with No changes on the Pin Voltages.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; vi setGpioAllOut.sh&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; #!/bin/sh&lt;/P&gt;&lt;P&gt;&amp;nbsp; for i in {1..255}&lt;BR /&gt;&amp;nbsp; do&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $i &amp;gt; /sys/class/gpio/export&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "out" &amp;gt; /sys/class/gpio/gpio$i/direction&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "1" &amp;gt; /sys/class/gpio/gpio$i/value&lt;BR /&gt;&amp;nbsp; # cat /sys/class/gpio/gpio$i/value&lt;BR /&gt;&amp;nbsp; done&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; chmod 777 setGpioAllOut.sh&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; ./setGpioAllOut.sh&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can not compile GpioMod.c :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Log data follows:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | DEBUG: Executing shell function do_compile&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | helloworld4.c:171:72: fatal error: linux/module.h: No such file or directory&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp; #include &amp;lt;linux/module.h&amp;gt; // dynamic loading of modules into the kernel&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | compilation terminated.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | WARNING: exit code 1 from a shell command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have not been able to figure out how to add the extra include paths for &amp;lt;linux/..&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note: I am using the Ultralite board.&lt;/P&gt;&lt;P&gt;I am running the Minimal compile Image.&lt;/P&gt;&lt;P&gt;I am logged in as Root.&lt;/P&gt;&lt;P&gt;There must be something missing on Gpio config or enables.&amp;nbsp; (But I have changed nothing)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What is left ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;John.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Dec 2015 13:45:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458739#M71823</guid>
      <dc:creator>johncoleman</dc:creator>
      <dc:date>2015-12-10T13:45:33Z</dc:date>
    </item>
    <item>
      <title>Re: Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458740#M71824</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;something wrong with your reference voltage?&lt;/P&gt;&lt;P&gt;are you measuring against GND or 3,3/1,8V??&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i do compile GpioMod.c on target with the makefile in the examples directory. just add the target name in line #1.&lt;/P&gt;&lt;P&gt;using yocto you have to ad following to your local.conf:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMAGE_FEATURES_append = " tools-sdk dev pkgs "&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMAGE_INSTALL_append = " kernel-dev "&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;after boot:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - log in&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - call:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cd /usr/src/kernel&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; make silentoldconfig scripts&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - run your makefile&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i dont know if you have to add your GPIOS to the device tree.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Dec 2015 14:00:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458740#M71824</guid>
      <dc:creator>christophertele</dc:creator>
      <dc:date>2015-12-10T14:00:06Z</dc:date>
    </item>
    <item>
      <title>Re: Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458741#M71825</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Appended to local.conf :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMAGE_FEATURES_append = " tools-sdk dev pkgs "&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IMAGE_INSTALL_append = " kernel-dev "&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ERROR: Nothing PROVIDES 'core-image-minimal'&lt;BR /&gt;ERROR: core-image-minimal was skipped: 'pkgs' in IMAGE_FEATURES (added via EXTRA_IMAGE_FEATURES) is not a valid image feature. Valid features: allow-empty-password dbg-pkgs debug-tweaks dev-pkgs doc doc-pkgs eclipse-debug empty-root-password hwcodecs nfs-server package-management post-install-logging ptest-pkgs qt4-pkgs qtcreator-debug read-only-rootfs splash ssh-server-dropbear ssh-server-openssh staticdev-pkgs tools-debug tools-profile tools-sdk tools-testapps x11 x11-base x11-sato&lt;/P&gt;&lt;P&gt;Summary: There was 1 ERROR message shown, returning a non-zero exit code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Voltages should be correct.&lt;/P&gt;&lt;P&gt;I am reading 5V and 3.3V on the source pins.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Dec 2015 14:53:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458741#M71825</guid>
      <dc:creator>johncoleman</dc:creator>
      <dc:date>2015-12-10T14:53:52Z</dc:date>
    </item>
    <item>
      <title>Re: Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458742#M71826</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;:smileyplus::smileyplus::smileyplus: &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/christophertelemann"&gt;christophertelemann&lt;/A&gt;great table with the overview of different, achievable, frequency!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Dec 2015 01:22:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458742#M71826</guid>
      <dc:creator>florian12</dc:creator>
      <dc:date>2015-12-11T01:22:03Z</dc:date>
    </item>
    <item>
      <title>Re: Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458743#M71827</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please check your IOMUX in devicee tree.&lt;/P&gt;&lt;P&gt;If you don't want to modify the code, you can use the memtool to set&amp;nbsp; the IOMUX for GPIO.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Dec 2015 04:25:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458743#M71827</guid>
      <dc:creator>BiyongSUN</dc:creator>
      <dc:date>2015-12-11T04:25:56Z</dc:date>
    </item>
    <item>
      <title>Re: Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458744#M71828</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;oops! sorry! should be dev-pkgs!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;can you check your devicetree?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Dec 2015 05:40:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458744#M71828</guid>
      <dc:creator>christophertele</dc:creator>
      <dc:date>2015-12-11T05:40:21Z</dc:date>
    </item>
    <item>
      <title>Re: Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458745#M71829</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Biyong,&lt;/P&gt;&lt;P&gt;I am really interested in working the way you have suggested. If I understand correctly, I don't need to modify the device tree everytime I want to check a different GPIO configuration .... is this right?&lt;/P&gt;&lt;P&gt;I would appreciate very much that you could show me how to do it with a concrete example ( I have few experience with embedded linux). I am also using imx6ulevk and would like to use arduino expansion port for gpio purposes.&lt;/P&gt;&lt;P&gt;SD1_DATA1 is configured in the device tree as:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;&amp;amp;iomuxc {&lt;BR /&gt; pinctrl-names = "default";&lt;BR /&gt; pinctrl-0 = &amp;lt;&amp;amp;pinctrl_hog_1&amp;gt;;&lt;BR /&gt; imx6ul-evk {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;....&lt;BR /&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;pinctrl_usdhc1: usdhc1grp {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fsl,pins = &amp;lt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ......&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ......&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;BR /&gt;&amp;nbsp; pinctrl_usdhc1_100mhz: usdhc1grp100mhz {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fsl,pins = &amp;lt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .......&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ......&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;BR /&gt;&amp;nbsp; pinctrl_usdhc1_200mhz: usdhc1grp200mhz {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fsl,pins = &amp;lt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ......&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .......&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;BR /&gt; .....&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;as I am only using sdh2, I can completely redefine the use of these pins and SD1_DATA1 could be a gpio: MX6UL_PAD_SD1_DATA1__GPIO2_IO19&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;How can I redefine the use of this pin without modifying the device tree by using memtool?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;Could you please illustrate this example as a reference? &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;Thank you in advance!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;BR&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-family: 'Courier New';"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Dec 2015 08:58:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458745#M71829</guid>
      <dc:creator>almarto</dc:creator>
      <dc:date>2015-12-11T08:58:17Z</dc:date>
    </item>
    <item>
      <title>Re: Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458746#M71830</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Let's pick up usdhc1 cd pin on i.mx6ul evk for test.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Untitled.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/22151i5D2159DE9BF272EB/image-size/large?v=v2&amp;amp;px=999" role="button" title="Untitled.png" alt="Untitled.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The MX6UL_PAD_UART1_RTS_B is configured as GPIO1_IO19&amp;nbsp; in device tree, which is used by usdhc1 as sd1 cd.&lt;/P&gt;&lt;P&gt;MX6UL_PAD_UART1_RTS_B__GPIO1_IO19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x17059 /* SD1 CD */&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;imx6ul-14x14-evk.dts&lt;/P&gt;&lt;P&gt;314 &amp;amp;usdhc1 {&lt;BR /&gt;315&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-names = "default", "state_100mhz", "state_200mhz";&lt;BR /&gt;316&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-0 = &amp;lt;&amp;amp;pinctrl_usdhc1&amp;gt;;&lt;BR /&gt;317&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-1 = &amp;lt;&amp;amp;pinctrl_usdhc1_100mhz&amp;gt;;&lt;BR /&gt;318&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-2 = &amp;lt;&amp;amp;pinctrl_usdhc1_200mhz&amp;gt;;&lt;BR /&gt;319&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cd-gpios = &amp;lt;&amp;amp;gpio1 19 0&amp;gt;;&lt;BR /&gt;320&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keep-power-in-suspend;&lt;BR /&gt;321&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enable-sdio-wakeup;&lt;BR /&gt;322&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vmmc-supply = &amp;lt;&amp;amp;reg_sd1_vmmc&amp;gt;;&lt;BR /&gt;323&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status = "okay";&lt;BR /&gt;324 };&lt;/P&gt;&lt;P&gt;407 &amp;amp;iomuxc {&lt;BR /&gt;408&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-names = "default";&lt;BR /&gt;409&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-0 = &amp;lt;&amp;amp;pinctrl_hog_1&amp;gt;;&lt;BR /&gt;410&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; imx6ul-evk {&lt;BR /&gt;411&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl_hog_1: hoggrp-1 {&lt;BR /&gt;412&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fsl,pins = &amp;lt;&lt;BR /&gt;413&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6UL_PAD_LCD_RESET__WDOG1_WDOG_ANY&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x30b0&lt;BR /&gt;414&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #e23d39;"&gt;MX6UL_PAD_UART1_RTS_B__GPIO1_IO19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x17059 /* SD1 CD */&lt;/SPAN&gt;&lt;BR /&gt;415&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6UL_PAD_GPIO1_IO05__USDHC1_VSELECT&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x17059 /* SD1 VSELECT */&lt;BR /&gt;416&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6UL_PAD_GPIO1_IO09__GPIO1_IO09&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x17059 /* SD1 RESET */&lt;BR /&gt;417&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Debug fs give us chance to check the gpio status:&lt;/P&gt;&lt;P&gt;cat /sys/kernel/debug/gpio&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #303030;"&gt;sdcard plugout: gpio-19&amp;nbsp; (2190000.usdhc cd&amp;nbsp;&amp;nbsp;&amp;nbsp; ) in&amp;nbsp; &lt;SPAN style="color: #e23d39;"&gt;&lt;STRONG&gt;hi &lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #303030;"&gt; sdcard plugin&amp;nbsp; : gpio-19&amp;nbsp; (2190000.usdhc cd&amp;nbsp;&amp;nbsp;&amp;nbsp; ) in &lt;SPAN style="color: #e23d39;"&gt;&lt;STRONG&gt; lo &lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sdcard plug out:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# cat /sys/kernel/debug/gpio&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;GPIOs 0-31, platform/209c000.gpio, 209c000.gpio:&lt;BR /&gt; gpio-3&amp;nbsp;&amp;nbsp; (tsc_X-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) in&amp;nbsp; hi&lt;BR /&gt; gpio-9&amp;nbsp;&amp;nbsp; (VSD_3V3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt;&lt;SPAN style="text-decoration: underline;"&gt;&lt;SPAN style="color: #e23d39; text-decoration: underline;"&gt; gpio-19&amp;nbsp; (2190000.usdhc cd&amp;nbsp;&amp;nbsp;&amp;nbsp; ) in&amp;nbsp; hi&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;GPIOs 32-63, platform/20a0000.gpio, 20a0000.gpio:&lt;/P&gt;&lt;P&gt;GPIOs 64-95, platform/20a4000.gpio, 20a4000.gpio:&lt;/P&gt;&lt;P&gt;GPIOs 96-127, platform/20a8000.gpio, 20a8000.gpio:&lt;BR /&gt; gpio-119 (?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;/P&gt;&lt;P&gt;GPIOs 128-159, platform/20ac000.gpio, 20ac000.gpio:&lt;BR /&gt; gpio-131 (?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-132 (headset detect&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) in&amp;nbsp; lo&lt;BR /&gt; gpio-135 (spi32766.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-136 (?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-138 (spi4.14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-139 (spi4.14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sdcard plugin:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# cat /sys/kernel/debug/gpio&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;GPIOs 0-31, platform/209c000.gpio, 209c000.gpio:&lt;BR /&gt; gpio-3&amp;nbsp;&amp;nbsp; (tsc_X-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) in&amp;nbsp; hi&lt;BR /&gt; gpio-9&amp;nbsp;&amp;nbsp; (VSD_3V3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt;&lt;SPAN style="text-decoration: underline;"&gt;&lt;SPAN style="color: #e23d39; text-decoration: underline;"&gt; gpio-19&amp;nbsp; (2190000.usdhc cd&amp;nbsp;&amp;nbsp;&amp;nbsp; ) in&amp;nbsp; lo&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;GPIOs 32-63, platform/20a0000.gpio, 20a0000.gpio:&lt;/P&gt;&lt;P&gt;GPIOs 64-95, platform/20a4000.gpio, 20a4000.gpio:&lt;/P&gt;&lt;P&gt;GPIOs 96-127, platform/20a8000.gpio, 20a8000.gpio:&lt;BR /&gt; gpio-119 (?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;/P&gt;&lt;P&gt;GPIOs 128-159, platform/20ac000.gpio, 20ac000.gpio:&lt;BR /&gt; gpio-131 (?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-132 (headset detect&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) in&amp;nbsp; lo&lt;BR /&gt; gpio-135 (spi32766.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-136 (?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-138 (spi4.14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-139 (spi4.14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;But we could not use it as an indenpendent&amp;nbsp; GPIO, because this GPIO is used by usdhc1 module.&lt;/P&gt;&lt;P&gt;You will get busy when you try to use it as an independent GPIO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~#&amp;nbsp; echo 19 &amp;gt;&amp;nbsp; /sys/class/gpio/export&lt;/P&gt;&lt;P&gt;-sh: echo: write error: Device or resource busy&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~#&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let's modify the device tree to make gpio-19 isolated from usdhc1:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;314 &amp;amp;usdhc1 {&lt;/P&gt;&lt;P&gt;315&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-names = "default", "state_100mhz", "state_200mhz";&lt;/P&gt;&lt;P&gt;316&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-0 = &amp;lt;&amp;amp;pinctrl_usdhc1&amp;gt;;&lt;/P&gt;&lt;P&gt;317&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-1 = &amp;lt;&amp;amp;pinctrl_usdhc1_100mhz&amp;gt;;&lt;/P&gt;&lt;P&gt;318&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-2 = &amp;lt;&amp;amp;pinctrl_usdhc1_200mhz&amp;gt;;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #e23d39;"&gt;319 //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cd-gpios = &amp;lt;&amp;amp;gpio1 19 0&amp;gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;320&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keep-power-in-suspend;&lt;/P&gt;&lt;P&gt;321&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enable-sdio-wakeup;&lt;/P&gt;&lt;P&gt;322&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vmmc-supply = &amp;lt;&amp;amp;reg_sd1_vmmc&amp;gt;;&lt;/P&gt;&lt;P&gt;323&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status = "okay";&lt;/P&gt;&lt;P&gt;324 };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;recompile the dts and get the new dtb file. replace the old one and reboot the i.mx6ul evk&lt;/P&gt;&lt;P&gt;let's check by debug fs and sys class&amp;nbsp; we could not find the gpio-19.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# cat /sys/kernel/debug/gpio&lt;BR /&gt;GPIOs 0-31, platform/209c000.gpio, 209c000.gpio:&lt;BR /&gt; gpio-3&amp;nbsp;&amp;nbsp; (tsc_X-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) in&amp;nbsp; hi&lt;BR /&gt; gpio-9&amp;nbsp;&amp;nbsp; (VSD_3V3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;/P&gt;&lt;P&gt;GPIOs 32-63, platform/20a0000.gpio, 20a0000.gpio:&lt;/P&gt;&lt;P&gt;GPIOs 64-95, platform/20a4000.gpio, 20a4000.gpio:&lt;/P&gt;&lt;P&gt;GPIOs 96-127, platform/20a8000.gpio, 20a8000.gpio:&lt;BR /&gt; gpio-119 (?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;/P&gt;&lt;P&gt;GPIOs 128-159, platform/20ac000.gpio, 20ac000.gpio:&lt;BR /&gt; gpio-131 (?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-132 (headset detect&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) in&amp;nbsp; lo&lt;BR /&gt; gpio-135 (spi32766.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-136 (?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-138 (spi4.14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-139 (spi4.14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# ls /sys/class/gpio/&lt;/P&gt;&lt;P&gt;export&amp;nbsp;&amp;nbsp; gpiochip0&amp;nbsp;&amp;nbsp;&amp;nbsp; gpiochip248&amp;nbsp; gpiochip64&amp;nbsp; unexport&lt;/P&gt;&lt;P&gt;gpio132&amp;nbsp; gpiochip128&amp;nbsp; gpiochip32&amp;nbsp;&amp;nbsp; gpiochip96&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let's export gpio19&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# echo 19 &amp;gt;&amp;nbsp; /sys/class/gpio/export&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# ls /sys/class/gpio/&lt;/P&gt;&lt;P&gt;export&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #e23d39;"&gt;&lt;STRONG&gt;gpio19&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpiochip128&amp;nbsp; gpiochip32&amp;nbsp; gpiochip96&lt;/P&gt;&lt;P&gt;gpio132&amp;nbsp; gpiochip0&amp;nbsp; gpiochip248&amp;nbsp; gpiochip64&amp;nbsp; unexport&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check with debug fs if we can see it.&lt;/P&gt;&lt;P&gt;Yes. we see it.&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# cat /sys/kernel/debug/gpio&lt;BR /&gt;GPIOs 0-31, platform/209c000.gpio, 209c000.gpio:&lt;BR /&gt; gpio-3&amp;nbsp;&amp;nbsp; (tsc_X-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) in&amp;nbsp; hi&lt;BR /&gt; gpio-9&amp;nbsp;&amp;nbsp; (VSD_3V3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt;&lt;SPAN style="color: #e23d39;"&gt;&lt;STRONG&gt; gpio-19&amp;nbsp; (sysfs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) in&amp;nbsp; hi&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;GPIOs 32-63, platform/20a0000.gpio, 20a0000.gpio:&lt;/P&gt;&lt;P&gt;GPIOs 64-95, platform/20a4000.gpio, 20a4000.gpio:&lt;/P&gt;&lt;P&gt;GPIOs 96-127, platform/20a8000.gpio, 20a8000.gpio:&lt;BR /&gt; gpio-119 (?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;/P&gt;&lt;P&gt;GPIOs 128-159, platform/20ac000.gpio, 20ac000.gpio:&lt;BR /&gt; gpio-131 (?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-132 (headset detect&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) in&amp;nbsp; lo&lt;BR /&gt; gpio-135 (spi32766.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-136 (?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-138 (spi4.14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-139 (spi4.14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check the gpio-19 value&lt;/P&gt;&lt;P&gt;sdcard plugout:&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# cat /sys/class/gpio/gpio19/value&lt;/P&gt;&lt;P&gt;524288&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sdcard plugin:&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# cat /sys/class/gpio/gpio19/value&lt;/P&gt;&lt;P&gt;0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;why it is not 0 and 1?&amp;nbsp; because it is raw data. &lt;SPAN style="color: red;"&gt;any nonzero value is treated as high&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following is from linux document.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: red;"&gt;It may also provide a customvalue for ARCH_NR_GPIOS, so that it better&lt;/SPAN&gt;&lt;SPAN style="color: red;"&gt; reflects the number of GPIOs in&lt;BR /&gt;actual use on that platform, without&lt;/SPAN&gt;&lt;SPAN style="color: red;"&gt; wasting static table space.&lt;/SPAN&gt;&lt;SPAN style="color: #1f497d;"&gt;&amp;nbsp; (It should count both built-in/SoC GPIOs and&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;also ones on GPIO expanders.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #1f497d;"&gt;Sysfs Interface for Userspace (OPTIONAL)&lt;/SPAN&gt;&lt;SPAN style="color: #1f497d;"&gt;&amp;nbsp; &lt;BR /&gt;"value" ... reads as either 0 (low) or 1 (high).&amp;nbsp; If the GPIO&lt;/SPAN&gt;&lt;SPAN style="color: #1f497d;"&gt;&lt;BR /&gt;is configured as an output, this value may be written;&lt;/SPAN&gt;&lt;SPAN style="color: #1f497d;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: red;"&gt;any nonzero value is treated as high. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;let's check with debug fs.&lt;/P&gt;&lt;P&gt;sdcard plug out:&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# cat /sys/kernel/debug/gpio&lt;BR /&gt;GPIOs 0-31, platform/209c000.gpio, 209c000.gpio:&lt;BR /&gt; gpio-3&amp;nbsp;&amp;nbsp; (tsc_X-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) in&amp;nbsp; hi&lt;BR /&gt; gpio-9&amp;nbsp;&amp;nbsp; (VSD_3V3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt;&lt;SPAN style="color: #e23d39;"&gt;&lt;STRONG&gt; gpio-19&amp;nbsp; (sysfs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) in&amp;nbsp; hi&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;GPIOs 32-63, platform/20a0000.gpio, 20a0000.gpio:&lt;/P&gt;&lt;P&gt;GPIOs 64-95, platform/20a4000.gpio, 20a4000.gpio:&lt;/P&gt;&lt;P&gt;GPIOs 96-127, platform/20a8000.gpio, 20a8000.gpio:&lt;BR /&gt; gpio-119 (?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;/P&gt;&lt;P&gt;GPIOs 128-159, platform/20ac000.gpio, 20ac000.gpio:&lt;BR /&gt; gpio-131 (?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-132 (headset detect&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) in&amp;nbsp; lo&lt;BR /&gt; gpio-135 (spi32766.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-136 (?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-138 (spi4.14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-139 (spi4.14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sdcard plugin:&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# cat /sys/kernel/debug/gpio&lt;BR /&gt;GPIOs 0-31, platform/209c000.gpio, 209c000.gpio:&lt;BR /&gt; gpio-3&amp;nbsp;&amp;nbsp; (tsc_X-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) in&amp;nbsp; hi&lt;BR /&gt; gpio-9&amp;nbsp;&amp;nbsp; (VSD_3V3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt;&lt;SPAN style="color: #e23d39;"&gt;&lt;STRONG&gt; gpio-19&amp;nbsp; (sysfs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) in&amp;nbsp; lo&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;GPIOs 32-63, platform/20a0000.gpio, 20a0000.gpio:&lt;/P&gt;&lt;P&gt;GPIOs 64-95, platform/20a4000.gpio, 20a4000.gpio:&lt;/P&gt;&lt;P&gt;GPIOs 96-127, platform/20a8000.gpio, 20a8000.gpio:&lt;BR /&gt; gpio-119 (?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;/P&gt;&lt;P&gt;GPIOs 128-159, platform/20ac000.gpio, 20ac000.gpio:&lt;BR /&gt; gpio-131 (?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-132 (headset detect&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) in&amp;nbsp; lo&lt;BR /&gt; gpio-135 (spi32766.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-136 (?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-138 (spi4.14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;BR /&gt; gpio-139 (spi4.14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) out lo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you notice it is show hi and lo, not a value. (remember &lt;SPAN style="color: red;"&gt;any nonzero value is treated as high. &lt;/SPAN&gt;)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Verify with memtool:&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# /unit_tests/memtool&amp;nbsp; GPIO1.DR.DR&lt;/P&gt;&lt;P&gt;SOC: i.MX6UL&lt;/P&gt;&lt;P&gt;GPIO1&amp;nbsp;&amp;nbsp;&amp;nbsp; Addr:0x209c000&lt;/P&gt;&lt;P&gt;&amp;nbsp; GPIO1.DR Addr:0x0209C000 Value:0xF00C0118 - The 32-bit GPIO_DR register stores data that is ready to be driven to the output lines.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIO1.DR.DR(0..31)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0xf00c0118&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# /unit_tests/memtool&amp;nbsp; GPIO1.DR.DR&lt;/P&gt;&lt;P&gt;SOC: i.MX6UL&lt;/P&gt;&lt;P&gt;GPIO1&amp;nbsp;&amp;nbsp;&amp;nbsp; Addr:0x209c000&lt;/P&gt;&lt;P&gt;&amp;nbsp; GPIO1.DR Addr:0x0209C000 Value:0xF0040118 - The 32-bit GPIO_DR register stores data that is ready to be driven to the output lines.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIO1.DR.DR(0..31)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0xf0040118&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Data bits.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;0xf00c0118 -&amp;gt;&amp;nbsp; 0xf0040118&lt;/P&gt;&lt;P&gt;bit 19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 -&amp;gt; 0 (hi-&amp;gt;lo)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could we use&amp;nbsp; the debug fs for accessing&amp;nbsp; gpio from use space.&lt;/P&gt;&lt;P&gt;No. Please don't do that.&lt;/P&gt;&lt;P&gt;a. It is for debug purpose.&lt;/P&gt;&lt;P&gt;b. it could not handle output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What we need to do for an independent?&lt;/P&gt;&lt;P&gt;Only one thing: Correct IOMUX pinctrl in device tree.&lt;/P&gt;&lt;P&gt;In this example is:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #e23d39;"&gt;MX6UL_PAD_UART1_RTS_B__GPIO1_IO19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x17059 /* SD1 CD */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;407 &amp;amp;iomuxc {&lt;/P&gt;&lt;P&gt;408&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-names = "default";&lt;/P&gt;&lt;P&gt;409&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-0 = &amp;lt;&amp;amp;pinctrl_hog_1&amp;gt;;&lt;/P&gt;&lt;P&gt;410&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; imx6ul-evk {&lt;/P&gt;&lt;P&gt;411&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl_hog_1: hoggrp-1 {&lt;/P&gt;&lt;P&gt;412&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fsl,pins = &amp;lt;&lt;/P&gt;&lt;P&gt;413&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6UL_PAD_LCD_RESET__WDOG1_WDOG_ANY&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x30b0&lt;/P&gt;&lt;P&gt;414&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #e23d39;"&gt;MX6UL_PAD_UART1_RTS_B__GPIO1_IO19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x17059 /* SD1 CD */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;415&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6UL_PAD_GPIO1_IO05__USDHC1_VSELECT&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x17059 /* SD1 VSELECT */&lt;/P&gt;&lt;P&gt;416&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MX6UL_PAD_GPIO1_IO09__GPIO1_IO09&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x17059 /* SD1 RESET */&lt;/P&gt;&lt;P&gt;417&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Why we&amp;nbsp; know echo 19 &amp;gt;&amp;nbsp; /sys/class/gpio/export Not other number?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please run the command&lt;/P&gt;&lt;P&gt;for i in /sys/class/gpio/* ; do cat $i/label; cat $i/base; echo; done&lt;/P&gt;&lt;P&gt;209c000.gpio&lt;BR /&gt;0&lt;/P&gt;&lt;P&gt;20ac000.gpio&lt;BR /&gt;128&lt;/P&gt;&lt;P&gt;74hc595&lt;BR /&gt;248&lt;/P&gt;&lt;P&gt;20a0000.gpio&lt;BR /&gt;32&lt;/P&gt;&lt;P&gt;20a4000.gpio&lt;BR /&gt;64&lt;/P&gt;&lt;P&gt;20a8000.gpio&lt;BR /&gt;96&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;imx6ul.dtsi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;468&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio1: &lt;A href="mailto:gpio@0209c000"&gt;gpio@0209c000&lt;/A&gt; {&lt;/P&gt;&lt;P&gt;469&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";&lt;/P&gt;&lt;P&gt;470&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg = &amp;lt;0x0209c000 0x4000&amp;gt;;&lt;/P&gt;&lt;P&gt;471&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; interrupts = &amp;lt;GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH&amp;gt;,&lt;/P&gt;&lt;P&gt;472&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH&amp;gt;;&lt;/P&gt;&lt;P&gt;473&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio-controller;&lt;/P&gt;&lt;P&gt;474&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #gpio-cells = &amp;lt;2&amp;gt;;&lt;/P&gt;&lt;P&gt;475&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; interrupt-controller;&lt;/P&gt;&lt;P&gt;476&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #interrupt-cells = &amp;lt;2&amp;gt;;&lt;/P&gt;&lt;P&gt;477&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;209c000 is for gpio1 and the base is "0".&lt;/P&gt;&lt;P&gt;So, the bit 19 is 0 + 19.&lt;/P&gt;&lt;P&gt;What does this caculation refer to?&lt;/P&gt;&lt;P&gt;It is the linux document I mentoined before.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let take another example for 20a8000.gpio base is 96.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;501&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio4: &lt;A href="mailto:gpio@020a8000"&gt;gpio@020a8000&lt;/A&gt; {&lt;/P&gt;&lt;P&gt;502&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";&lt;/P&gt;&lt;P&gt;503&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg = &amp;lt;0x020a8000 0x4000&amp;gt;;&lt;/P&gt;&lt;P&gt;504&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; interrupts = &amp;lt;GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH&amp;gt;,&lt;/P&gt;&lt;P&gt;505&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH&amp;gt;;&lt;/P&gt;&lt;P&gt;506&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpio-controller;&lt;/P&gt;&lt;P&gt;507&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #gpio-cells = &amp;lt;2&amp;gt;;&lt;/P&gt;&lt;P&gt;508&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; interrupt-controller;&lt;/P&gt;&lt;P&gt;509&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #interrupt-cells = &amp;lt;2&amp;gt;;&lt;/P&gt;&lt;P&gt;510&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If we want to use gpio4-11, we should do is to echo 107 &amp;gt; /sys/class/gpio/export&lt;/P&gt;&lt;P&gt;107 = 96 + 11&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Dec 2015 10:42:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458746#M71830</guid>
      <dc:creator>BiyongSUN</dc:creator>
      <dc:date>2015-12-11T10:42:23Z</dc:date>
    </item>
    <item>
      <title>Re: Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458747#M71831</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Using memtool to set IOMUX as GPIO is just for test.&lt;/P&gt;&lt;P&gt;In the real project, you should modify the device tree.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;memtool is very useful debug tool. Not only can configure pad as GPIO but others as well.&lt;/P&gt;&lt;P&gt;Here is example:&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# /unit_tests/memtool IOMUXC.SW_MUX_CTL_PAD_SD1_DATA1.&lt;BR /&gt;SOC: i.MX6UL&lt;BR /&gt;IOMUXC&amp;nbsp;&amp;nbsp; Addr:0x20e0000&lt;BR /&gt;&amp;nbsp; IOMUXC.SW_MUX_CTL_PAD_SD1_DATA1 Addr:0x020E01C8 Value:0x00000000 - SW_MUX_CTL Register&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IOMUXC.SW_MUX_CTL_PAD_SD1_DATA1.MUX_MODE(0..3)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select 1 of 9 iomux modes to be used for pad: SD1_DATA1.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IOMUXC.SW_MUX_CTL_PAD_SD1_DATA1.SION(4..4)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Force the selected mux mode Input path no matter of MUX_MODE functionality.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #e23d39;"&gt;&lt;A href="mailto:oot@imx6ulevk"&gt;&lt;SPAN style="color: #e23d39;"&gt;oot@imx6ulevk&lt;/SPAN&gt;&lt;/A&gt;:~# /unit_tests/memtool IOMUXC.SW_MUX_CTL_PAD_SD1_DATA1.MUX_MODE=5&lt;/SPAN&gt;&lt;BR /&gt;SOC: i.MX6UL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# /unit_tests/memtool IOMUXC.SW_MUX_CTL_PAD_SD1_DATA1.&lt;BR /&gt;SOC: i.MX6UL&lt;BR /&gt;IOMUXC&amp;nbsp;&amp;nbsp; Addr:0x20e0000&lt;BR /&gt;&amp;nbsp; IOMUXC.SW_MUX_CTL_PAD_SD1_DATA1 Addr:0x020E01C8 Value:0x00000005 - SW_MUX_CTL Register&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IOMUXC.SW_MUX_CTL_PAD_SD1_DATA1.MUX_MODE(0..3)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x5&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select 1 of 9 iomux modes to be used for pad: SD1_DATA1.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IOMUXC.SW_MUX_CTL_PAD_SD1_DATA1.SION(4..4)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Force the selected mux mode Input path no matter of MUX_MODE functionality.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Untitled.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/22153iD9BEAD3DC9B0615C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Untitled.png" alt="Untitled.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note sometime you need to set the pad ctrl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# /unit_tests/memtool IOMUXC.SW_PAD_CTL_PAD_SD1_DATA1.&lt;BR /&gt;SOC: i.MX6UL&lt;BR /&gt;IOMUXC&amp;nbsp;&amp;nbsp; Addr:0x20e0000&lt;BR /&gt;&amp;nbsp; IOMUXC.SW_PAD_CTL_PAD_SD1_DATA1 Addr:0x020E0454 Value:0x00017059 - SW_PAD_CTL Register&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IOMUXC.SW_PAD_CTL_PAD_SD1_DATA1.SRE(0..0)&amp;nbsp; :0x1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select one out of next values for pad: SD1_DATA1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IOMUXC.SW_PAD_CTL_PAD_SD1_DATA1.DSE(3..5)&amp;nbsp; :0x3&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select one out of next values for pad: SD1_DATA1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IOMUXC.SW_PAD_CTL_PAD_SD1_DATA1.SPEED(6..7)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select one out of next values for pad: SD1_DATA1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IOMUXC.SW_PAD_CTL_PAD_SD1_DATA1.ODE(11..11)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x0&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select one out of next values for pad: SD1_DATA1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IOMUXC.SW_PAD_CTL_PAD_SD1_DATA1.PKE(12..12)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select one out of next values for pad: SD1_DATA1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IOMUXC.SW_PAD_CTL_PAD_SD1_DATA1.PUE(13..13)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select one out of next values for pad: SD1_DATA1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IOMUXC.SW_PAD_CTL_PAD_SD1_DATA1.PUS(14..15)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select one out of next values for pad: SD1_DATA1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IOMUXC.SW_PAD_CTL_PAD_SD1_DATA1.HYS(16..16)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select one out of next values for pad: SD1_DATA1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;you can use "."(dot) to list all:&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# /unit_tests/memtool .&lt;/P&gt;&lt;P&gt;SOC: i.MX6UL&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Module&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Base Address&lt;/P&gt;&lt;P&gt;&amp;nbsp; ADC1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x02198000&lt;/P&gt;&lt;P&gt;&amp;nbsp; ADC2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0219C000&lt;/P&gt;&lt;P&gt;&amp;nbsp; APBH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01804000&lt;/P&gt;&lt;P&gt;&amp;nbsp; ASRC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x02034000&lt;/P&gt;&lt;P&gt;&amp;nbsp; BCH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01808000&lt;/P&gt;&lt;P&gt;&amp;nbsp; CCM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x020C4000&lt;/P&gt;&lt;P&gt;&amp;nbsp; CCM_ANALOG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x020C8000&lt;/P&gt;&lt;P&gt;&amp;nbsp; CSI&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x021C4000&lt;/P&gt;&lt;P&gt;&amp;nbsp; ECSPI1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x02008000&lt;/P&gt;&lt;P&gt;&amp;nbsp; ECSPI2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0200C000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; I2S1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x02028000&lt;/P&gt;&lt;P&gt;&amp;nbsp; I2S2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0202C000&lt;/P&gt;&lt;P&gt;&amp;nbsp; I2S3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x02030000&lt;/P&gt;&lt;P&gt;&amp;nbsp; IOMUXC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x020E0000&lt;/P&gt;&lt;P&gt;&amp;nbsp; IOMUXC_GPR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x020E4000&lt;/P&gt;&lt;P&gt;&amp;nbsp; KPP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x020B8000&lt;/P&gt;&lt;P&gt;&amp;nbsp; LCDIF&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x021C8000&lt;/P&gt;&lt;P&gt;&amp;nbsp; MMDC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x021B0000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Not only the IOMUX&amp;nbsp; but other module registers you can check.&lt;/P&gt;&lt;P&gt;&lt;A href="mailto:root@imx6ulevk"&gt;root@imx6ulevk&lt;/A&gt;:~# /unit_tests/memtool&amp;nbsp; GPT1.&lt;/P&gt;&lt;P&gt;SOC: i.MX6UL&lt;/P&gt;&lt;P&gt;GPT1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Addr:0x2098000&lt;/P&gt;&lt;P&gt;&amp;nbsp; GPT1.CR Addr:0x02098000 Value:0x00000749 - The GPT Control Register (GPT_CR) is used to program and configure GPT operations.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPT1.CR.EN(0..0)&amp;nbsp;&amp;nbsp; :0x1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPT Enable.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPT1.CR.ENMOD(1..1)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPT Enable mode.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPT1.CR.DBGEN(2..2)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPT debug mode enable.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPT1.CR.WAITEN(3..3)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPT Wait Mode enable.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPT1.CR.DOZEEN(4..4)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPT Doze Mode Enable.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPT1.CR.STOPEN(5..5)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPT Stop Mode enable.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPT1.CR.CLKSRC(6..8)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x5&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Clock Source select.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPT1.CR.FRR(9..9)&amp;nbsp; :0x1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Free-Run or Restart mode.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPT1.CR.EN_24M(10..10)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :0x1&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Dec 2015 11:31:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458747#M71831</guid>
      <dc:creator>BiyongSUN</dc:creator>
      <dc:date>2015-12-11T11:31:18Z</dc:date>
    </item>
    <item>
      <title>Re: Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458748#M71832</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Where do I find this memtool ?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Dec 2015 14:18:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458748#M71832</guid>
      <dc:creator>johncoleman</dc:creator>
      <dc:date>2015-12-11T14:18:27Z</dc:date>
    </item>
    <item>
      <title>Re: Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458749#M71833</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you very much Biyong for such illustrative examples. They clarify many concepts for developers who still don't have a great knowledge in Linux which is exactly my situation. So thank you very much for your help!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have gone through all your proposals for debugging and I have succeeded in all of them except for one important thing: I am unable to compile the device tree! and this is what I need for my board customization, since I cannot use debug tools for my board customization project.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This i what I try to do:&lt;/P&gt;&lt;P&gt;I modify imx6ul-evk-14x14.dts and save it with another name (imx6ul-evk-14x14-custom.dts) in the same directory, that is in:&lt;/P&gt;&lt;P&gt;/home/alvaro/yocto/fsl-release-bsp-ul/build-qt5/tmp/work-shared/imx6ulevk/kernel-source/arch/arm/boot/dts/imx6ul-evk-14x14-custom.dts&lt;/P&gt;&lt;P&gt;and execute from directory where dtc executable is:&lt;/P&gt;&lt;P&gt;&lt;SPAN class="yiv7659362877" style="font-size: 12.0pt; color: red;"&gt;./dtc /home/alvaro/yocto/fsl-release-bsp-ul/build-qt5/tmp/work-shared/imx6ulevk/kernel-source/arch/arm/boot/dts/imx6ul-evk-14x14-custom.dts&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="yiv7659362877" style="font-size: 12.0pt; color: red;"&gt;I get the following error:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="yiv7659362877" style="font-size: 12.0pt; color: red;"&gt;Error: &lt;SPAN class="yiv7659362877" style="font-size: 12.0pt; color: red;"&gt;/home/alvaro/yocto/fsl-release-bsp-ul/build-qt5/tmp/work-shared/imx6ulevk/kernel-source/arch/arm/boot/&lt;/SPAN&gt;dts/imx6ul-14x14-custom.dts:11.1-9 syntax error&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="yiv7659362877" style="font-size: 12.0pt; color: red;"&gt;FATAL ERROR: Unable to parse input tree&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;This also happens with the original file imx6ul-evk-14x14.dts, so that I guess it has nothing to do with the file modifications&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you have any idea of what might be happening?&lt;/P&gt;&lt;P&gt;Thank you in advance!&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Dec 2015 11:38:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458749#M71833</guid>
      <dc:creator>almarto</dc:creator>
      <dc:date>2015-12-14T11:38:11Z</dc:date>
    </item>
    <item>
      <title>Re: Simple GPIO Example - quandry</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458750#M71834</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We are working with the iMx6sx/sl processors, testing on the imx6-UltraLite and imx6-Sabre-Solo Boards.&lt;/P&gt;&lt;P&gt;I have been compiling the Images under Yocto on.&lt;/P&gt;&lt;P&gt;But, I can not find the relevant DTS files:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;~/yocto_3.14.38-6UL/build/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/linux-libc-headers/3.14-r0/linux-3.14/arch/arm/boot/dts $&lt;/P&gt;&lt;P&gt; imx6sl-evk.dts&lt;/P&gt;&lt;P&gt; imx6sl-pinfunc.h&lt;/P&gt;&lt;P&gt; imx6sl-warp.dts&lt;/P&gt;&lt;P&gt; imx6sl.dtsi&lt;/P&gt;&lt;P&gt; imx6sx-pinfunc.h &lt;/P&gt;&lt;P&gt; imx6sx-sabreauto.dts&lt;/P&gt;&lt;P&gt; imx6sx-sdb-reva.dts&lt;/P&gt;&lt;P&gt; imx6sx-sdb.dts&lt;/P&gt;&lt;P&gt; imx6sx-sdb.dtsi&lt;/P&gt;&lt;P&gt; imx6sx.dtsi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Why are these files missing (but I can still compile the Images for the Board),&lt;/P&gt;&lt;P&gt;and how do I add them to the Yocto source ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;... I need to add GPIO access in the DTS via the DTS files.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Dec 2015 16:31:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Simple-GPIO-Example-quandry/m-p/458750#M71834</guid>
      <dc:creator>johncoleman</dc:creator>
      <dc:date>2015-12-14T16:31:38Z</dc:date>
    </item>
  </channel>
</rss>

