powerpc/83xx: add mmc-spi support via the device tree for MPC8323E-RDB
authorAnton Vorontsov <avorontsov@ru.mvista.com>
Tue, 31 Mar 2009 22:24:39 +0000 (15:24 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 1 Apr 2009 15:59:23 +0000 (08:59 -0700)
- Add gpio-controller node to manage QE GPIO Bank D;
- Add mmc-spi node;
- Modify board file so that it won't use legacy SPI support with the new
  device trees.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Cc: David Brownell <david-b@pacbell.net>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Kumar Gala <galak@gate.crashing.org>
Cc: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/powerpc/boot/dts/mpc832x_rdb.dts
arch/powerpc/platforms/83xx/mpc832x_rdb.c

index dea30910c136800cbe1bdb37fbe3e354376cf9d3..4319bd70a580beaa65a992eb92c6b94e91285c7c 100644 (file)
                };
 
                par_io@1400 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
                        reg = <0x1400 0x100>;
+                       ranges = <3 0x1448 0x18>;
+                       compatible = "fsl,mpc8323-qe-pario";
                        device_type = "par_io";
                        num-ports = <7>;
 
+                       qe_pio_d: gpio-controller@1448 {
+                               #gpio-cells = <2>;
+                               compatible = "fsl,mpc8323-qe-pario-bank";
+                               reg = <3 0x18>;
+                               gpio-controller;
+                       };
+
                        ucc2pio:ucc_pin@02 {
                                pio-map = <
                        /* port  pin  dir  open_drain  assignment  has_irq */
                };
 
                spi@4c0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
                        cell-index = <0>;
                        compatible = "fsl,spi";
                        reg = <0x4c0 0x40>;
                        interrupts = <2>;
                        interrupt-parent = <&qeic>;
+                       gpios = <&qe_pio_d 13 0>;
                        mode = "cpu-qe";
+
+                       mmc-slot@0 {
+                               compatible = "fsl,mpc8323rdb-mmc-slot",
+                                            "mmc-spi-slot";
+                               reg = <0>;
+                               gpios = <&qe_pio_d 14 1
+                                        &qe_pio_d 15 0>;
+                               voltage-ranges = <3300 3300>;
+                               spi-max-frequency = <50000000>;
+                       };
                };
 
                spi@500 {
index 28e23cde64a1fd20988ffbff2d548da216249631..e1e7eeb7d3a38cc0ea24c49d7a58171323f946b1 100644 (file)
@@ -68,6 +68,12 @@ static int __init mpc832x_spi_init(void)
        par_io_config_pin(3, 14, 2, 0, 0, 0); /* SD_INSERT, I */
        par_io_config_pin(3, 15, 2, 0, 0, 0); /* SD_PROTECT,I */
 
+       /*
+        * Don't bother with legacy stuff when device tree contains
+        * mmc-spi-slot node.
+        */
+       if (of_find_compatible_node(NULL, NULL, "mmc-spi-slot"))
+               return 0;
        return fsl_spi_init(&mpc832x_spi_boardinfo, 1, mpc83xx_spi_cs_control);
 }
 machine_device_initcall(mpc832x_rdb, mpc832x_spi_init);