Note that there are some explanatory texts on larger screens.

plurals
  1. POspidev cannot control the chip select signal
    text
    copied!<p>I use kernel 3.12.rc4 on an embedded linux device (olimex imx233 micro). My aim is to use <code>/dev/spidev</code> to be able to communicate with another spi device. </p> <p>I edit <code>arch/arm/boot/dts/imx23-olinuxino.dts</code> as:</p> <pre><code>ssp1: ssp@80034000 { #address-cells = &lt;1&gt;; #size-cells = &lt;0&gt;; compatible = "fsl,imx23-spi"; pinctrl-names = "default"; pinctrl-0 = &lt;&amp;spi2_pins_a&gt;; clock-frequency = &lt;1000000&gt;; status = "okay"; spidev: spidev@0 { compatible = "spidev"; spi-max-frequency = &lt;1000000&gt;; reg = &lt;1&gt;; }; }; </code></pre> <p><code>arch/arm/boot/dts/imx23.dtsi:</code> has this config</p> <pre><code>spi2_pins_a: spi2@0 { reg = &lt;0&gt;; fsl,pinmux-ids = &lt; 0x0182 /* MX23_PAD_GPMI_WRN__SSP2_SCK */ 0x0142 /* MX23_PAD_GPMI_RDY1__SSP2_CMD */ 0x0002 /* MX23_PAD_GPMI_D00__SSP2_DATA0 */ 0x0032 /* MX23_PAD_GPMI_D03__SSP2_DATA3 */ &gt;; fsl,drive-strength = &lt;1&gt;; fsl,voltage = &lt;1&gt;; fsl,pull-up = &lt;1&gt;; }; </code></pre> <p>Device binding looks correct. When I compile the kernel I get the <code>/dev/spidev1.1</code>. After that I use <a href="https://www.kernel.org/doc/Documentation/spi/spidev_test.c">spidev_test.c</a> and monitor the pins by an oscilloscope. The SCK and MOSI output signals correctly, however, the chipselect is set to the logic high even during the data transfer. </p> <p>Is there any way to determine why spidev cannot set to logic low during the transmission? It seems like either additional things needs to be passed on kernel or there is an issue on spidev that cannot control the chip select . I wonder if I need to change anything on the spidev.h or spidev.c on the driver/spi directory of the kernel? or how can I solve it?</p> <p><a href="http://www.freescale.com/files/dsp/doc/ref_manual/IMX23RM.pdf">The reference manual</a> for the processor</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload