<?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: Poll() GPIO on IMX6SL in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Poll-GPIO-on-IMX6SL/m-p/515808#M83884</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Take in consideration that The &lt;EM&gt;poll&lt;/EM&gt;() function shall support regular files, terminal and pseudo-terminal devices, FIFOs, pipes, sockets&amp;nbsp; STREAMS-based files.&amp;nbsp;&amp;nbsp; From the portion of code I don´t see if this is accomplish. Maybe that it is the problem.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 07 Jun 2016 17:35:47 GMT</pubDate>
    <dc:creator>jamesbone</dc:creator>
    <dc:date>2016-06-07T17:35:47Z</dc:date>
    <item>
      <title>Poll() GPIO on IMX6SL</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Poll-GPIO-on-IMX6SL/m-p/515807#M83883</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This may not be the right place to ask but.... Im trying to use poll() on a board using the IMX6SL. It hangs on poll() on the second loop iteration. The commented out code and comment above it shows says what happens when this code is added. Does the interrupt need to be unmasked or something? I've seen code almost identical to mine in a few places, yet this hasn't seemed to work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the c code: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;int &lt;/SPAN&gt;read_gpio(&lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;char &lt;/SPAN&gt;*path&lt;SPAN style="color: #cc7832;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;void &lt;/SPAN&gt;(*callback)(&lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;int&lt;/SPAN&gt;)){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;int &lt;/SPAN&gt;fd = open(path&lt;SPAN style="color: #cc7832;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #908b25;"&gt;O_RDONLY&lt;/SPAN&gt;)&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;if&lt;/SPAN&gt;(fd == -&lt;SPAN style="color: #6897bb;"&gt;1&lt;/SPAN&gt;){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perror(&lt;SPAN style="color: #6a8759;"&gt;"error opening file"&lt;/SPAN&gt;)&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;return &lt;/SPAN&gt;-&lt;SPAN style="color: #6897bb;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;char &lt;/SPAN&gt;buf[&lt;SPAN style="color: #6897bb;"&gt;11&lt;/SPAN&gt;]&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;int &lt;/SPAN&gt;res&lt;SPAN style="color: #cc7832;"&gt;, &lt;/SPAN&gt;off&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;char &lt;/SPAN&gt;c&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;struct &lt;/SPAN&gt;&lt;SPAN style="color: #b5b6e3;"&gt;pollfd &lt;/SPAN&gt;pfd = {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;SPAN style="color: #9373a5;"&gt;fd &lt;/SPAN&gt;= fd&lt;SPAN style="color: #cc7832;"&gt;,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;.&lt;SPAN style="color: #9373a5;"&gt;events &lt;/SPAN&gt;= &lt;SPAN style="color: #908b25;"&gt;POLLPRI&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;,&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;.&lt;SPAN style="color: #9373a5;"&gt;revents &lt;/SPAN&gt;= &lt;SPAN style="color: #6897bb;"&gt;0&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #6897bb;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;for&lt;/SPAN&gt;(&lt;SPAN style="color: #cc7832;"&gt;;;&lt;/SPAN&gt;){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #908b25;"&gt;LOGD&lt;/SPAN&gt;(&lt;SPAN style="color: #6a8759;"&gt;"for begins"&lt;/SPAN&gt;)&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // dummy read causes poll never to run&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // read(fd, &amp;amp;buf[],1);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // lseek(fd, 0, SEEK_SET);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;res = poll(&amp;amp;pfd&lt;SPAN style="color: #cc7832;"&gt;,&lt;/SPAN&gt;&lt;SPAN style="color: #6897bb;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;,&lt;/SPAN&gt;-&lt;SPAN style="color: #6897bb;"&gt;1&lt;/SPAN&gt;)&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #908b25;"&gt;LOGD&lt;/SPAN&gt;(&lt;SPAN style="color: #6a8759;"&gt;"polling ended"&lt;/SPAN&gt;)&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;if&lt;/SPAN&gt;(res == -&lt;SPAN style="color: #6897bb;"&gt;1&lt;/SPAN&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; perror(&lt;SPAN style="color: #6a8759;"&gt;"error polling"&lt;/SPAN&gt;)&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;break&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;if&lt;/SPAN&gt;((pfd.&lt;SPAN style="color: #9373a5;"&gt;revents &lt;/SPAN&gt;&amp;amp; &lt;SPAN style="color: #908b25;"&gt;POLLPRI&lt;/SPAN&gt;) == &lt;SPAN style="color: #908b25;"&gt;POLLPRI&lt;/SPAN&gt;){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #908b25;"&gt;LOGD&lt;/SPAN&gt;(&lt;SPAN style="color: #6a8759;"&gt;"POLLPRI"&lt;/SPAN&gt;)&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;off = lseek(fd&lt;SPAN style="color: #cc7832;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #6897bb;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #908b25;"&gt;SEEK_SET&lt;/SPAN&gt;)&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;if&lt;/SPAN&gt;(off == -&lt;SPAN style="color: #6897bb;"&gt;1&lt;/SPAN&gt;) &lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;break&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;memset(&amp;amp;buf[&lt;SPAN style="color: #6897bb;"&gt;0&lt;/SPAN&gt;]&lt;SPAN style="color: #cc7832;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #6897bb;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #6897bb;"&gt;11&lt;/SPAN&gt;)&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;read(fd&lt;SPAN style="color: #cc7832;"&gt;, &lt;/SPAN&gt;&amp;amp;buf[&lt;SPAN style="color: #6897bb;"&gt;0&lt;/SPAN&gt;]&lt;SPAN style="color: #cc7832;"&gt;, &lt;/SPAN&gt;&lt;SPAN style="color: #6897bb;"&gt;10&lt;/SPAN&gt;*&lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;sizeof&lt;/SPAN&gt;(&lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;char&lt;/SPAN&gt;))&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // These two lines will cause it to poll constantly&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // close(fd);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp; // fd = open(path, O_RDONLY);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #908b25;"&gt;LOGD&lt;/SPAN&gt;(&lt;SPAN style="color: #6a8759;"&gt;"Before callback"&lt;/SPAN&gt;)&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;callback(atoi(buf))&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #908b25;"&gt;LOGD&lt;/SPAN&gt;(&lt;SPAN style="color: #6a8759;"&gt;"After Callback"&lt;/SPAN&gt;)&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #908b25;"&gt;LOGD&lt;/SPAN&gt;(&lt;SPAN style="color: #6a8759;"&gt;"for ends"&lt;/SPAN&gt;)&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp; close(fd)&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #908b25;"&gt;LOGD&lt;/SPAN&gt;(&lt;SPAN style="color: #6a8759;"&gt;"for exits"&lt;/SPAN&gt;)&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #cc7832; font-weight: bold;"&gt;return &lt;/SPAN&gt;&lt;SPAN style="color: #6897bb;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="color: #cc7832;"&gt;;&lt;BR /&gt;&lt;/SPAN&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 06 Jun 2016 20:53:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Poll-GPIO-on-IMX6SL/m-p/515807#M83883</guid>
      <dc:creator>stephangm</dc:creator>
      <dc:date>2016-06-06T20:53:53Z</dc:date>
    </item>
    <item>
      <title>Re: Poll() GPIO on IMX6SL</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Poll-GPIO-on-IMX6SL/m-p/515808#M83884</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Take in consideration that The &lt;EM&gt;poll&lt;/EM&gt;() function shall support regular files, terminal and pseudo-terminal devices, FIFOs, pipes, sockets&amp;nbsp; STREAMS-based files.&amp;nbsp;&amp;nbsp; From the portion of code I don´t see if this is accomplish. Maybe that it is the problem.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Jun 2016 17:35:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Poll-GPIO-on-IMX6SL/m-p/515808#M83884</guid>
      <dc:creator>jamesbone</dc:creator>
      <dc:date>2016-06-07T17:35:47Z</dc:date>
    </item>
    <item>
      <title>Re: Poll() GPIO on IMX6SL</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Poll-GPIO-on-IMX6SL/m-p/515809#M83885</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't see what you mean, I am using &lt;EM&gt;poll()&lt;/EM&gt; through the &lt;EM&gt;sysfs&lt;/EM&gt; interface and polling &lt;EM&gt;path &lt;/EM&gt; which is &lt;EM&gt;sys/class/gpio/gpioXX/value&lt;/EM&gt;&lt;EM&gt;​.&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Jun 2016 18:55:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Poll-GPIO-on-IMX6SL/m-p/515809#M83885</guid>
      <dc:creator>stephangm</dc:creator>
      <dc:date>2016-06-07T18:55:49Z</dc:date>
    </item>
  </channel>
</rss>

