powerpc/86xx: add MMC SPI support for MPC8610HPCD boards

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 <avorontsov@ru.mvista.com>
Cc: Kumar Gala <galak@gate.crashing.org>
Cc: David Brownell <david-b@pacbell.net>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Anton Vorontsov 2009-06-18 16:49:02 -07:00 committed by Linus Torvalds
parent 5afbf098d1
commit d2998c2c36
2 changed files with 36 additions and 0 deletions

View file

@ -100,8 +100,18 @@ flash@6,0 {
};
board-control@3,0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "fsl,fpga-pixis";
reg = <3 0 0x20>;
ranges = <0 3 0 0x20>;
sdcsr_pio: gpio-controller@a {
#gpio-cells = <2>;
compatible = "fsl,fpga-pixis-gpio-bank";
reg = <0xa 1>;
gpio-controller;
};
};
};
@ -176,6 +186,28 @@ serial1: serial@4600 {
interrupt-parent = <&mpic>;
};
spi@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-slot@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>;
};
};
display@2c000 {
compatible = "fsl,diu";
reg = <0x2c000 100>;

View file

@ -37,6 +37,7 @@
#include <linux/of_platform.h>
#include <sysdev/fsl_pci.h>
#include <sysdev/fsl_soc.h>
#include <sysdev/simple_gpio.h>
#include "mpc86xx.h"
@ -51,6 +52,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);