author | Olof Johansson <olof@lixom.net> | |
Mon, 17 Sep 2012 00:57:00 +0000 (17:57 -0700) | ||
committer | Olof Johansson <olof@lixom.net> | |
Mon, 17 Sep 2012 01:03:50 +0000 (18:03 -0700) |
From David Brown:
These patches migrate both the 8660 and 8960 targets on msm to be
devicetree only. This also sets most of the frame in place necessary
to build both targets into the same image.
There's a couple of cleanups in here that are kept in this series
because they are intimately tied to the changes necessary to support
the devicetree conversions.
By Stephen Boyd
via David Brown
* tag 'msm-dt-for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/davidb/linux-msm:
ARM: msm: Remove non-DT targets from 8960
ARM: msm: Add DT support for 8960
ARM: msm: Move io mapping prototypes to common.h
ARM: msm: Rename board-msm8x60 to signify its DT only status
ARM: msm: Make 8660 a DT only target
ARM: msm: Move 8660 to DT timer
ARM: msm: Add DT support to msm_timer
ARM: msm: Allow timer.c to compile on multiple targets
ARM: msm: Don't touch GIC registers outside of GIC code
ARM: msm: Add msm8660-surf.dts to Makefile.boot
ARM: msm: Add handle_irq handler for 8660 DT machine
Resolved trivial context conflict in arch/arm/mach-msm/io.c and a
remove/change conflict in arch/arm/mach-msm/board-msm8x60.c.
Signed-off-by: Olof Johansson <olof@lixom.net>
These patches migrate both the 8660 and 8960 targets on msm to be
devicetree only. This also sets most of the frame in place necessary
to build both targets into the same image.
There's a couple of cleanups in here that are kept in this series
because they are intimately tied to the changes necessary to support
the devicetree conversions.
By Stephen Boyd
via David Brown
* tag 'msm-dt-for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/davidb/linux-msm:
ARM: msm: Remove non-DT targets from 8960
ARM: msm: Add DT support for 8960
ARM: msm: Move io mapping prototypes to common.h
ARM: msm: Rename board-msm8x60 to signify its DT only status
ARM: msm: Make 8660 a DT only target
ARM: msm: Move 8660 to DT timer
ARM: msm: Add DT support to msm_timer
ARM: msm: Allow timer.c to compile on multiple targets
ARM: msm: Don't touch GIC registers outside of GIC code
ARM: msm: Add msm8660-surf.dts to Makefile.boot
ARM: msm: Add handle_irq handler for 8660 DT machine
Resolved trivial context conflict in arch/arm/mach-msm/io.c and a
remove/change conflict in arch/arm/mach-msm/board-msm8x60.c.
Signed-off-by: Olof Johansson <olof@lixom.net>
diff --cc arch/arm/mach-msm/Makefile
Simple merge
diff --cc arch/arm/mach-msm/board-dt-8660.c
index 0000000000000000000000000000000000000000,c1ddd480fc87839a3ef7d232a17575e2fb26d027..f77f57f391043eb0e75036fe48030a9e27e48ddf
mode 000000,100644..100644
mode 000000,100644..100644
--- /dev/null
- if (of_machine_is_compatible("qcom,msm8660-surf")) {
- printk(KERN_INFO "Init surf UART registers\n");
- msm8x60_init_uart12dm();
- }
-
+ /* Copyright (c) 2010-2012, The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+ #include <linux/init.h>
+ #include <linux/of.h>
+ #include <linux/of_irq.h>
+ #include <linux/of_platform.h>
+
+ #include <asm/mach/arch.h>
+ #include <asm/hardware/gic.h>
+
+ #include <mach/board.h>
+ #include "common.h"
+
+ static const struct of_device_id msm_dt_gic_match[] __initconst = {
+ { .compatible = "qcom,msm-8660-qgic", .data = gic_of_init },
+ {}
+ };
+
+ static void __init msm8x60_init_irq(void)
+ {
+ of_irq_init(msm_dt_gic_match);
+ }
+
+ static void __init msm8x60_init_late(void)
+ {
+ smd_debugfs_init();
+ }
+
+ static struct of_dev_auxdata msm_auxdata_lookup[] __initdata = {
+ {}
+ };
+
+ static void __init msm8x60_dt_init(void)
+ {
+ of_platform_populate(NULL, of_default_bus_match_table,
+ msm_auxdata_lookup, NULL);
+ }
+
+ static const char *msm8x60_fluid_match[] __initdata = {
+ "qcom,msm8660-fluid",
+ "qcom,msm8660-surf",
+ NULL
+ };
+
+ DT_MACHINE_START(MSM_DT, "Qualcomm MSM (Flattened Device Tree)")
+ .map_io = msm_map_msm8x60_io,
+ .init_irq = msm8x60_init_irq,
+ .handle_irq = gic_handle_irq,
+ .init_machine = msm8x60_dt_init,
+ .init_late = msm8x60_init_late,
+ .timer = &msm_dt_timer,
+ .dt_compat = msm8x60_fluid_match,
+ MACHINE_END
diff --cc arch/arm/mach-msm/include/mach/board.h
index 5a0811a4c85191c9595754266b21b2962fd2f64e,09654aca6152c87088cd8d19dfc79c98de9c5ad4..0a0c393d8e3191063efdd00a10db7af75dee5fb8
/* platform device data structures */
-struct msm_acpu_clock_platform_data
-{
- uint32_t acpu_switch_time_us;
- uint32_t max_speed_delta_khz;
- uint32_t vdd_switch_time_us;
- unsigned long power_collapse_khz;
- unsigned long wait_for_irq_khz;
-};
-
struct clk_lookup;
- extern struct sys_timer msm_timer;
-
/* common init routines for use by arch/arm/mach-msm/board-*.c */
void __init msm_add_devices(void);
Simple merge
Simple merge
diff --cc arch/arm/mach-msm/io.c
index 3cb4f4c357106ac9a535f2fc6d8e46ec0191ec0d,3cbe74a41d9bd66954bfc4b698db7a269b9f3a1b..3854f6f20ce2fce18150a584cce02ad077275dee
+++ b/arch/arm/mach-msm/io.c
#include <mach/board.h>
-#define MSM_CHIP_DEVICE(name, chip) { \
+ #include "common.h"
+
+#define MSM_CHIP_DEVICE_TYPE(name, chip, mem_type) { \
.virtual = (unsigned long) MSM_##name##_BASE, \
.pfn = __phys_to_pfn(chip##_##name##_PHYS), \
.length = chip##_##name##_SIZE, \
diff --cc arch/arm/mach-msm/platsmp.c
Simple merge
diff --cc arch/arm/mach-msm/timer.c
Simple merge