TS-TPC-7990 CPU SPI Controller: Difference between revisions

From embeddedTS Manuals
No edit summary
No edit summary
Line 1: Line 1:
SPI is located on the [[#DIO Header]] through /dev/spidev1.2.
SPI is located on the [[#DIO Header]] through /dev/spidev1.2.


This board includes one SPI interface which is accessible through either specific kernel drivers, or userspace using the /dev/spi interface.  To utilize SPI, some projects will end up with a customized device tree, so setting up the kernel build environment will be necessary.  See the [[#Compile_the_Kernel|kernel compile guide here]] for more details.
This board includes one SPI interface which is accessible through either kernel drivers, or userspace using the /dev/spi interface.   


Open the dts from arch/arm/boot/dts/imx6qdl-ts7990.dtsi.  The kernel requires a spidev device be added to the relevant ECSPI controller. For example:
The kernel development which would be needed to use other kernel space SPI drivers is beyond the scope of this document, but the build environment is described in the [[#Compile_the_Kernel|kernel compile guide here]].
<source lang=javascript>
&ecspi2 {
fsl,spi-num-chipselects = <3>;
cs-gpios = <&gpio5 31 0>, <&gpio1 6 0>, <&gpio5 18 0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi2>;
status = "okay";


serial1: max3100-0@0 {
The /dev/spidev1.2 interface can be accessed using the userspace API.  For more information see the documentation and sample code:
compatible = "max3100-ts";
reg = <0>;
interrupt-parent = <&gpio5>;
interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
spi-max-frequency = <10000000>;
loopback = <0>;
crystal = <1>;
poll-time = <100>;
};
 
spidevfpga: spi@1 {
compatible = "spidev";
reg = <1>;
spi-max-frequency = <1000000>;
};
 
spidevdc1: spi@2 {
compatible = "spidev";
reg = <2>;
spi-max-frequency = <1000000>;
};
};
</source>
 
In this case ecspi2 is configured with a spidev at 1MHz which will be available at /dev/spidev1.1 and /dev/spidev1.2.
 
Once you have a /dev/spidev device, you can open this file and use the standard Linux SPI API.  For more information see the documentation and sample code:
* [https://github.com/embeddedarm/linux-3.10.17-imx6/blob/master/Documentation/spi/spidev Linux kernel spidev documentation]
* [https://github.com/embeddedarm/linux-3.10.17-imx6/blob/master/Documentation/spi/spidev Linux kernel spidev documentation]
* [https://github.com/embeddedarm/linux-3.10.17-imx6/blob/master/Documentation/spi/spidev_test.c spidev example code]
* [https://github.com/embeddedarm/linux-3.10.17-imx6/blob/master/Documentation/spi/spidev_test.c spidev example code]

Revision as of 15:52, 10 August 2017

SPI is located on the #DIO Header through /dev/spidev1.2.

This board includes one SPI interface which is accessible through either kernel drivers, or userspace using the /dev/spi interface.

The kernel development which would be needed to use other kernel space SPI drivers is beyond the scope of this document, but the build environment is described in the kernel compile guide here.

The /dev/spidev1.2 interface can be accessed using the userspace API. For more information see the documentation and sample code: