<?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: SPI interface using /dev/mem in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/SPI-interface-using-dev-mem/m-p/712676#M110815</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi vijesh&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for simple sample code for SPI initialization one can look at Github SDK&lt;BR /&gt;&lt;A href="https://github.com/backenklee/swp-report/tree/master/iMX6_Platform_SDK"&gt;https://github.com/backenklee/swp-report/tree/master/iMX6_Platform_SDK&lt;/A&gt;&lt;BR /&gt;and spi example in unit tests (folder /mxc_spi_test):&lt;/P&gt;&lt;P&gt;imx-test&lt;BR /&gt;&lt;A href="http://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-test-5.7.tar.gz"&gt;www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-test-5.7.tar.gz&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;BR /&gt;igor&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 31 Aug 2017 23:21:56 GMT</pubDate>
    <dc:creator>igorpadykov</dc:creator>
    <dc:date>2017-08-31T23:21:56Z</dc:date>
    <item>
      <title>SPI interface using /dev/mem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/SPI-interface-using-dev-mem/m-p/712675#M110814</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am trying to configure SPI registers using /dev/mem in imx6. I am able to toggle an led by configuring the GPIO registers using /dev/mem but I am unable to configure SPI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Following steps I have done.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. using mmap i have mapped the address 0x200C000 and configured ECSPI2_CONREG for chip select 0.&lt;/P&gt;&lt;P&gt;2. using mmap i have mapped the address 0x20E0000 and configured&amp;nbsp; the IOMUX&amp;nbsp; PADS for SPI2&lt;/P&gt;&lt;P&gt;3. using mmap i have mapped the address 0x200C000 again and configured ECSPI2_CONREG. (loaded (ECSPI2_TXDATA)&amp;nbsp; and enaled xch bit in ECSPI2_CONREG.). I am transmitting continuously in a while loop.&lt;/P&gt;&lt;P&gt;4. I am unable to see any&amp;nbsp; transitions on CS signal and no clock is generated on SCLK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is the above configuration method correct ?? am I missing any thing in configuring the SPI , I have not configured any clock registers .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If any sample code for SPI initialization is available please provide.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;my code :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int spi_fd = open("/dev/mem",O_RDWR|O_SYNC);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(spi_fd &amp;lt; 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&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; printf("Can't open /dev/mem\n");&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; return 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spi_reg = (unsigned int *) mmap(0,&amp;nbsp; getpagesize(), PROT_READ|PROT_WRITE, MAP_SHARED, spi_fd, 0x200C000);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if(spi_reg == NULL)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;printf("Can't mmap1\n");&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &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;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for(i =0; i&amp;lt;10; i++)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;printf("value = %x\n", spi_reg[i]);&lt;BR /&gt;&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; /* Configuring SPI*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;spi_reg[2] = 0 ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;spi_reg[2] = 0x7000f1 ;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* mapping IOMUX*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spi_reg = (unsigned int *) mmap(0,&amp;nbsp; (2*getpagesize()), PROT_READ|PROT_WRITE, MAP_SHARED, spi_fd, 0x20e0000);&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; if(spi_reg == NULL)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&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; printf("Can't mmap2\n");&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; return 1;&lt;BR /&gt;&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; spi_reg[517] = 0x02 ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; spi_reg[516] = 0x02 ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; spi_reg[518] = 0x02 ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; spi_reg[519] = 0x02 ;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spi_reg[158] = 0x02 ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spi_reg[159] = 0x02 ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spi_reg[160] = 0x02 ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spi_reg[161] = 0x02 ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*&amp;nbsp; Again mapping SPI registers */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; spi_reg = (unsigned int *) mmap(0,&amp;nbsp; getpagesize(), PROT_READ|PROT_WRITE, MAP_SHARED, spi_fd, 0x200c000);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if(spi_reg == NULL)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;printf("Can't mmap3\n");&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &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;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;spi_reg[1] = 0x21 ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;spi_reg[9] = 0x21 ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;spi_reg[2] = 0x7000f1 ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;spi_reg[3] = 0xF00 ;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;while(1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;spi_reg[1] = 0x21 ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;spi_reg[9] = 0x21 ;&lt;/P&gt;&lt;P&gt;/* xch enable */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;spi_reg[2] = 0x7000f5 ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;sleep(1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;spi_reg[6] = 0x80 ;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;printf("data sent\n");&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 Aug 2017 07:50:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/SPI-interface-using-dev-mem/m-p/712675#M110814</guid>
      <dc:creator>vijeshreddy</dc:creator>
      <dc:date>2017-08-31T07:50:01Z</dc:date>
    </item>
    <item>
      <title>Re: SPI interface using /dev/mem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/SPI-interface-using-dev-mem/m-p/712676#M110815</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi vijesh&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for simple sample code for SPI initialization one can look at Github SDK&lt;BR /&gt;&lt;A href="https://github.com/backenklee/swp-report/tree/master/iMX6_Platform_SDK"&gt;https://github.com/backenklee/swp-report/tree/master/iMX6_Platform_SDK&lt;/A&gt;&lt;BR /&gt;and spi example in unit tests (folder /mxc_spi_test):&lt;/P&gt;&lt;P&gt;imx-test&lt;BR /&gt;&lt;A href="http://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-test-5.7.tar.gz"&gt;www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-test-5.7.tar.gz&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;BR /&gt;igor&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 Aug 2017 23:21:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/SPI-interface-using-dev-mem/m-p/712676#M110815</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2017-08-31T23:21:56Z</dc:date>
    </item>
  </channel>
</rss>

