]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'arm-soc/for-next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Thu, 29 May 2014 23:44:00 +0000 (09:44 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Thu, 29 May 2014 23:44:00 +0000 (09:44 +1000)
Conflicts:
arch/arm/mach-exynos/exynos.c
arch/arm/mach-mvebu/board-v7.c
arch/arm/mach-omap2/omap-mpuss-lowpower.c
arch/arm/mach-rockchip/rockchip.c
arch/arm/mach-vexpress/v2m.c
arch/arm/mach-zynq/common.c

24 files changed:
1  2 
MAINTAINERS
arch/arm/Kconfig
arch/arm/boot/dts/prima2.dtsi
arch/arm/mach-exynos/common.h
arch/arm/mach-exynos/exynos.c
arch/arm/mach-mvebu/board-v7.c
arch/arm/mach-omap2/io.c
arch/arm/mach-omap2/omap-mpuss-lowpower.c
arch/arm/mach-omap2/omap4-common.c
arch/arm/mach-realview/realview_eb.c
arch/arm/mach-realview/realview_pb1176.c
arch/arm/mach-realview/realview_pb11mp.c
arch/arm/mach-realview/realview_pbx.c
arch/arm/mach-rockchip/rockchip.c
arch/arm/mach-shmobile/board-armadillo800eva-reference.c
arch/arm/mach-shmobile/board-armadillo800eva.c
arch/arm/mach-shmobile/setup-r8a7778.c
arch/arm/mach-shmobile/setup-r8a7779.c
arch/arm/mach-sti/board-dt.c
arch/arm/mach-vexpress/ct-ca9x4.c
arch/arm/mach-vexpress/v2m.c
arch/arm/mach-zynq/common.c
drivers/clocksource/timer-marco.c
drivers/input/touchscreen/Kconfig

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
index a763c0862da992fed850c174aa003e3bd2b4a7e2,93507ee98c86b12dcde99d6107756c8cab2b4de9..cf636231b60527295a556ce5ef51fcc84ab11abc
@@@ -305,17 -246,22 +243,6 @@@ void __init exynos_init_io(void
        exynos_map_io();
  }
  
- struct bus_type exynos_subsys = {
-       .name           = "exynos-core",
-       .dev_name       = "exynos-core",
- };
- static int __init exynos_core_init(void)
 -static int __init exynos4_l2x0_cache_init(void)
--{
-       return subsys_system_register(&exynos_subsys, NULL);
 -      int ret;
 -
 -      ret = l2x0_of_init(L2_AUX_VAL, L2_AUX_MASK);
 -      if (ret)
 -              return ret;
 -
 -      if (IS_ENABLED(CONFIG_S5P_SLEEP)) {
 -              l2x0_regs_phys = virt_to_phys(&l2x0_saved_regs);
 -              clean_dcache_area(&l2x0_regs_phys, sizeof(unsigned long));
 -      }
 -      return 0;
--}
- core_initcall(exynos_core_init);
 -early_initcall(exynos4_l2x0_cache_init);
