aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/powerpc/booting-without-of.txt41
-rw-r--r--arch/powerpc/boot/dts/mpc8610_hpcd.dts113
-rw-r--r--arch/powerpc/configs/mpc8610_hpcd_defconfig171
-rw-r--r--arch/powerpc/platforms/86xx/mpc8610_hpcd.c15
4 files changed, 336 insertions, 4 deletions
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt
index a13d4578319c..da98154328a0 100644
--- a/Documentation/powerpc/booting-without-of.txt
+++ b/Documentation/powerpc/booting-without-of.txt
@@ -56,6 +56,7 @@ Table of Contents
56 m) Chipselect/Local Bus 56 m) Chipselect/Local Bus
57 n) 4xx/Axon EMAC ethernet nodes 57 n) 4xx/Axon EMAC ethernet nodes
58 o) Xilinx IP cores 58 o) Xilinx IP cores
59 p) Freescale Synchronous Serial Interface
59 60
60 VII - Specifying interrupt information for devices 61 VII - Specifying interrupt information for devices
61 1) interrupts property 62 1) interrupts property
@@ -2575,6 +2576,46 @@ platforms are moved over to use the flattened-device-tree model.
2575 Requred properties: 2576 Requred properties:
2576 - current-speed : Baud rate of uartlite 2577 - current-speed : Baud rate of uartlite
2577 2578
2579 p) Freescale Synchronous Serial Interface
2580
2581 The SSI is a serial device that communicates with audio codecs. It can
2582 be programmed in AC97, I2S, left-justified, or right-justified modes.
2583
2584 Required properties:
2585 - compatible : compatible list, containing "fsl,ssi"
2586 - cell-index : the SSI, <0> = SSI1, <1> = SSI2, and so on
2587 - reg : offset and length of the register set for the device
2588 - interrupts : <a b> where a is the interrupt number and b is a
2589 field that represents an encoding of the sense and
2590 level information for the interrupt. This should be
2591 encoded based on the information in section 2)
2592 depending on the type of interrupt controller you
2593 have.
2594 - interrupt-parent : the phandle for the interrupt controller that
2595 services interrupts for this device.
2596 - fsl,mode : the operating mode for the SSI interface
2597 "i2s-slave" - I2S mode, SSI is clock slave
2598 "i2s-master" - I2S mode, SSI is clock master
2599 "lj-slave" - left-justified mode, SSI is clock slave
2600 "lj-master" - l.j. mode, SSI is clock master
2601 "rj-slave" - right-justified mode, SSI is clock slave
2602 "rj-master" - r.j., SSI is clock master
2603 "ac97-slave" - AC97 mode, SSI is clock slave
2604 "ac97-master" - AC97 mode, SSI is clock master
2605
2606 Optional properties:
2607 - codec-handle : phandle to a 'codec' node that defines an audio
2608 codec connected to this SSI. This node is typically
2609 a child of an I2C or other control node.
2610
2611 Child 'codec' node required properties:
2612 - compatible : compatible list, contains the name of the codec
2613
2614 Child 'codec' node optional properties:
2615 - clock-frequency : The frequency of the input clock, which typically
2616 comes from an on-board dedicated oscillator.
2617
2618
2578 More devices will be defined as this spec matures. 2619 More devices will be defined as this spec matures.
2579 2620
2580VII - Specifying interrupt information for devices 2621VII - Specifying interrupt information for devices
diff --git a/arch/powerpc/boot/dts/mpc8610_hpcd.dts b/arch/powerpc/boot/dts/mpc8610_hpcd.dts
index 01040a752c82..d98715cbda28 100644
--- a/arch/powerpc/boot/dts/mpc8610_hpcd.dts
+++ b/arch/powerpc/boot/dts/mpc8610_hpcd.dts
@@ -1,7 +1,7 @@
1/* 1/*
2 * MPC8610 HPCD Device Tree Source 2 * MPC8610 HPCD Device Tree Source
3 * 3 *
4 * Copyright 2007 Freescale Semiconductor Inc. 4 * Copyright 2007-2008 Freescale Semiconductor Inc.
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify it 6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License Version 2 as published 7 * under the terms of the GNU General Public License Version 2 as published
@@ -49,6 +49,7 @@
49 #size-cells = <1>; 49 #size-cells = <1>;
50 #interrupt-cells = <2>; 50 #interrupt-cells = <2>;
51 device_type = "soc"; 51 device_type = "soc";
52 compatible = "fsl,mpc8610-immr", "simple-bus";
52 ranges = <0 e0000000 00100000>; 53 ranges = <0 e0000000 00100000>;
53 reg = <e0000000 1000>; 54 reg = <e0000000 1000>;
54 bus-frequency = <0>; 55 bus-frequency = <0>;
@@ -62,6 +63,13 @@
62 interrupts = <2b 2>; 63 interrupts = <2b 2>;
63 interrupt-parent = <&mpic>; 64 interrupt-parent = <&mpic>;
64 dfsrr; 65 dfsrr;
66
67 cs4270:codec@4f {
68 compatible = "cirrus,cs4270";
69 reg = <4f>;
70 /* MCLK source is a stand-alone oscillator */
71 clock-frequency = <bb8000>;
72 };
65 }; 73 };
66 74
67 i2c@3100 { 75 i2c@3100 {
@@ -111,6 +119,109 @@
111 reg = <e0000 1000>; 119 reg = <e0000 1000>;
112 fsl,has-rstcr; 120 fsl,has-rstcr;
113 }; 121 };
122
123 i2s@16000 {
124 compatible = "fsl,mpc8610-ssi";
125 cell-index = <0>;
126 reg = <16000 100>;
127 interrupt-parent = <&mpic>;
128 interrupts = <3e 2>;
129 fsl,mode = "i2s-slave";
130 codec-handle = <&cs4270>;
131 };
132
133 ssi@16100 {
134 compatible = "fsl,mpc8610-ssi";
135 cell-index = <1>;
136 reg = <16100 100>;
137 interrupt-parent = <&mpic>;
138 interrupts = <3f 2>;
139 };
140
141 dma@21300 {
142 #address-cells = <1>;
143 #size-cells = <1>;
144 compatible = "fsl,mpc8610-dma", "fsl,eloplus-dma";
145 cell-index = <0>;
146 reg = <21300 4>; /* DMA general status register */
147 ranges = <0 21100 200>;
148
149 dma-channel@0 {
150 compatible = "fsl,mpc8610-dma-channel",
151 "fsl,eloplus-dma-channel";
152 cell-index = <0>;
153 reg = <0 80>;
154 interrupt-parent = <&mpic>;
155 interrupts = <14 2>;
156 };
157 dma-channel@1 {
158 compatible = "fsl,mpc8610-dma-channel",
159 "fsl,eloplus-dma-channel";
160 cell-index = <1>;
161 reg = <80 80>;
162 interrupt-parent = <&mpic>;
163 interrupts = <15 2>;
164 };
165 dma-channel@2 {
166 compatible = "fsl,mpc8610-dma-channel",
167 "fsl,eloplus-dma-channel";
168 cell-index = <2>;
169 reg = <100 80>;
170 interrupt-parent = <&mpic>;
171 interrupts = <16 2>;
172 };
173 dma-channel@3 {
174 compatible = "fsl,mpc8610-dma-channel",
175 "fsl,eloplus-dma-channel";
176 cell-index = <3>;
177 reg = <180 80>;
178 interrupt-parent = <&mpic>;
179 interrupts = <17 2>;
180 };
181 };
182
183 dma@c300 {
184 #address-cells = <1>;
185 #size-cells = <1>;
186 compatible = "fsl,mpc8610-dma", "fsl,mpc8540-dma";
187 cell-index = <1>;
188 reg = <c300 4>; /* DMA general status register */
189 ranges = <0 c100 200>;
190
191 dma-channel@0 {
192 compatible = "fsl,mpc8610-dma-channel",
193 "fsl,mpc8540-dma-channel";
194 cell-index = <0>;
195 reg = <0 80>;
196 interrupt-parent = <&mpic>;
197 interrupts = <3c 2>;
198 };
199 dma-channel@1 {
200 compatible = "fsl,mpc8610-dma-channel",
201 "fsl,mpc8540-dma-channel";
202 cell-index = <1>;
203 reg = <80 80>;
204 interrupt-parent = <&mpic>;
205 interrupts = <3d 2>;
206 };
207 dma-channel@2 {
208 compatible = "fsl,mpc8610-dma-channel",
209 "fsl,mpc8540-dma-channel";
210 cell-index = <2>;
211 reg = <100 80>;
212 interrupt-parent = <&mpic>;
213 interrupts = <3e 2>;
214 };
215 dma-channel@3 {
216 compatible = "fsl,mpc8610-dma-channel",
217 "fsl,mpc8540-dma-channel";
218 cell-index = <3>;
219 reg = <180 80>;
220 interrupt-parent = <&mpic>;
221 interrupts = <3f 2>;
222 };
223 };
224
114 }; 225 };
115 226
116 pci0: pci@e0008000 { 227 pci0: pci@e0008000 {
diff --git a/arch/powerpc/configs/mpc8610_hpcd_defconfig b/arch/powerpc/configs/mpc8610_hpcd_defconfig
index 9614d24f832a..2500ef42959d 100644
--- a/arch/powerpc/configs/mpc8610_hpcd_defconfig
+++ b/arch/powerpc/configs/mpc8610_hpcd_defconfig
@@ -696,7 +696,7 @@ CONFIG_SERIAL_8250_RSA=y
696CONFIG_SERIAL_CORE=y 696CONFIG_SERIAL_CORE=y
697CONFIG_SERIAL_CORE_CONSOLE=y 697CONFIG_SERIAL_CORE_CONSOLE=y
698# CONFIG_SERIAL_JSM is not set 698# CONFIG_SERIAL_JSM is not set
699CONFIG_SERIAL_OF_PLATFORM=y 699# CONFIG_SERIAL_OF_PLATFORM is not set
700CONFIG_UNIX98_PTYS=y 700CONFIG_UNIX98_PTYS=y
701# CONFIG_LEGACY_PTYS is not set 701# CONFIG_LEGACY_PTYS is not set
702# CONFIG_IPMI_HANDLER is not set 702# CONFIG_IPMI_HANDLER is not set
@@ -708,7 +708,60 @@ CONFIG_UNIX98_PTYS=y
708# CONFIG_RAW_DRIVER is not set 708# CONFIG_RAW_DRIVER is not set
709# CONFIG_TCG_TPM is not set 709# CONFIG_TCG_TPM is not set
710CONFIG_DEVPORT=y 710CONFIG_DEVPORT=y
711# CONFIG_I2C is not set 711CONFIG_I2C=y
712CONFIG_I2C_BOARDINFO=y
713# CONFIG_I2C_CHARDEV is not set
714
715#
716# I2C Algorithms
717#
718# CONFIG_I2C_ALGOBIT is not set
719# CONFIG_I2C_ALGOPCF is not set
720# CONFIG_I2C_ALGOPCA is not set
721
722#
723# I2C Hardware Bus support
724#
725# CONFIG_I2C_ALI1535 is not set
726# CONFIG_I2C_ALI1563 is not set
727# CONFIG_I2C_ALI15X3 is not set
728# CONFIG_I2C_AMD756 is not set
729# CONFIG_I2C_AMD8111 is not set
730# CONFIG_I2C_I801 is not set
731# CONFIG_I2C_I810 is not set
732# CONFIG_I2C_PIIX4 is not set
733CONFIG_I2C_MPC=y
734# CONFIG_I2C_NFORCE2 is not set
735# CONFIG_I2C_OCORES is not set
736# CONFIG_I2C_PARPORT_LIGHT is not set
737# CONFIG_I2C_PROSAVAGE is not set
738# CONFIG_I2C_SAVAGE4 is not set
739# CONFIG_I2C_SIMTEC is not set
740# CONFIG_I2C_SIS5595 is not set
741# CONFIG_I2C_SIS630 is not set
742# CONFIG_I2C_SIS96X is not set
743# CONFIG_I2C_TAOS_EVM is not set
744# CONFIG_I2C_VIA is not set
745# CONFIG_I2C_VIAPRO is not set
746# CONFIG_I2C_VOODOO3 is not set
747
748#
749# Miscellaneous I2C Chip support
750#
751# CONFIG_SENSORS_DS1337 is not set
752# CONFIG_SENSORS_DS1374 is not set
753# CONFIG_DS1682 is not set
754# CONFIG_SENSORS_EEPROM is not set
755# CONFIG_SENSORS_PCF8574 is not set
756# CONFIG_SENSORS_PCA9539 is not set
757# CONFIG_SENSORS_PCF8591 is not set
758# CONFIG_SENSORS_M41T00 is not set
759# CONFIG_SENSORS_MAX6875 is not set
760# CONFIG_SENSORS_TSL2550 is not set
761# CONFIG_I2C_DEBUG_CORE is not set
762# CONFIG_I2C_DEBUG_ALGO is not set
763# CONFIG_I2C_DEBUG_BUS is not set
764# CONFIG_I2C_DEBUG_CHIP is not set
712 765
713# 766#
714# SPI support 767# SPI support
@@ -763,7 +816,119 @@ CONFIG_DUMMY_CONSOLE=y
763# 816#
764# Sound 817# Sound
765# 818#
766# CONFIG_SOUND is not set 819CONFIG_SOUND=y
820
821#
822# Advanced Linux Sound Architecture
823#
824CONFIG_SND=y
825CONFIG_SND_TIMER=y
826CONFIG_SND_PCM=y
827# CONFIG_SND_SEQUENCER is not set
828CONFIG_SND_OSSEMUL=y
829CONFIG_SND_MIXER_OSS=y
830CONFIG_SND_PCM_OSS=y
831# CONFIG_SND_PCM_OSS_PLUGINS is not set
832# CONFIG_SND_DYNAMIC_MINORS is not set
833# CONFIG_SND_SUPPORT_OLD_API is not set
834CONFIG_SND_VERBOSE_PROCFS=y
835# CONFIG_SND_VERBOSE_PRINTK is not set
836# CONFIG_SND_DEBUG is not set
837
838#
839# Generic devices
840#
841# CONFIG_SND_DUMMY is not set
842# CONFIG_SND_MTPAV is not set
843# CONFIG_SND_SERIAL_U16550 is not set
844# CONFIG_SND_MPU401 is not set
845
846#
847# PCI devices
848#
849# CONFIG_SND_AD1889 is not set
850# CONFIG_SND_ALS300 is not set
851# CONFIG_SND_ALS4000 is not set
852# CONFIG_SND_ALI5451 is not set
853# CONFIG_SND_ATIIXP is not set
854# CONFIG_SND_ATIIXP_MODEM is not set
855# CONFIG_SND_AU8810 is not set
856# CONFIG_SND_AU8820 is not set
857# CONFIG_SND_AU8830 is not set
858# CONFIG_SND_AZT3328 is not set
859# CONFIG_SND_BT87X is not set
860# CONFIG_SND_CA0106 is not set
861# CONFIG_SND_CMIPCI is not set
862# CONFIG_SND_CS4281 is not set
863# CONFIG_SND_CS46XX is not set
864# CONFIG_SND_CS5530 is not set
865# CONFIG_SND_DARLA20 is not set
866# CONFIG_SND_GINA20 is not set
867# CONFIG_SND_LAYLA20 is not set
868# CONFIG_SND_DARLA24 is not set
869# CONFIG_SND_GINA24 is not set
870# CONFIG_SND_LAYLA24 is not set
871# CONFIG_SND_MONA is not set
872# CONFIG_SND_MIA is not set
873# CONFIG_SND_ECHO3G is not set
874# CONFIG_SND_INDIGO is not set
875# CONFIG_SND_INDIGOIO is not set
876# CONFIG_SND_INDIGODJ is not set
877# CONFIG_SND_EMU10K1 is not set
878# CONFIG_SND_EMU10K1X is not set
879# CONFIG_SND_ENS1370 is not set
880# CONFIG_SND_ENS1371 is not set
881# CONFIG_SND_ES1938 is not set
882# CONFIG_SND_ES1968 is not set
883# CONFIG_SND_FM801 is not set
884# CONFIG_SND_HDA_INTEL is not set
885# CONFIG_SND_HDSP is not set
886# CONFIG_SND_HDSPM is not set
887# CONFIG_SND_ICE1712 is not set
888# CONFIG_SND_ICE1724 is not set
889# CONFIG_SND_INTEL8X0 is not set
890# CONFIG_SND_INTEL8X0M is not set
891# CONFIG_SND_KORG1212 is not set
892# CONFIG_SND_MAESTRO3 is not set
893# CONFIG_SND_MIXART is not set
894# CONFIG_SND_NM256 is not set
895# CONFIG_SND_PCXHR is not set
896# CONFIG_SND_RIPTIDE is not set
897# CONFIG_SND_RME32 is not set
898# CONFIG_SND_RME96 is not set
899# CONFIG_SND_RME9652 is not set
900# CONFIG_SND_SONICVIBES is not set
901# CONFIG_SND_TRIDENT is not set
902# CONFIG_SND_VIA82XX is not set
903# CONFIG_SND_VIA82XX_MODEM is not set
904# CONFIG_SND_VX222 is not set
905# CONFIG_SND_YMFPCI is not set
906
907#
908# ALSA PowerMac devices
909#
910
911#
912# ALSA PowerPC devices
913#
914
915#
916# System on Chip audio support
917#
918CONFIG_SND_SOC=y
919
920#
921# SoC Audio support for SuperH
922#
923
924#
925# ALSA SoC audio for Freescale SOCs
926#
927CONFIG_SND_SOC_MPC8610=y
928CONFIG_SND_SOC_MPC8610_HPCD=y
929CONFIG_SND_SOC_CS4270=y
930CONFIG_SND_SOC_CS4270_VD33_ERRATA=y
931
767CONFIG_HID_SUPPORT=y 932CONFIG_HID_SUPPORT=y
768CONFIG_HID=y 933CONFIG_HID=y
769# CONFIG_HID_DEBUG is not set 934# CONFIG_HID_DEBUG is not set
diff --git a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
index c6d2f48f8f3d..0b07485641fe 100644
--- a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
+++ b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
@@ -34,9 +34,24 @@
34 34
35#include <asm/mpic.h> 35#include <asm/mpic.h>
36 36
37#include <linux/of_platform.h>
37#include <sysdev/fsl_pci.h> 38#include <sysdev/fsl_pci.h>
38#include <sysdev/fsl_soc.h> 39#include <sysdev/fsl_soc.h>
39 40
41static struct of_device_id __initdata mpc8610_ids[] = {
42 { .compatible = "fsl,mpc8610-immr", },
43 {}
44};
45
46static int __init mpc8610_declare_of_platform_devices(void)
47{
48 /* Without this call, the SSI device driver won't get probed. */
49 of_platform_bus_probe(NULL, mpc8610_ids, NULL);
50
51 return 0;
52}
53machine_device_initcall(mpc86xx_hpcd, mpc8610_declare_of_platform_devices);
54
40void __init 55void __init
41mpc86xx_hpcd_init_irq(void) 56mpc86xx_hpcd_init_irq(void)
42{ 57{