<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>i.MX ProcessorsのトピックRe: i.MX28 GPIO access</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/i-MX28-GPIO-access/m-p/243304#M20641</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This comes from the fact that mxs SoCs have 32 GPIOs per GPIO port and the hardware GPIOnumbering start from zero:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;GPIO0_5 --&amp;gt; Linux number is 0*32 + 5 &lt;/P&gt;&lt;P&gt;GPIO1_10 --&amp;gt; Linux number is 1*32 + 10&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This differs from other i.mx, where we start counting from GPIO1, ie, there is no GPIO0 as per the SoC manual.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example (there is no GPIO0 port on this family):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;GPIO1_3 ---&amp;gt; Linux number (1-1)*32 + 3&lt;/P&gt;&lt;P&gt;GPIO3_7 ---&amp;gt; Linux number is (3-1)*32 + 7&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps to clarify why mxs and imx have different schemes to calculate the Linux gpio number. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 28 Jun 2013 13:08:52 GMT</pubDate>
    <dc:creator>fabio_estevam</dc:creator>
    <dc:date>2013-06-28T13:08:52Z</dc:date>
    <item>
      <title>i.MX28 GPIO access</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX28-GPIO-access/m-p/243301#M20638</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Freescale Community,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have some trouble adding GPIO support on a i.MX28 Pin.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is a two color LED on the Pins K4 and L4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm using an 3.9 Kernel and it seems to run a Heartbeat on the LED on Pin K4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I figured out with the file fsl,mxs-pinctrl.txt that the IDs are:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MX28_PAD_AUART1_RX__GPIO_3_4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x3043&lt;/P&gt;&lt;P&gt;MX28_PAD_AUART1_TX__GPIO_3_5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x3053&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So I modified the imx28-evk.dts by copying something similar from the GPIO_3_5 to 3_4.&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; led_pin_gpio3_4: led_gpio3_4@0 {&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; reg = &amp;lt;0&amp;gt;;&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; fsl,pinmux-ids = &amp;lt;&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; 0x3043 /* MX28_PAD_AUART1_RX__GPIO_3_4 */&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;gt;;&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; fsl,drive-strength = &amp;lt;0&amp;gt;;&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; fsl,voltage = &amp;lt;1&amp;gt;;&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; fsl,pull-up = &amp;lt;0&amp;gt;;&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; };&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; &lt;/P&gt;&lt;P&gt;then I crosscompiled this dts to a dtb and attached it to the zImage&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cat arch/arm/boot/zImage arch/arm/boot/dts/imx28-evk.dtb &amp;gt; arch/arm/boot/zImage_dtb&lt;/P&gt;&lt;P&gt;sudo cp arch/arm/boot/zImage_dtb ~/freescale/imx28/ltib/rootfs/boot/zImage&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now I tried to switch the LED GPIO on and off&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Linux GPIO Number = &amp;lt;GPIO Instance – 1&amp;gt; × 32 + &amp;lt;GPIO Port number&amp;gt; = (3-1)*32+4 = 68&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;(found this formula here &lt;/SPAN&gt;&lt;A class="" href="https://community.freescale.com/message/317413#317413"&gt;https://community.freescale.com/message/317413#317413&lt;/A&gt;&lt;SPAN&gt; which document is the source?)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;echo 68 &amp;gt;/sys/class/gpio/export&lt;/P&gt;&lt;P&gt;echo out &amp;gt;/sys/class/gpio/gpio68/direction&lt;/P&gt;&lt;P&gt;echo 1 &amp;gt;/sys/class/gpio/gpio68/value&lt;/P&gt;&lt;P&gt;echo 0 &amp;gt;/sys/class/gpio/gpio68/value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but the LED did not go on and off, have I forgot something?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Jun 2013 15:42:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX28-GPIO-access/m-p/243301#M20638</guid>
      <dc:creator>chris321</dc:creator>
      <dc:date>2013-06-27T15:42:41Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX28 GPIO access</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX28-GPIO-access/m-p/243302#M20639</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The formula you mentioned applies only to other i.mx devices, that starts counting the gpio from 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For mxs you should do: 3*32 + 4&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Jun 2013 16:39:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX28-GPIO-access/m-p/243302#M20639</guid>
      <dc:creator>fabio_estevam</dc:creator>
      <dc:date>2013-06-27T16:39:02Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX28 GPIO access</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX28-GPIO-access/m-p/243303#M20640</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thank you very much, this was the answer.&lt;/P&gt;&lt;P&gt;But where are this formula from? I can't find something like this in the docu.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Jun 2013 09:38:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX28-GPIO-access/m-p/243303#M20640</guid>
      <dc:creator>chris321</dc:creator>
      <dc:date>2013-06-28T09:38:09Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX28 GPIO access</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX28-GPIO-access/m-p/243304#M20641</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This comes from the fact that mxs SoCs have 32 GPIOs per GPIO port and the hardware GPIOnumbering start from zero:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;GPIO0_5 --&amp;gt; Linux number is 0*32 + 5 &lt;/P&gt;&lt;P&gt;GPIO1_10 --&amp;gt; Linux number is 1*32 + 10&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This differs from other i.mx, where we start counting from GPIO1, ie, there is no GPIO0 as per the SoC manual.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example (there is no GPIO0 port on this family):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;GPIO1_3 ---&amp;gt; Linux number (1-1)*32 + 3&lt;/P&gt;&lt;P&gt;GPIO3_7 ---&amp;gt; Linux number is (3-1)*32 + 7&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps to clarify why mxs and imx have different schemes to calculate the Linux gpio number. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Jun 2013 13:08:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX28-GPIO-access/m-p/243304#M20641</guid>
      <dc:creator>fabio_estevam</dc:creator>
      <dc:date>2013-06-28T13:08:52Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX28 GPIO access</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX28-GPIO-access/m-p/243305#M20642</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you very much.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 30 Jun 2013 09:57:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX28-GPIO-access/m-p/243305#M20642</guid>
      <dc:creator>chris321</dc:creator>
      <dc:date>2013-06-30T09:57:49Z</dc:date>
    </item>
  </channel>
</rss>