--
  static void __init exynos_dt_machine_init(void)
  {
        struct device_node *i2c_np;
index 48169caa56ea9e07c3e4e29c4f541de081f8f2c8,01cfce6ac20b9512fe38d9c59d9164d99e86d20e..8bb742fdf5cabd9974a3da2e9e1f802f4620bb13
@@@ -57,8 -75,10 +75,9 @@@ static void __init mvebu_timer_and_clk_
  {
        of_clk_init(NULL);
        clocksource_of_init();
+       mvebu_scu_enable();
        coherency_init();
-       BUG_ON(mvebu_mbus_dt_init());
+       BUG_ON(mvebu_mbus_dt_init(coherency_available()));
 -      l2x0_of_init(0, ~0UL);
  
        if (of_machine_is_compatible("marvell,armada375"))
                hook_fault_code(16 + 6, armada_375_external_abort_wa, SIGBUS, 0,
@@@ -121,9 -195,8 +196,10 @@@ static const char * const armada_375_dt
  };
  
  DT_MACHINE_START(ARMADA_375_DT, "Marvell Armada 375 (Device Tree)")
 +      .l2c_aux_val    = 0,
 +      .l2c_aux_mask   = ~0,
        .init_time      = mvebu_timer_and_clk_init,
+       .init_machine   = mvebu_dt_init,
        .restart        = mvebu_restart,
        .dt_compat      = armada_375_dt_compat,
  MACHINE_END
Simple merge
index 61cb77f8cf12deb1b9fd4486755908d3cbe9f39f,eb76e47091adb50e4367e73ed2340f98ce7b52a9..819f2c2e276620d1ceab625c5ced63734fbc5182
@@@ -187,15 -187,19 +187,15 @@@ static void l2x0_pwrst_prepare(unsigne
   * in every restore MPUSS OFF path.
   */
  #ifdef CONFIG_CACHE_L2X0
 -static void save_l2x0_context(void)
 +static void __init save_l2x0_context(void)
  {
-       __raw_writel(l2x0_saved_regs.aux_ctrl,
-                    sar_base + L2X0_AUXCTRL_OFFSET);
-       __raw_writel(l2x0_saved_regs.prefetch_ctrl,
-                    sar_base + L2X0_PREFETCH_CTRL_OFFSET);
 -      u32 val;
 -      void __iomem *l2x0_base = omap4_get_l2cache_base();
 -      if (l2x0_base) {
 -              val = readl_relaxed(l2x0_base + L2X0_AUX_CTRL);
 -              writel_relaxed(val, sar_base + L2X0_AUXCTRL_OFFSET);
 -              val = readl_relaxed(l2x0_base + L2X0_PREFETCH_CTRL);
 -              writel_relaxed(val, sar_base + L2X0_PREFETCH_CTRL_OFFSET);
 -      }
++      writel_relaxed(l2x0_saved_regs.aux_ctrl,
++                     sar_base + L2X0_AUXCTRL_OFFSET);
++      writel_relaxed(l2x0_saved_regs.prefetch_ctrl,
++                     sar_base + L2X0_PREFETCH_CTRL_OFFSET);
  }
  #else
 -static void save_l2x0_context(void)
 +static void __init save_l2x0_context(void)
  {}
  #endif
  
Simple merge
Simple merge
Simple merge
index 138b9975313a098e5f2e99797da02e5564faf0fe,4499b0a31a276024cf377a13ffcd3a7d8cfa580f..968cc348e624bc4ebec18742e36d1e1f8eb96817
@@@ -33,8 -39,6 +33,7 @@@ static const char * const rockchip_boar
  };
  
  DT_MACHINE_START(ROCKCHIP_DT, "Rockchip Cortex-A9 (Device Tree)")
 -      .init_machine   = rockchip_dt_init,
 +      .l2c_aux_val    = 0,
 +      .l2c_aux_mask   = ~0,
-       .smp            = smp_ops(rockchip_smp_ops),
        .dt_compat      = rockchip_board_dt_compat,
  MACHINE_END
Simple merge
Simple merge
index b2fea70d412de3463c9f7b835666c95c9fa4f3e2,38f4f6f37770e2d0280e50d112c8578b2c984b5e..6ff681a24ba7a7e4c087e34f3966a450aa8577fa
@@@ -369,70 -370,10 +370,9 @@@ MACHINE_START(VEXPRESS, "ARM-Versatile 
        .init_machine   = v2m_init,
  MACHINE_END
  
- static struct map_desc v2m_rs1_io_desc __initdata = {
-       .virtual        = V2M_PERIPH,
-       .pfn            = __phys_to_pfn(0x1c000000),
-       .length         = SZ_2M,
-       .type           = MT_DEVICE,
- };
- static int __init v2m_dt_scan_memory_map(unsigned long node, const char *uname,
-               int depth, void *data)
- {
-       const char **map = data;
-       if (strcmp(uname, "motherboard") != 0)
-               return 0;
-       *map = of_get_flat_dt_prop(node, "arm,v2m-memory-map", NULL);
-       return 1;
- }
- void __init v2m_dt_map_io(void)
- {
-       const char *map = NULL;
-       of_scan_flat_dt(v2m_dt_scan_memory_map, &map);
-       if (map && strcmp(map, "rs1") == 0)
-               iotable_init(&v2m_rs1_io_desc, 1);
-       else
-               iotable_init(v2m_io_desc, ARRAY_SIZE(v2m_io_desc));
- #if defined(CONFIG_SMP)
-       vexpress_dt_smp_map_io();
- #endif
- }
- void __init v2m_dt_init_early(void)
- {
-       u32 dt_hbi;
-       vexpress_sysreg_of_early_init();
-       /* Confirm board type against DT property, if available */
-       if (of_property_read_u32(of_allnodes, "arm,hbi", &dt_hbi) == 0) {
-               u32 hbi = vexpress_get_hbi(VEXPRESS_SITE_MASTER);
-               if (WARN_ON(dt_hbi != hbi))
-                       pr_warning("vexpress: DT HBI (%x) is not matching "
-                                       "hardware (%x)!\n", dt_hbi, hbi);
-       }
-       versatile_sched_clock_init(vexpress_get_24mhz_clock_base(), 24000000);
- }
- static const struct of_device_id v2m_dt_bus_match[] __initconst = {
-       { .compatible = "simple-bus", },
-       { .compatible = "arm,amba-bus", },
-       { .compatible = "arm,vexpress,config-bus", },
-       {}
- };
  static void __init v2m_dt_init(void)
  {
-       of_platform_populate(NULL, v2m_dt_bus_match, NULL, NULL);
 -      l2x0_of_init(0x00400000, 0xfe0fffff);
+       of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
  }
  
  static const char * const v2m_dt_match[] __initconst = {
  
  DT_MACHINE_START(VEXPRESS_DT, "ARM-Versatile Express")
        .dt_compat      = v2m_dt_match,
-       .smp            = smp_ops(vexpress_smp_ops),
 +      .l2c_aux_val    = 0x00400000,
 +      .l2c_aux_mask   = 0xfe0fffff,
+       .smp            = smp_ops(vexpress_smp_dt_ops),
        .smp_init       = smp_init_ops(vexpress_smp_init_ops),
-       .map_io         = v2m_dt_map_io,
-       .init_early     = v2m_dt_init_early,
        .init_machine   = v2m_dt_init,
  MACHINE_END
index d1e992e6403e17cedc4facb5853bf14132dd2906,edbd9d83f407007bf208f3700dabfd8d7dc381d7..31a6fa40ba37ef0b37da4d9439258ba3e2b8726b
@@@ -66,8 -105,43 +105,38 @@@ static int __init zynq_get_revision(voi
  static void __init zynq_init_machine(void)
  {
        struct platform_device_info devinfo = { .name = "cpufreq-cpu0", };
 -      /*
 -       * 64KB way size, 8-way associativity, parity disabled
 -       */
 -      l2x0_of_init(0x02060000, 0xF0F0FFFF);
 -
+       struct soc_device_attribute *soc_dev_attr;
+       struct soc_device *soc_dev;
+       struct device *parent = NULL;
+       soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+       if (!soc_dev_attr)
+               goto out;
+       system_rev = zynq_get_revision();
+       soc_dev_attr->family = kasprintf(GFP_KERNEL, "Xilinx Zynq");
+       soc_dev_attr->revision = kasprintf(GFP_KERNEL, "0x%x", system_rev);
+       soc_dev_attr->soc_id = kasprintf(GFP_KERNEL, "0x%x",
+                                        zynq_slcr_get_device_id());
+       soc_dev = soc_device_register(soc_dev_attr);
+       if (IS_ERR(soc_dev)) {
+               kfree(soc_dev_attr->family);
+               kfree(soc_dev_attr->revision);
+               kfree(soc_dev_attr->soc_id);
+               kfree(soc_dev_attr);
+               goto out;
+       }
+       parent = soc_device_to_device(soc_dev);
  
-       of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
+ out:
+       /*
+        * Finished with the static registrations now; fill in the missing
+        * devices
+        */
+       of_platform_populate(NULL, of_default_bus_match_table, NULL, parent);
  
        platform_device_register(&zynq_cpuidle_device);
        platform_device_register_full(&devinfo);
Simple merge
Simple merge