diff options
-rw-r--r-- | Documentation/powerpc/booting-without-of.txt | 41 | ||||
-rw-r--r-- | arch/powerpc/boot/dts/mpc8610_hpcd.dts | 113 | ||||
-rw-r--r-- | arch/powerpc/configs/mpc8610_hpcd_defconfig | 171 | ||||
-rw-r--r-- | arch/powerpc/platforms/86xx/mpc8610_hpcd.c | 15 |
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 | ||
2580 | VII - Specifying interrupt information for devices | 2621 | VII - 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 | |||
696 | CONFIG_SERIAL_CORE=y | 696 | CONFIG_SERIAL_CORE=y |
697 | CONFIG_SERIAL_CORE_CONSOLE=y | 697 | CONFIG_SERIAL_CORE_CONSOLE=y |
698 | # CONFIG_SERIAL_JSM is not set | 698 | # CONFIG_SERIAL_JSM is not set |
699 | CONFIG_SERIAL_OF_PLATFORM=y | 699 | # CONFIG_SERIAL_OF_PLATFORM is not set |
700 | CONFIG_UNIX98_PTYS=y | 700 | CONFIG_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 |
710 | CONFIG_DEVPORT=y | 710 | CONFIG_DEVPORT=y |
711 | # CONFIG_I2C is not set | 711 | CONFIG_I2C=y |
712 | CONFIG_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 | ||
733 | CONFIG_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 | 819 | CONFIG_SOUND=y |
820 | |||
821 | # | ||
822 | # Advanced Linux Sound Architecture | ||
823 | # | ||
824 | CONFIG_SND=y | ||
825 | CONFIG_SND_TIMER=y | ||
826 | CONFIG_SND_PCM=y | ||
827 | # CONFIG_SND_SEQUENCER is not set | ||
828 | CONFIG_SND_OSSEMUL=y | ||
829 | CONFIG_SND_MIXER_OSS=y | ||
830 | CONFIG_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 | ||
834 | CONFIG_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 | # | ||
918 | CONFIG_SND_SOC=y | ||
919 | |||
920 | # | ||
921 | # SoC Audio support for SuperH | ||
922 | # | ||
923 | |||
924 | # | ||
925 | # ALSA SoC audio for Freescale SOCs | ||
926 | # | ||
927 | CONFIG_SND_SOC_MPC8610=y | ||
928 | CONFIG_SND_SOC_MPC8610_HPCD=y | ||
929 | CONFIG_SND_SOC_CS4270=y | ||
930 | CONFIG_SND_SOC_CS4270_VD33_ERRATA=y | ||
931 | |||
767 | CONFIG_HID_SUPPORT=y | 932 | CONFIG_HID_SUPPORT=y |
768 | CONFIG_HID=y | 933 | CONFIG_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 | ||
41 | static struct of_device_id __initdata mpc8610_ids[] = { | ||
42 | { .compatible = "fsl,mpc8610-immr", }, | ||
43 | {} | ||
44 | }; | ||
45 | |||
46 | static 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 | } | ||
53 | machine_device_initcall(mpc86xx_hpcd, mpc8610_declare_of_platform_devices); | ||
54 | |||
40 | void __init | 55 | void __init |
41 | mpc86xx_hpcd_init_irq(void) | 56 | mpc86xx_hpcd_init_irq(void) |
42 | { | 57 | { |