TS-TPC-7990 CPU SPI Controller: Difference between revisions
(Created page with "The CPU has 1 SPI controller which are accessible through either specific kernel drivers, or userspace using the /dev/spi interface. To utilize SPI, some projects will end up...") |
No edit summary |
||
Line 1: | Line 1: | ||
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. | |||
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: | 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: |
Revision as of 15:26, 27 October 2016
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 kernel compile guide here for more details.
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:
&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 {
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>;
};
};
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: