Merge tag 'samsung-exynos' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene...
authorOlof Johansson <olof@lixom.net>
Sat, 31 May 2014 04:44:32 +0000 (21:44 -0700)
committerOlof Johansson <olof@lixom.net>
Sat, 31 May 2014 04:44:49 +0000 (21:44 -0700)
Samsung Exynos updates for 3.16

- add new SoCs support
  : exynos3250, 5260, 5410 and 5800

- enable multi-platform on exynos
  : consolidate exynos related Kconfig entries

* tag 'samsung-exynos' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: (22 commits)
  ARM: EXYNOS: Enable multi-platform build support
  ARM: EXYNOS: Consolidate Kconfig entries
  ARM: EXYNOS: Add support for EXYNOS5410 SoC
  ARM: EXYNOS: Support secondary CPU boot of Exynos3250
  ARM: EXYNOS: Add Exynos3250 SoC ID
  ARM: EXYNOS: Add 5800 SoC support
  ARM: EXYNOS: initial board support for exynos5260 SoC
  cpufreq: exynos: Fix the compile error
  ARM: S3C24XX: move debug-macro.S into the common space
  ARM: S3C24XX: use generic DEBUG_UART_PHY/_VIRT in debug macro
  ARM: S3C24XX: trim down debug uart handling
  ARM: compressed/head.S: remove s3c24xx special case
  ARM: EXYNOS: Remove unnecessary inclusion of cpu.h
  ARM: EXYNOS: Migrate Exynos specific macros from plat to mach
  ARM: EXYNOS: Remove exynos_subsys registration
  ARM: EXYNOS: Remove duplicate lines in Makefile
  ARM: EXYNOS: use v7_exit_coherency_flush macro for cache disabling
  ARM: dts: Remove g2d_pd node for exynos5420
  ARM: dts: Remove mau_pd node for exynos5420
  ARM: exynos_defconfig: enable HS-I2C to fix for mmc partition mount
  ...

Signed-off-by: Olof Johansson <olof@lixom.net>
1  2 
arch/arm/Kconfig
arch/arm/Kconfig.debug
arch/arm/boot/dts/exynos5420.dtsi
arch/arm/mach-exynos/Kconfig
arch/arm/mach-exynos/Makefile
arch/arm/mach-exynos/common.h
arch/arm/mach-exynos/exynos.c
arch/arm/mach-exynos/firmware.c
arch/arm/mach-exynos/hotplug.c
arch/arm/mach-exynos/platsmp.c
arch/arm/mach-exynos/pm.c

Simple merge
index 149d1f02ea233e4c646711951d479987b7f840fd,4678870f8ee8d7a77b7586a70d0b4af3bbbf10d7..8f90595069a1cafb8af4c5e7db96a160cfc0b671
@@@ -967,10 -1007,10 +1004,11 @@@ config DEBUG_LL_INCLUD
                                 DEBUG_IMX51_UART || \
                                 DEBUG_IMX53_UART ||\
                                 DEBUG_IMX6Q_UART || \
 -                               DEBUG_IMX6SL_UART
 -      default "debug/msm.S" if DEBUG_MSM_UART
 +                               DEBUG_IMX6SL_UART || \
 +                               DEBUG_IMX6SX_UART
 +      default "debug/msm.S" if DEBUG_MSM_UART || DEBUG_QCOM_UARTDM
        default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
+       default "debug/s3c24xx.S" if DEBUG_S3C24XX_UART
        default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1
        default "debug/sti.S" if DEBUG_STI_UART
        default "debug/tegra.S" if DEBUG_TEGRA_UART
@@@ -1058,8 -1102,7 +1102,8 @@@ config DEBUG_UART_PHY
        default 0xfffff700 if ARCH_IOP33X
        depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
                DEBUG_LL_UART_EFM32 || \
 -              DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_S3C24XX_UART
 +              DEBUG_UART_8250 || DEBUG_UART_PL01X || \
-               DEBUG_MSM_UART || DEBUG_QCOM_UARTDM
++              DEBUG_MSM_UART || DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART
  
  config DEBUG_UART_VIRT
        hex "Virtual base address of debug UART"
        default 0xff003000 if DEBUG_U300_UART
        default DEBUG_UART_PHYS if !MMU
        depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
 -              DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_S3C24XX_UART
 +              DEBUG_UART_8250 || DEBUG_UART_PL01X || \
-               DEBUG_MSM_UART || DEBUG_QCOM_UARTDM
++              DEBUG_MSM_UART || DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART
  
  config DEBUG_UART_8250_SHIFT
        int "Register offset shift for the 8250 debug UART"
