Unverified Commit 9a0e0c59 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'samsung-soc-6.5' of...

Merge tag 'samsung-soc-6.5' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/arm

Samsung mach/soc changes for v6.5

1. Re-introduce Exynos4212 which was removed because of lack of upstream
   users.  Artur Weber adds now Samsung Galaxy Tab3 with Exynos4212.

2. Minor cleanups.

* tag 'samsung-soc-6.5' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  ARM: s3c: Switch i2c drivers back to use .probe()
  ARM: exynos: Re-introduce Exynos4212 support
  ARM: s3c: remove obsolete config S3C64XX_SETUP_IDE

Link: https://lore.kernel.org/r/20230602091501.15178-3-krzysztof.kozlowski@linaro.org


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 54cb981c ca027ae5
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -78,6 +78,11 @@ config CPU_EXYNOS4210
	default y
	depends on ARCH_EXYNOS4

config SOC_EXYNOS4212
	bool "Samsung Exynos4212"
	default y
	depends on ARCH_EXYNOS4

config SOC_EXYNOS4412
	bool "Samsung Exynos4412"
	default y
+8 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
#define EXYNOS3_SOC_MASK	0xFFFFF000

#define EXYNOS4210_CPU_ID	0x43210000
#define EXYNOS4212_CPU_ID	0x43220000
#define EXYNOS4412_CPU_ID	0xE4412200
#define EXYNOS4_CPU_MASK	0xFFFE0000

@@ -34,6 +35,7 @@ static inline int is_samsung_##name(void) \

IS_SAMSUNG_CPU(exynos3250, EXYNOS3250_SOC_ID, EXYNOS3_SOC_MASK)
IS_SAMSUNG_CPU(exynos4210, EXYNOS4210_CPU_ID, EXYNOS4_CPU_MASK)
IS_SAMSUNG_CPU(exynos4212, EXYNOS4212_CPU_ID, EXYNOS4_CPU_MASK)
IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK)
IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK)
IS_SAMSUNG_CPU(exynos5410, EXYNOS5410_SOC_ID, EXYNOS5_SOC_MASK)
@@ -52,6 +54,12 @@ IS_SAMSUNG_CPU(exynos5800, EXYNOS5800_SOC_ID, EXYNOS5_SOC_MASK)
# define soc_is_exynos4210()	0
#endif

#if defined(CONFIG_SOC_EXYNOS4212)
# define soc_is_exynos4212()	is_samsung_exynos4212()
#else
# define soc_is_exynos4212()	0
#endif

#if defined(CONFIG_SOC_EXYNOS4412)
# define soc_is_exynos4412()	is_samsung_exynos4412()
#else
+2 −0
Original line number Diff line number Diff line
@@ -180,6 +180,7 @@ static void __init exynos_dt_machine_init(void)
		exynos_cpuidle.dev.platform_data = &cpuidle_coupled_exynos_data;
#endif
	if (of_machine_is_compatible("samsung,exynos4210") ||
	    of_machine_is_compatible("samsung,exynos4212") ||
	    (of_machine_is_compatible("samsung,exynos4412") &&
	     (of_machine_is_compatible("samsung,trats2") ||
		  of_machine_is_compatible("samsung,midas") ||
@@ -194,6 +195,7 @@ static char const *const exynos_dt_compat[] __initconst = {
	"samsung,exynos3250",
	"samsung,exynos4",
	"samsung,exynos4210",
	"samsung,exynos4212",
	"samsung,exynos4412",
	"samsung,exynos5",
	"samsung,exynos5250",
+7 −1
Original line number Diff line number Diff line
@@ -63,12 +63,18 @@ static int exynos_cpu_boot(int cpu)
	 *
	 * On Exynos5 devices the call is ignored by trustzone firmware.
	 */
	if (!soc_is_exynos4210() && !soc_is_exynos4412())
	if (!soc_is_exynos4210() && !soc_is_exynos4212() &&
	    !soc_is_exynos4412())
		return 0;

	/*
	 * The second parameter of SMC_CMD_CPU1BOOT command means CPU id.
	 * But, Exynos4212 has only one secondary CPU so second parameter
	 * isn't used for informing secure firmware about CPU id.
	 */
	if (soc_is_exynos4212())
		cpu = 0;

	exynos_smc(SMC_CMD_CPU1BOOT, cpu, 0, 0);
	return 0;
}
+1 −1
Original line number Diff line number Diff line
@@ -161,7 +161,7 @@ void exynos_enter_aftr(void)

	exynos_pm_central_suspend();

	if (soc_is_exynos4412()) {
	if (soc_is_exynos4212() || soc_is_exynos4412()) {
		/* Setting SEQ_OPTION register */
		pmu_raw_writel(S5P_USE_STANDBY_WFI0 | S5P_USE_STANDBY_WFE0,
			       S5P_CENTRAL_SEQ_OPTION);
Loading