The DAC found on the last chip select requires a word length of 12 bits,
which is not supported by the SSP controller of the iMX28. Use
bitbanging for that bus to support such a length.

Signed-off-by: Maxime Ripard <maxime.rip...@free-electrons.com>
---
 arch/arm/boot/dts/imx28-cfa10049.dts |   78 ++++++++++++++++++----------------
 1 file changed, 42 insertions(+), 36 deletions(-)

diff --git a/arch/arm/boot/dts/imx28-cfa10049.dts 
b/arch/arm/boot/dts/imx28-cfa10049.dts
index 7890acc..dd91244 100644
--- a/arch/arm/boot/dts/imx28-cfa10049.dts
+++ b/arch/arm/boot/dts/imx28-cfa10049.dts
@@ -52,48 +52,17 @@
                                spi3_pins_cfa10049: spi3-cfa10049@0 {
                                        reg = <0>;
                                        fsl,pinmux-ids = <
-                                               0x0181 /* 
MX28_PAD_GPMI_RDN__SSP3_SCK */
-                                               0x01c1 /* 
MX28_PAD_GPMI_RESETN__SSP3_CMD */
-                                               0x0111 /* 
MX28_PAD_GPMI_CE1N__SSP3_D3 */
-                                               0x01a2 /* 
MX28_PAD_GPMI_ALE__SSP3_D4 */
-                                               0x01b2 /* 
MX28_PAD_GPMI_CLE__SSP3_D5 */
+                                               0x0183 /* 
MX28_PAD_GPMI_RDN__GPIO_0_24 */
+                                               0x01c3 /* 
MX28_PAD_GPMI_RESETN__GPIO_0_28 */
+                                               0x0113 /* 
MX28_PAD_GPMI_CE1N__GPIO_0_17 */
+                                               0x01a3 /* 
MX28_PAD_GPMI_ALE__GPIO_0_26 */
+                                               0x01b3 /* 
MX28_PAD_GPMI_CLE__GPIO_0_27 */
                                        >;
                                        fsl,drive-strength = <1>;
                                        fsl,voltage = <1>;
                                        fsl,pull-up = <1>;
                                };
                        };
-
-                       ssp3: ssp@80016000 {
-                               compatible = "fsl,imx28-spi";
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&spi3_pins_cfa10049>;
-                               status = "okay";
-
-                               gpio5: gpio5@0 {
-                                       compatible = "fairchild,74hc595";
-                                       gpio-controller;
-                                       #gpio-cells = <2>;
-                                       reg = <0>;
-                                       registers-number = <2>;
-                                       spi-max-frequency = <100000>;
-                               };
-
-                               gpio6: gpio6@1 {
-                                       compatible = "fairchild,74hc595";
-                                       gpio-controller;
-                                       #gpio-cells = <2>;
-                                       reg = <1>;
-                                       registers-number = <4>;
-                                       spi-max-frequency = <100000>;
-                               };
-
-                               dac0: dh2228@2 {
-                                       compatible = "rohm,dh2228fv";
-                                       reg = <2>;
-                                       spi-max-frequency = <100000>;
-                               };
-                       };
                };
 
                apbx@80040000 {
@@ -177,4 +146,41 @@
                        status = "okay";
                };
        };
+
+       spi3 {
+               compatible = "spi-gpio";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi3_pins_cfa10049>;
+               status = "okay";
+               gpio-sck = <&gpio0 24 0>;
+               gpio-mosi = <&gpio0 28 0>;
+               cs-gpios = <&gpio0 17 0 &gpio0 26 0 &gpio0 27 0>;
+               num-chipselects = <3>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               gpio5: gpio5@0 {
+                       compatible = "fairchild,74hc595";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       reg = <0>;
+                       registers-number = <2>;
+                       spi-max-frequency = <100000>;
+               };
+
+               gpio6: gpio6@1 {
+                       compatible = "fairchild,74hc595";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       reg = <1>;
+                       registers-number = <4>;
+                       spi-max-frequency = <100000>;
+               };
+
+               dac0: dh2228@2 {
+                       compatible = "rohm,dh2228fv";
+                       reg = <2>;
+                       spi-max-frequency = <100000>;
+               };
+       };
 };
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to