diff options
author | Anton Vorontsov <avorontsov@ru.mvista.com> | 2009-06-18 19:49:02 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-19 19:46:04 -0400 |
commit | d2998c2c3608e6c674f9079b661583927fbe61b0 (patch) | |
tree | d6df3fa81e7874d08c9e4ac876b2b8aaf9b002a5 /arch/powerpc | |
parent | 5afbf098d171664695db2a7e828e8d96871a01e1 (diff) |
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>
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/boot/dts/mpc8610_hpcd.dts | 32 | ||||
-rw-r--r-- | 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 cfc2c60d1f5f..f468d215f716 100644 --- a/arch/powerpc/boot/dts/mpc8610_hpcd.dts +++ b/arch/powerpc/boot/dts/mpc8610_hpcd.dts | |||
@@ -100,8 +100,18 @@ | |||
100 | }; | 100 | }; |
101 | 101 | ||
102 | board-control@3,0 { | 102 | board-control@3,0 { |
103 | #address-cells = <1>; | ||
104 | #size-cells = <1>; | ||
103 | compatible = "fsl,fpga-pixis"; | 105 | compatible = "fsl,fpga-pixis"; |
104 | reg = <3 0 0x20>; | 106 | reg = <3 0 0x20>; |
107 | ranges = <0 3 0 0x20>; | ||
108 | |||
109 | sdcsr_pio: gpio-controller@a { | ||
110 | #gpio-cells = <2>; | ||
111 | compatible = "fsl,fpga-pixis-gpio-bank"; | ||
112 | reg = <0xa 1>; | ||
113 | gpio-controller; | ||
114 | }; | ||
105 | }; | 115 | }; |
106 | }; | 116 | }; |
107 | 117 | ||
@@ -176,6 +186,28 @@ | |||
176 | interrupt-parent = <&mpic>; | 186 | interrupt-parent = <&mpic>; |
177 | }; | 187 | }; |
178 | 188 | ||
189 | spi@7000 { | ||
190 | #address-cells = <1>; | ||
191 | #size-cells = <0>; | ||
192 | compatible = "fsl,mpc8610-spi", "fsl,spi"; | ||
193 | reg = <0x7000 0x40>; | ||
194 | cell-index = <0>; | ||
195 | interrupts = <59 2>; | ||
196 | interrupt-parent = <&mpic>; | ||
197 | mode = "cpu"; | ||
198 | gpios = <&sdcsr_pio 7 0>; | ||
199 | |||
200 | mmc-slot@0 { | ||
201 | compatible = "fsl,mpc8610hpcd-mmc-slot", | ||
202 | "mmc-spi-slot"; | ||
203 | reg = <0>; | ||
204 | gpios = <&sdcsr_pio 0 1 /* nCD */ | ||
205 | &sdcsr_pio 1 0>; /* WP */ | ||
206 | voltage-ranges = <3300 3300>; | ||
207 | spi-max-frequency = <50000000>; | ||
208 | }; | ||
209 | }; | ||
210 | |||
179 | display@2c000 { | 211 | display@2c000 { |
180 | compatible = "fsl,diu"; | 212 | compatible = "fsl,diu"; |
181 | reg = <0x2c000 100>; | 213 | reg = <0x2c000 100>; |
diff --git a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c index 51eec0cd5519..627908a4cd77 100644 --- a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c +++ b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c | |||
@@ -37,6 +37,7 @@ | |||
37 | #include <linux/of_platform.h> | 37 | #include <linux/of_platform.h> |
38 | #include <sysdev/fsl_pci.h> | 38 | #include <sysdev/fsl_pci.h> |
39 | #include <sysdev/fsl_soc.h> | 39 | #include <sysdev/fsl_soc.h> |
40 | #include <sysdev/simple_gpio.h> | ||
40 | 41 | ||
41 | #include "mpc86xx.h" | 42 | #include "mpc86xx.h" |
42 | 43 | ||
@@ -51,6 +52,9 @@ static struct of_device_id __initdata mpc8610_ids[] = { | |||
51 | 52 | ||
52 | static int __init mpc8610_declare_of_platform_devices(void) | 53 | static int __init mpc8610_declare_of_platform_devices(void) |
53 | { | 54 | { |
55 | /* Firstly, register PIXIS GPIOs. */ | ||
56 | simple_gpiochip_init("fsl,fpga-pixis-gpio-bank"); | ||
57 | |||
54 | /* Without this call, the SSI device driver won't get probed. */ | 58 | /* Without this call, the SSI device driver won't get probed. */ |
55 | of_platform_bus_probe(NULL, mpc8610_ids, NULL); | 59 | of_platform_bus_probe(NULL, mpc8610_ids, NULL); |
56 | 60 | ||