aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-05-27 20:02:58 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-05-27 20:02:58 -0400
commitb9d800959e87e538595a723f07dd3829c2f85d85 (patch)
treedc6de56a838d91e7f1f973ad16eedcf84c680d37 /arch/powerpc/platforms
parent872aa779bcdd26bbe2d538c36e2c2072b3f03c8c (diff)
parente83eb028bb980cecc85b050aa626df384723aff2 (diff)
Merge remote-tracking branch 'scott/next' into next
<< Highlights include a few new boards, a device tree binding for CCF (including backwards-compatible device tree updates to distinguish incompatible versions), and some fixes. >>
Diffstat (limited to 'arch/powerpc/platforms')
-rw-r--r--arch/powerpc/platforms/85xx/Kconfig19
-rw-r--r--arch/powerpc/platforms/85xx/Makefile3
-rw-r--r--arch/powerpc/platforms/85xx/bsc913x_qds.c74
-rw-r--r--arch/powerpc/platforms/85xx/corenet_generic.c9
-rw-r--r--arch/powerpc/platforms/85xx/p1023_rdb.c (renamed from arch/powerpc/platforms/85xx/p1023_rds.c)36
5 files changed, 104 insertions, 37 deletions
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig
index c17aae80e7ff..f442120e0033 100644
--- a/arch/powerpc/platforms/85xx/Kconfig
+++ b/arch/powerpc/platforms/85xx/Kconfig
@@ -38,6 +38,15 @@ config C293_PCIE
38 help 38 help
39 This option enables support for the C293PCIE board 39 This option enables support for the C293PCIE board
40 40
41config BSC9132_QDS
42 bool "Freescale BSC9132QDS"
43 select DEFAULT_UIMAGE
44 help
45 This option enables support for the Freescale BSC9132 QDS board.
46 BSC9132 is a heterogeneous SoC containing dual e500v2 powerpc cores
47 and dual StarCore SC3850 DSP cores.
48 Manufacturer : Freescale Semiconductor, Inc
49
41config MPC8540_ADS 50config MPC8540_ADS
42 bool "Freescale MPC8540 ADS" 51 bool "Freescale MPC8540 ADS"
43 select DEFAULT_UIMAGE 52 select DEFAULT_UIMAGE
@@ -117,11 +126,11 @@ config P1022_RDK
117 This option enables support for the Freescale / iVeia P1022RDK 126 This option enables support for the Freescale / iVeia P1022RDK
118 reference board. 127 reference board.
119 128
120config P1023_RDS 129config P1023_RDB
121 bool "Freescale P1023 RDS/RDB" 130 bool "Freescale P1023 RDB"
122 select DEFAULT_UIMAGE 131 select DEFAULT_UIMAGE
123 help 132 help
124 This option enables support for the P1023 RDS and RDB boards 133 This option enables support for the P1023 RDB board.
125 134
126config TWR_P102x 135config TWR_P102x
127 bool "Freescale TWR-P102x" 136 bool "Freescale TWR-P102x"
@@ -263,11 +272,11 @@ config CORENET_GENERIC
263 help 272 help
264 This option enables support for the FSL CoreNet based boards. 273 This option enables support for the FSL CoreNet based boards.
265 For 32bit kernel, the following boards are supported: 274 For 32bit kernel, the following boards are supported:
266 P2041 RDB, P3041 DS and P4080 DS 275 P2041 RDB, P3041 DS, P4080 DS, kmcoge4, and OCA4080
267 For 64bit kernel, the following boards are supported: 276 For 64bit kernel, the following boards are supported:
268 T4240 QDS and B4 QDS 277 T4240 QDS and B4 QDS
269 The following boards are supported for both 32bit and 64bit kernel: 278 The following boards are supported for both 32bit and 64bit kernel:
270 P5020 DS and P5040 DS 279 P5020 DS, P5040 DS and T104xQDS
271 280
272endif # FSL_SOC_BOOKE 281endif # FSL_SOC_BOOKE
273 282
diff --git a/arch/powerpc/platforms/85xx/Makefile b/arch/powerpc/platforms/85xx/Makefile
index 25cebe74ac46..730326046625 100644
--- a/arch/powerpc/platforms/85xx/Makefile
+++ b/arch/powerpc/platforms/85xx/Makefile
@@ -6,6 +6,7 @@ obj-$(CONFIG_SMP) += smp.o
6obj-y += common.o 6obj-y += common.o
7 7
8obj-$(CONFIG_BSC9131_RDB) += bsc913x_rdb.o 8obj-$(CONFIG_BSC9131_RDB) += bsc913x_rdb.o
9obj-$(CONFIG_BSC9132_QDS) += bsc913x_qds.o
9obj-$(CONFIG_C293_PCIE) += c293pcie.o 10obj-$(CONFIG_C293_PCIE) += c293pcie.o
10obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads.o 11obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads.o
11obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads.o 12obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads.o
@@ -17,7 +18,7 @@ obj-$(CONFIG_MPC85xx_RDB) += mpc85xx_rdb.o
17obj-$(CONFIG_P1010_RDB) += p1010rdb.o 18obj-$(CONFIG_P1010_RDB) += p1010rdb.o
18obj-$(CONFIG_P1022_DS) += p1022_ds.o 19obj-$(CONFIG_P1022_DS) += p1022_ds.o
19obj-$(CONFIG_P1022_RDK) += p1022_rdk.o 20obj-$(CONFIG_P1022_RDK) += p1022_rdk.o
20obj-$(CONFIG_P1023_RDS) += p1023_rds.o 21obj-$(CONFIG_P1023_RDB) += p1023_rdb.o
21obj-$(CONFIG_TWR_P102x) += twr_p102x.o 22obj-$(CONFIG_TWR_P102x) += twr_p102x.o
22obj-$(CONFIG_CORENET_GENERIC) += corenet_generic.o 23obj-$(CONFIG_CORENET_GENERIC) += corenet_generic.o
23obj-$(CONFIG_STX_GP3) += stx_gp3.o 24obj-$(CONFIG_STX_GP3) += stx_gp3.o
diff --git a/arch/powerpc/platforms/85xx/bsc913x_qds.c b/arch/powerpc/platforms/85xx/bsc913x_qds.c
new file mode 100644
index 000000000000..f0927e58af25
--- /dev/null
+++ b/arch/powerpc/platforms/85xx/bsc913x_qds.c
@@ -0,0 +1,74 @@
1/*
2 * BSC913xQDS Board Setup
3 *
4 * Author:
5 * Harninder Rai <harninder.rai@freescale.com>
6 * Priyanka Jain <Priyanka.Jain@freescale.com>
7 *
8 * Copyright 2014 Freescale Semiconductor Inc.
9 *
10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the
12 * Free Software Foundation; either version 2 of the License, or (at your
13 * option) any later version.
14 */
15
16#include <linux/of_platform.h>
17#include <linux/pci.h>
18#include <asm/mpic.h>
19#include <sysdev/fsl_soc.h>
20#include <asm/udbg.h>
21
22#include "mpc85xx.h"
23#include "smp.h"
24
25void __init bsc913x_qds_pic_init(void)
26{
27 struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN |
28 MPIC_SINGLE_DEST_CPU,
29 0, 256, " OpenPIC ");
30
31 if (!mpic)
32 pr_err("bsc913x: Failed to allocate MPIC structure\n");
33 else
34 mpic_init(mpic);
35}
36
37/*
38 * Setup the architecture
39 */
40static void __init bsc913x_qds_setup_arch(void)
41{
42 if (ppc_md.progress)
43 ppc_md.progress("bsc913x_qds_setup_arch()", 0);
44
45#if defined(CONFIG_SMP)
46 mpc85xx_smp_init();
47#endif
48
49 pr_info("bsc913x board from Freescale Semiconductor\n");
50}
51
52machine_device_initcall(bsc9132_qds, mpc85xx_common_publish_devices);
53
54/*
55 * Called very early, device-tree isn't unflattened
56 */
57
58static int __init bsc9132_qds_probe(void)
59{
60 unsigned long root = of_get_flat_dt_root();
61
62 return of_flat_dt_is_compatible(root, "fsl,bsc9132qds");
63}
64
65define_machine(bsc9132_qds) {
66 .name = "BSC9132 QDS",
67 .probe = bsc9132_qds_probe,
68 .setup_arch = bsc913x_qds_setup_arch,
69 .init_IRQ = bsc913x_qds_pic_init,
70 .get_irq = mpic_get_irq,
71 .restart = fsl_rstcr_restart,
72 .calibrate_decr = generic_calibrate_decr,
73 .progress = udbg_progress,
74};
diff --git a/arch/powerpc/platforms/85xx/corenet_generic.c b/arch/powerpc/platforms/85xx/corenet_generic.c
index 8e4b1e1a4911..5db1e117fdde 100644
--- a/arch/powerpc/platforms/85xx/corenet_generic.c
+++ b/arch/powerpc/platforms/85xx/corenet_generic.c
@@ -67,7 +67,7 @@ void __init corenet_gen_setup_arch(void)
67 67
68 swiotlb_detect_4g(); 68 swiotlb_detect_4g();
69 69
70 pr_info("%s board from Freescale Semiconductor\n", ppc_md.name); 70 pr_info("%s board\n", ppc_md.name);
71 71
72 mpc85xx_qe_init(); 72 mpc85xx_qe_init();
73} 73}
@@ -115,6 +115,7 @@ int __init corenet_gen_publish_devices(void)
115static const char * const boards[] __initconst = { 115static const char * const boards[] __initconst = {
116 "fsl,P2041RDB", 116 "fsl,P2041RDB",
117 "fsl,P3041DS", 117 "fsl,P3041DS",
118 "fsl,OCA4080",
118 "fsl,P4080DS", 119 "fsl,P4080DS",
119 "fsl,P5020DS", 120 "fsl,P5020DS",
120 "fsl,P5040DS", 121 "fsl,P5040DS",
@@ -122,12 +123,16 @@ static const char * const boards[] __initconst = {
122 "fsl,B4860QDS", 123 "fsl,B4860QDS",
123 "fsl,B4420QDS", 124 "fsl,B4420QDS",
124 "fsl,B4220QDS", 125 "fsl,B4220QDS",
126 "fsl,T1040QDS",
127 "fsl,T1042QDS",
128 "keymile,kmcoge4",
125 NULL 129 NULL
126}; 130};
127 131
128static const char * const hv_boards[] __initconst = { 132static const char * const hv_boards[] __initconst = {
129 "fsl,P2041RDB-hv", 133 "fsl,P2041RDB-hv",
130 "fsl,P3041DS-hv", 134 "fsl,P3041DS-hv",
135 "fsl,OCA4080-hv",
131 "fsl,P4080DS-hv", 136 "fsl,P4080DS-hv",
132 "fsl,P5020DS-hv", 137 "fsl,P5020DS-hv",
133 "fsl,P5040DS-hv", 138 "fsl,P5040DS-hv",
@@ -135,6 +140,8 @@ static const char * const hv_boards[] __initconst = {
135 "fsl,B4860QDS-hv", 140 "fsl,B4860QDS-hv",
136 "fsl,B4420QDS-hv", 141 "fsl,B4420QDS-hv",
137 "fsl,B4220QDS-hv", 142 "fsl,B4220QDS-hv",
143 "fsl,T1040QDS-hv",
144 "fsl,T1042QDS-hv",
138 NULL 145 NULL
139}; 146};
140 147
diff --git a/arch/powerpc/platforms/85xx/p1023_rds.c b/arch/powerpc/platforms/85xx/p1023_rdb.c
index 0e614007acfb..d5b7509825de 100644
--- a/arch/powerpc/platforms/85xx/p1023_rds.c
+++ b/arch/powerpc/platforms/85xx/p1023_rdb.c
@@ -4,7 +4,7 @@
4 * Author: Roy Zang <tie-fei.zang@freescale.com> 4 * Author: Roy Zang <tie-fei.zang@freescale.com>
5 * 5 *
6 * Description: 6 * Description:
7 * P1023 RDS Board Setup 7 * P1023 RDB Board Setup
8 * 8 *
9 * This program is free software; you can redistribute it and/or modify it 9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published by the 10 * under the terms of the GNU General Public License as published by the
@@ -41,12 +41,12 @@
41 * Setup the architecture 41 * Setup the architecture
42 * 42 *
43 */ 43 */
44static void __init mpc85xx_rds_setup_arch(void) 44static void __init mpc85xx_rdb_setup_arch(void)
45{ 45{
46 struct device_node *np; 46 struct device_node *np;
47 47
48 if (ppc_md.progress) 48 if (ppc_md.progress)
49 ppc_md.progress("p1023_rds_setup_arch()", 0); 49 ppc_md.progress("p1023_rdb_setup_arch()", 0);
50 50
51 /* Map BCSR area */ 51 /* Map BCSR area */
52 np = of_find_node_by_name(NULL, "bcsr"); 52 np = of_find_node_by_name(NULL, "bcsr");
@@ -85,10 +85,9 @@ static void __init mpc85xx_rds_setup_arch(void)
85 fsl_pci_assign_primary(); 85 fsl_pci_assign_primary();
86} 86}
87 87
88machine_arch_initcall(p1023_rds, mpc85xx_common_publish_devices);
89machine_arch_initcall(p1023_rdb, mpc85xx_common_publish_devices); 88machine_arch_initcall(p1023_rdb, mpc85xx_common_publish_devices);
90 89
91static void __init mpc85xx_rds_pic_init(void) 90static void __init mpc85xx_rdb_pic_init(void)
92{ 91{
93 struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN | 92 struct mpic *mpic = mpic_alloc(NULL, 0, MPIC_BIG_ENDIAN |
94 MPIC_SINGLE_DEST_CPU, 93 MPIC_SINGLE_DEST_CPU,
@@ -99,14 +98,6 @@ static void __init mpc85xx_rds_pic_init(void)
99 mpic_init(mpic); 98 mpic_init(mpic);
100} 99}
101 100
102static int __init p1023_rds_probe(void)
103{
104 unsigned long root = of_get_flat_dt_root();
105
106 return of_flat_dt_is_compatible(root, "fsl,P1023RDS");
107
108}
109
110static int __init p1023_rdb_probe(void) 101static int __init p1023_rdb_probe(void)
111{ 102{
112 unsigned long root = of_get_flat_dt_root(); 103 unsigned long root = of_get_flat_dt_root();
@@ -115,26 +106,11 @@ static int __init p1023_rdb_probe(void)
115 106
116} 107}
117 108
118define_machine(p1023_rds) {
119 .name = "P1023 RDS",
120 .probe = p1023_rds_probe,
121 .setup_arch = mpc85xx_rds_setup_arch,
122 .init_IRQ = mpc85xx_rds_pic_init,
123 .get_irq = mpic_get_irq,
124 .restart = fsl_rstcr_restart,
125 .calibrate_decr = generic_calibrate_decr,
126 .progress = udbg_progress,
127#ifdef CONFIG_PCI
128 .pcibios_fixup_bus = fsl_pcibios_fixup_bus,
129 .pcibios_fixup_phb = fsl_pcibios_fixup_phb,
130#endif
131};
132
133define_machine(p1023_rdb) { 109define_machine(p1023_rdb) {
134 .name = "P1023 RDB", 110 .name = "P1023 RDB",
135 .probe = p1023_rdb_probe, 111 .probe = p1023_rdb_probe,
136 .setup_arch = mpc85xx_rds_setup_arch, 112 .setup_arch = mpc85xx_rdb_setup_arch,
137 .init_IRQ = mpc85xx_rds_pic_init, 113 .init_IRQ = mpc85xx_rdb_pic_init,
138 .get_irq = mpic_get_irq, 114 .get_irq = mpic_get_irq,
139 .restart = fsl_rstcr_restart, 115 .restart = fsl_rstcr_restart,
140 .calibrate_decr = generic_calibrate_decr, 116 .calibrate_decr = generic_calibrate_decr,