<?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 Can't use spidev on i.MX53. in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Can-t-use-spidev-on-i-MX53/m-p/248519#M22228</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm trying to communicate with a LCD module via SPI on my i.MX53 NOVSOM module(BSP 11.09, kernel 2.6.35), but I'm failing on two dfferent ways. First of all: All the IOMUX configurations was done on mx53_xxx.c for the ECSPI1 interface. In order to use the spidev interface, I use the following structure:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static struct mxc_spi_master mxcspi1_data = {&lt;/P&gt;&lt;P&gt;&amp;nbsp; .maxchipselect = 4,&lt;/P&gt;&lt;P&gt;&amp;nbsp; .spi_version = 23,&lt;/P&gt;&lt;P&gt;&amp;nbsp; .chipselect_active = mx53_evk_gpio_spi_chipselect_active,&lt;/P&gt;&lt;P&gt;&amp;nbsp; .chipselect_inactive = mx53_evk_gpio_spi_chipselect_inactive,&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static struct spi_board_info spi1_board_info[] __initdata = {&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* the modalias must be the same as spi device driver name */&lt;/P&gt;&lt;P&gt;&amp;nbsp; .modalias = "spidev",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Name of spi_driver for this device */&lt;/P&gt;&lt;P&gt;&amp;nbsp; .max_speed_hz = 20000000,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* max spi SCK clock speed in HZ */&lt;/P&gt;&lt;P&gt;&amp;nbsp; .bus_num = 1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Framework bus number */&lt;/P&gt;&lt;P&gt;&amp;nbsp; .chip_select = 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Framework chip select. */&lt;/P&gt;&lt;P&gt;&amp;nbsp; .mode = SPI_MODE_1,&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After that, on ltib menuconfig, I enable the drivers that I'll need.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Problem 1:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When using mxc_spi and spidev modules, the inode is created on /dev, but when I try to write a byte and after read other three, I get this Oops:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;root@freescale ~$ init_lcd /dev/spidev1.0 &lt;/P&gt;&lt;P&gt;B0!!!&lt;/P&gt;&lt;P&gt;CSPI1: count=1 fifo_size=2048&lt;/P&gt;&lt;P&gt;CSPI Finish&lt;/P&gt;&lt;P&gt;RX_DATA0 = 0x0&lt;/P&gt;&lt;P&gt;data IN = 0x0 &lt;/P&gt;&lt;P&gt;Unable to handle kernel NULL pointer dereference at virtual address 00000000&lt;/P&gt;&lt;P&gt;pgd = 80004000&lt;/P&gt;&lt;P&gt;[00000000] *pgd=00000000&lt;/P&gt;&lt;P&gt;Internal error: Oops: 17 [#1] PREEMPT&lt;/P&gt;&lt;P&gt;last sysfs file: /sys/kernel/uevent_seqnum&lt;/P&gt;&lt;P&gt;Modules linked in: spidev mxc_spi&lt;/P&gt;&lt;P&gt;CPU: 0&amp;nbsp;&amp;nbsp;&amp;nbsp; Not tainted&amp;nbsp; (2.6.35.3-850-gbc67621-g74af6dc-dirty #190)&lt;/P&gt;&lt;P&gt;PC is at mxc_spi_buf_rx_u16+0x24/0x50 [mxc_spi]&lt;/P&gt;&lt;P&gt;LR is at mxc_spi_buf_rx_u16+0x18/0x50 [mxc_spi]&lt;/P&gt;&lt;P&gt;pc : [&amp;lt;7f000268&amp;gt;]&amp;nbsp;&amp;nbsp;&amp;nbsp; lr : [&amp;lt;7f00025c&amp;gt;]&amp;nbsp;&amp;nbsp;&amp;nbsp; psr: 40000013&lt;/P&gt;&lt;P&gt;sp : 954b3f20&amp;nbsp; ip : 968ba000&amp;nbsp; fp : 00000000&lt;/P&gt;&lt;P&gt;r10: 00000000&amp;nbsp; r9 : 00000000&amp;nbsp; r8 : 00000004&lt;/P&gt;&lt;P&gt;r7 : 00000000&amp;nbsp; r6 : 95489118&amp;nbsp; r5 : 00000000&amp;nbsp; r4 : 00000000&lt;/P&gt;&lt;P&gt;r3 : 954b3f2c&amp;nbsp; r2 : 954b3f14&amp;nbsp; r1 : 7f001093&amp;nbsp; r0 : 7f0010a7&lt;/P&gt;&lt;P&gt;Flags: nZcv&amp;nbsp; IRQs on&amp;nbsp; FIQs on&amp;nbsp; Mode SVC_32&amp;nbsp; ISA ARM&amp;nbsp; Segment kernel&lt;/P&gt;&lt;P&gt;Control: 10c5387d&amp;nbsp; Table: 853f0019&amp;nbsp; DAC: 00000017&lt;/P&gt;&lt;P&gt;Process mxc_spi.0 (pid: 1906, stack limit = 0x954b22e8)&lt;/P&gt;&lt;P&gt;Stack: (0x954b3f20 to 0x954b4000)&lt;/P&gt;&lt;P&gt;3f20: 95489118 954a9f1c 95489600 00000001 00000004 7f000828 954a9f1c 00000000&lt;/P&gt;&lt;P&gt;3f40: 95489118 954a9f10 954a9ef0 ffffffff 95489600 802513f4 804c1870 954b2000&lt;/P&gt;&lt;P&gt;3f60: 7f0001ac 9548912c 95259ea0 95259ea0 954b2000 95259ea8 80251270 954b3f94&lt;/P&gt;&lt;P&gt;3f80: 95489120 00000000 9548911c 80069bc0 95212000 00000000 95212000 8006d51c&lt;/P&gt;&lt;P&gt;3fa0: 954b3fa0 954b3fa0 00000000 9543fe10 954b3fd4 80069a4c 95259ea0 00000000&lt;/P&gt;&lt;P&gt;3fc0: 00000000 00000000 00000000 8006d1f8 00000000 00000000 954b3fd8 954b3fd8&lt;/P&gt;&lt;P&gt;3fe0: 00000000 9543fe10 8006d180 8002c9c8 00000013 8002c9c8 707e7021 707e7421&lt;/P&gt;&lt;P&gt;[&amp;lt;7f000268&amp;gt;] (mxc_spi_buf_rx_u16+0x24/0x50 [mxc_spi]) from [&amp;lt;7f000828&amp;gt;] (mxc_spi_poll_transfer+0x12c/0x1bc [mxc_spi])&lt;/P&gt;&lt;P&gt;[&amp;lt;7f000828&amp;gt;] (mxc_spi_poll_transfer+0x12c/0x1bc [mxc_spi]) from [&amp;lt;802513f4&amp;gt;] (bitbang_work+0x184/0x30c)&lt;/P&gt;&lt;P&gt;[&amp;lt;802513f4&amp;gt;] (bitbang_work+0x184/0x30c) from [&amp;lt;80069bc0&amp;gt;] (worker_thread+0x174/0x218)&lt;/P&gt;&lt;P&gt;[&amp;lt;80069bc0&amp;gt;] (worker_thread+0x174/0x218) from [&amp;lt;8006d1f8&amp;gt;] (kthread+0x78/0x80)&lt;/P&gt;&lt;P&gt;[&amp;lt;8006d1f8&amp;gt;] (kthread+0x78/0x80) from [&amp;lt;8002c9c8&amp;gt;] (kernel_thread_exit+0x0/0x8)&lt;/P&gt;&lt;P&gt;Code: eb4e16c7 e5965050 e59f0024 e1a04005 (e1d510b0) &lt;/P&gt;&lt;P&gt;---[ end trace 2d71ca80cc18c456 ]---&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Problem 2:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I try to use spi_imx instead of mxc_spi, the /dev entry isn't created!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can somebody help me? I think that Problem 2 is easier to solve than 1, so anybody could give me a hint?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Ricardo Gurgel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 30 Oct 2013 20:07:55 GMT</pubDate>
    <dc:creator>ricardo_ioct</dc:creator>
    <dc:date>2013-10-30T20:07:55Z</dc:date>
    <item>
      <title>Can't use spidev on i.MX53.</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Can-t-use-spidev-on-i-MX53/m-p/248519#M22228</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm trying to communicate with a LCD module via SPI on my i.MX53 NOVSOM module(BSP 11.09, kernel 2.6.35), but I'm failing on two dfferent ways. First of all: All the IOMUX configurations was done on mx53_xxx.c for the ECSPI1 interface. In order to use the spidev interface, I use the following structure:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static struct mxc_spi_master mxcspi1_data = {&lt;/P&gt;&lt;P&gt;&amp;nbsp; .maxchipselect = 4,&lt;/P&gt;&lt;P&gt;&amp;nbsp; .spi_version = 23,&lt;/P&gt;&lt;P&gt;&amp;nbsp; .chipselect_active = mx53_evk_gpio_spi_chipselect_active,&lt;/P&gt;&lt;P&gt;&amp;nbsp; .chipselect_inactive = mx53_evk_gpio_spi_chipselect_inactive,&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static struct spi_board_info spi1_board_info[] __initdata = {&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* the modalias must be the same as spi device driver name */&lt;/P&gt;&lt;P&gt;&amp;nbsp; .modalias = "spidev",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Name of spi_driver for this device */&lt;/P&gt;&lt;P&gt;&amp;nbsp; .max_speed_hz = 20000000,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* max spi SCK clock speed in HZ */&lt;/P&gt;&lt;P&gt;&amp;nbsp; .bus_num = 1,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Framework bus number */&lt;/P&gt;&lt;P&gt;&amp;nbsp; .chip_select = 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Framework chip select. */&lt;/P&gt;&lt;P&gt;&amp;nbsp; .mode = SPI_MODE_1,&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After that, on ltib menuconfig, I enable the drivers that I'll need.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Problem 1:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When using mxc_spi and spidev modules, the inode is created on /dev, but when I try to write a byte and after read other three, I get this Oops:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;root@freescale ~$ init_lcd /dev/spidev1.0 &lt;/P&gt;&lt;P&gt;B0!!!&lt;/P&gt;&lt;P&gt;CSPI1: count=1 fifo_size=2048&lt;/P&gt;&lt;P&gt;CSPI Finish&lt;/P&gt;&lt;P&gt;RX_DATA0 = 0x0&lt;/P&gt;&lt;P&gt;data IN = 0x0 &lt;/P&gt;&lt;P&gt;Unable to handle kernel NULL pointer dereference at virtual address 00000000&lt;/P&gt;&lt;P&gt;pgd = 80004000&lt;/P&gt;&lt;P&gt;[00000000] *pgd=00000000&lt;/P&gt;&lt;P&gt;Internal error: Oops: 17 [#1] PREEMPT&lt;/P&gt;&lt;P&gt;last sysfs file: /sys/kernel/uevent_seqnum&lt;/P&gt;&lt;P&gt;Modules linked in: spidev mxc_spi&lt;/P&gt;&lt;P&gt;CPU: 0&amp;nbsp;&amp;nbsp;&amp;nbsp; Not tainted&amp;nbsp; (2.6.35.3-850-gbc67621-g74af6dc-dirty #190)&lt;/P&gt;&lt;P&gt;PC is at mxc_spi_buf_rx_u16+0x24/0x50 [mxc_spi]&lt;/P&gt;&lt;P&gt;LR is at mxc_spi_buf_rx_u16+0x18/0x50 [mxc_spi]&lt;/P&gt;&lt;P&gt;pc : [&amp;lt;7f000268&amp;gt;]&amp;nbsp;&amp;nbsp;&amp;nbsp; lr : [&amp;lt;7f00025c&amp;gt;]&amp;nbsp;&amp;nbsp;&amp;nbsp; psr: 40000013&lt;/P&gt;&lt;P&gt;sp : 954b3f20&amp;nbsp; ip : 968ba000&amp;nbsp; fp : 00000000&lt;/P&gt;&lt;P&gt;r10: 00000000&amp;nbsp; r9 : 00000000&amp;nbsp; r8 : 00000004&lt;/P&gt;&lt;P&gt;r7 : 00000000&amp;nbsp; r6 : 95489118&amp;nbsp; r5 : 00000000&amp;nbsp; r4 : 00000000&lt;/P&gt;&lt;P&gt;r3 : 954b3f2c&amp;nbsp; r2 : 954b3f14&amp;nbsp; r1 : 7f001093&amp;nbsp; r0 : 7f0010a7&lt;/P&gt;&lt;P&gt;Flags: nZcv&amp;nbsp; IRQs on&amp;nbsp; FIQs on&amp;nbsp; Mode SVC_32&amp;nbsp; ISA ARM&amp;nbsp; Segment kernel&lt;/P&gt;&lt;P&gt;Control: 10c5387d&amp;nbsp; Table: 853f0019&amp;nbsp; DAC: 00000017&lt;/P&gt;&lt;P&gt;Process mxc_spi.0 (pid: 1906, stack limit = 0x954b22e8)&lt;/P&gt;&lt;P&gt;Stack: (0x954b3f20 to 0x954b4000)&lt;/P&gt;&lt;P&gt;3f20: 95489118 954a9f1c 95489600 00000001 00000004 7f000828 954a9f1c 00000000&lt;/P&gt;&lt;P&gt;3f40: 95489118 954a9f10 954a9ef0 ffffffff 95489600 802513f4 804c1870 954b2000&lt;/P&gt;&lt;P&gt;3f60: 7f0001ac 9548912c 95259ea0 95259ea0 954b2000 95259ea8 80251270 954b3f94&lt;/P&gt;&lt;P&gt;3f80: 95489120 00000000 9548911c 80069bc0 95212000 00000000 95212000 8006d51c&lt;/P&gt;&lt;P&gt;3fa0: 954b3fa0 954b3fa0 00000000 9543fe10 954b3fd4 80069a4c 95259ea0 00000000&lt;/P&gt;&lt;P&gt;3fc0: 00000000 00000000 00000000 8006d1f8 00000000 00000000 954b3fd8 954b3fd8&lt;/P&gt;&lt;P&gt;3fe0: 00000000 9543fe10 8006d180 8002c9c8 00000013 8002c9c8 707e7021 707e7421&lt;/P&gt;&lt;P&gt;[&amp;lt;7f000268&amp;gt;] (mxc_spi_buf_rx_u16+0x24/0x50 [mxc_spi]) from [&amp;lt;7f000828&amp;gt;] (mxc_spi_poll_transfer+0x12c/0x1bc [mxc_spi])&lt;/P&gt;&lt;P&gt;[&amp;lt;7f000828&amp;gt;] (mxc_spi_poll_transfer+0x12c/0x1bc [mxc_spi]) from [&amp;lt;802513f4&amp;gt;] (bitbang_work+0x184/0x30c)&lt;/P&gt;&lt;P&gt;[&amp;lt;802513f4&amp;gt;] (bitbang_work+0x184/0x30c) from [&amp;lt;80069bc0&amp;gt;] (worker_thread+0x174/0x218)&lt;/P&gt;&lt;P&gt;[&amp;lt;80069bc0&amp;gt;] (worker_thread+0x174/0x218) from [&amp;lt;8006d1f8&amp;gt;] (kthread+0x78/0x80)&lt;/P&gt;&lt;P&gt;[&amp;lt;8006d1f8&amp;gt;] (kthread+0x78/0x80) from [&amp;lt;8002c9c8&amp;gt;] (kernel_thread_exit+0x0/0x8)&lt;/P&gt;&lt;P&gt;Code: eb4e16c7 e5965050 e59f0024 e1a04005 (e1d510b0) &lt;/P&gt;&lt;P&gt;---[ end trace 2d71ca80cc18c456 ]---&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Problem 2:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I try to use spi_imx instead of mxc_spi, the /dev entry isn't created!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can somebody help me? I think that Problem 2 is easier to solve than 1, so anybody could give me a hint?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Ricardo Gurgel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Oct 2013 20:07:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Can-t-use-spidev-on-i-MX53/m-p/248519#M22228</guid>
      <dc:creator>ricardo_ioct</dc:creator>
      <dc:date>2013-10-30T20:07:55Z</dc:date>
    </item>
  </channel>
</rss>

