This patch adds spi and mmc-spi-slot nodes, plus a gpio-controller
for PIXIS' sdcsr bank that is used for managing SPI chip-select and
for reading card's states.

Signed-off-by: Anton Vorontsov <avoront...@ru.mvista.com>
---
 arch/powerpc/boot/dts/mpc8610_hpcd.dts     |   32 ++++++++++++++++++++++++++++
 arch/powerpc/platforms/86xx/mpc8610_hpcd.c |    4 +++
 2 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/boot/dts/mpc8610_hpcd.dts 
b/arch/powerpc/boot/dts/mpc8610_hpcd.dts
index 1bd3ebe..dbb80f7 100644
--- a/arch/powerpc/boot/dts/mpc8610_hpcd.dts
+++ b/arch/powerpc/boot/dts/mpc8610_hpcd.dts
@@ -100,8 +100,18 @@
                };
 
                board-cont...@3,0 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
                        compatible = "fsl,fpga-pixis";
                        reg = <3 0 0x20>;
+                       ranges = <0 3 0 0x20>;
+
+                       sdcsr_pio: gpio-control...@a {
+                               #gpio-cells = <2>;
+                               compatible = "fsl,fpga-pixis-gpio-bank";
+                               reg = <0xa 1>;
+                               gpio-controller;
+                       };
                };
        };
 
@@ -164,6 +174,28 @@
                        interrupt-parent = <&mpic>;
                };
 
+               s...@7000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "fsl,mpc8610-spi", "fsl,spi";
+                       reg = <0x7000 0x40>;
+                       cell-index = <0>;
+                       interrupts = <59 2>;
+                       interrupt-parent = <&mpic>;
+                       mode = "cpu";
+                       gpios = <&sdcsr_pio 7 0>;
+
+                       mmc-s...@0 {
+                               compatible = "fsl,mpc8610hpcd-mmc-slot",
+                                            "mmc-spi-slot";
+                               reg = <0>;
+                               gpios = <&sdcsr_pio 0 1   /* nCD */
+                                        &sdcsr_pio 1 0>; /*  WP */
+                               voltage-ranges = <3300 3300>;
+                               spi-max-frequency = <50000000>;
+                       };
+               };
+
                disp...@2c000 {
                        compatible = "fsl,diu";
                        reg = <0x2c000 100>;
diff --git a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c 
b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
index 3f49a6f..ce64572 100644
--- a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
+++ b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
@@ -38,6 +38,7 @@
 #include <linux/of_platform.h>
 #include <sysdev/fsl_pci.h>
 #include <sysdev/fsl_soc.h>
+#include <sysdev/simple_gpio.h>
 
 #include "mpc86xx.h"
 
@@ -52,6 +53,9 @@ static struct of_device_id __initdata mpc8610_ids[] = {
 
 static int __init mpc8610_declare_of_platform_devices(void)
 {
+       /* Firstly, register PIXIS GPIOs. */
+       simple_gpiochip_init("fsl,fpga-pixis-gpio-bank");
+
        /* Without this call, the SSI device driver won't get probed. */
        of_platform_bus_probe(NULL, mpc8610_ids, NULL);
 
-- 
1.6.2.2

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to