Simple merge
index 1602abce6ec043ae40b5e97bd3d296901503750c,0031a57aad94b30040012445049a69e5b1ccc36d..d58995c9a95a8addd71915b3d1b29a0720692476
@@@ -108,14 -113,11 +113,19 @@@ config SOC_EXYNOS544
        help
          Enable EXYNOS5440 SoC support
  
+ config SOC_EXYNOS5800
+       bool "SAMSUNG EXYNOS5800"
+       default y
+       depends on SOC_EXYNOS5420
  endmenu
  
 +config EXYNOS5420_MCPM
 +      bool "Exynos5420 Multi-Cluster PM support"
 +      depends on MCPM && SOC_EXYNOS5420
 +      select ARM_CCI
 +      help
 +        This is needed to provide CPU and cluster power management
 +        on Exynos5420 implementing big.LITTLE.
 +
  endif
index 01bc9b94a032de5a62e572f7b4848dbeb6a9149b,24a8efe3d4bd3145b29fb0c37d1be7f5adea4ba8..97af694291f11dd4c7104f241e08c0acff5fb2fe
@@@ -24,10 -24,5 +24,7 @@@ obj-$(CONFIG_SMP)            += platsmp.o headsmp
  
  obj-$(CONFIG_HOTPLUG_CPU)     += hotplug.o
  
- obj-$(CONFIG_ARCH_EXYNOS)     += exynos-smc.o
- obj-$(CONFIG_ARCH_EXYNOS)     += firmware.o
  plus_sec := $(call as-instr,.arch_extension sec,+sec)
  AFLAGS_exynos-smc.o           :=-Wa,-march=armv7-a$(plus_sec)
 +
 +obj-$(CONFIG_EXYNOS5420_MCPM) += mcpm-exynos.o
index 7876ed04b7a5e35e323deca22f478d9701f6aae9,099b22f9fd9ffa1d4e98a15cb5df48bcb97550c0..5dba5a1ee6c253cab9da4ab2e956a99795be671e
@@@ -63,11 -158,8 +159,14 @@@ struct exynos_pmu_conf 
  };
  
  extern void exynos_sys_powerdown_conf(enum sys_powerdown mode);
 +extern void exynos_cpu_power_down(int cpu);
 +extern void exynos_cpu_power_up(int cpu);
 +extern int  exynos_cpu_power_state(int cpu);
 +extern void exynos_cluster_power_down(int cluster);
 +extern void exynos_cluster_power_up(int cluster);
 +extern int  exynos_cluster_power_state(int cluster);
  
+ extern void s5p_init_cpu(void __iomem *cpuid_addr);
+ extern unsigned int samsung_rev(void);
  #endif /* __ARCH_ARM_MACH_EXYNOS_COMMON_H */
Simple merge
index 483dfcd690650c54674584169b99ef00967964d0,1120c28394ddb88ea35c13d053e1b8f36c56a87b..eb91d2350f8c97883b0d167c5abf719deeca44a1
@@@ -35,12 -50,10 +50,15 @@@ static int exynos_cpu_boot(int cpu
  
  static int exynos_set_cpu_boot_addr(int cpu, unsigned long boot_addr)
  {
 -      void __iomem *boot_reg = S5P_VA_SYSRAM_NS + 0x1c;
 +      void __iomem *boot_reg;
 +
 +      if (!sysram_ns_base_addr)
 +              return -ENODEV;
 +
-       boot_reg = sysram_ns_base_addr + 0x1c + 4*cpu;
++      boot_reg = sysram_ns_base_addr + 0x1c;
+       if (!soc_is_exynos4212() && !soc_is_exynos3250())
+               boot_reg += 4*cpu;
  
        __raw_writel(boot_addr, boot_reg);
        return 0;
Simple merge
index 78002c7344b349510e3bcd7cb36c1b1bd5a81d0c,f5ec7e805298ff130a5ce6784396b439ae587d2f..112bc66927a1453c976cbdfacbd71d5830a1dcee
@@@ -68,11 -43,9 +66,11 @@@ static inline void __iomem *cpu_boot_re
        void __iomem *boot_reg;
  
        boot_reg = cpu_boot_reg_base();
 +      if (!boot_reg)
 +              return ERR_PTR(-ENODEV);
        if (soc_is_exynos4412())
                boot_reg += 4*cpu;
-       else if (soc_is_exynos5420())
+       else if (soc_is_exynos5420() || soc_is_exynos5800())
                boot_reg += 4;
        return boot_reg;
  }
Simple merge