How to use SPI on Colibri IMX6ULL

Hi @Matte

You need to use the num-cs property and not the fsl,spi-num-chipselects since iMX6ULL is using a different spi driver ( drivers/spi/spi-imx.c ) as mentioned in ( arch/arm/boot/dts/imx6ul.dtsi ).

With the patch below you should be able to get the spidev devices you want. The colibri-spi-csx are symbolic links for the spidev0.x devices.

Best regards,
Jaski

diff --git a/arch/arm/boot/dts/imx6ull-colibri-eval-v3.dtsi b/arch/arm/boot/dts/imx6ull-colibri-eval-v3.dtsi
index 96f4438a3569..20084ec7ae0f 100644
--- a/arch/arm/boot/dts/imx6ull-colibri-eval-v3.dtsi
+++ b/arch/arm/boot/dts/imx6ull-colibri-eval-v3.dtsi
@@ -94,15 +94,39 @@
 		spi-max-frequency = <10000000>;
 		vdd-supply = <&reg_3v3>;
 		xceiver-supply = <&reg_5v0>;
-		status = "okay";
-	};
-
-	spidev0: spidev@0 {
-		compatible = "toradex,evalspi";
-		reg = <0>;
-		spi-max-frequency = <23000000>;
 		status = "disabled";
 	};
+
+
+        spidev0: spidev@0 {
+                compatible = "toradex,evalspi";
+                reg = <0>;
+                spi-max-frequency = <1000000>;
+                status = "okay";
+        };
+
+
+        spidev1: spidev@1 {
+                compatible = "toradex,evalspi";
+                reg = <1>;
+                spi-max-frequency = <1000000>;
+                status = "okay";
+        };
+
+
+         spidev2: spidev@2 {
+                compatible = "toradex,evalspi";
+                reg = <2>;
+                spi-max-frequency = <1000000>;
+                status = "okay";
+        };
+
+      spidev3: spidev@3 {
+                compatible = "toradex,evalspi";
+                reg = <3>;
+                spi-max-frequency = <1000000>;
+                status = "okay";
+        };
 };
 
 &can1 {
@@ -298,7 +322,7 @@
 };
 
 &uart2 {
-	status = "okay";
+	status = "disabled";
 };
 
 &uart5 {
diff --git a/arch/arm/boot/dts/imx6ull-colibri.dtsi b/arch/arm/boot/dts/imx6ull-colibri.dtsi
index 10d3605e0ac4..3ef13ae776f7 100644
--- a/arch/arm/boot/dts/imx6ull-colibri.dtsi
+++ b/arch/arm/boot/dts/imx6ull-colibri.dtsi
@@ -106,7 +106,11 @@
 
 /* Colibri SPI */
 &ecspi1 {
-	cs-gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>;
+	fsl,spi-num-chipselects = <4>;
+	cs-gpios =  <&gpio1 20 GPIO_ACTIVE_LOW>,
+				<&gpio1 21 GPIO_ACTIVE_LOW>,
+				<&gpio1 22 GPIO_ACTIVE_LOW>,
+				<&gpio1 23 GPIO_ACTIVE_LOW>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>;
 };
@@ -319,7 +323,10 @@
 
 	pinctrl_ecspi1_cs: ecspi1-cs-grp {
 		fsl,pins = <
-			MX6UL_PAD_LCD_DATA21__GPIO3_IO26	0x70a0	/* SODIMM 86 */
+			MX6UL_PAD_UART2_CTS_B__GPIO1_IO22	0x70a0 /* SODIMM 32 */
+			MX6UL_PAD_UART2_RTS_B__GPIO1_IO23	0x70a0 /* SODIMM 34 */
+			MX6UL_PAD_UART2_RX_DATA__GPIO1_IO21  	0x70a0	/* SODIMM 38 */
+			MX6UL_PAD_UART2_TX_DATA__GPIO1_IO20  	0x70a0	/* SODIMM 36 */
 		>;
 	};