Skip to content

Commit 469030d

Browse files
committed
Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
Pull ARM SoC platform updates from Olof Johansson: "Most of these are smaller fixes that have accrued, and some continued cleanup of OMAP platforms towards shared frameworks. One new SoC from Atmel/Microchip: sam9x60" * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (35 commits) ARM: OMAP2+: Fix undefined reference to omap_secure_init ARM: s3c64xx: Drop unneeded select of TIMER_OF ARM: exynos: Drop unneeded select of MIGHT_HAVE_CACHE_L2X0 ARM: s3c24xx: Switch to atomic pwm API in rx1950 ARM: OMAP2+: sleep43xx: Call secure suspend/resume handlers ARM: OMAP2+: Use ARM SMC Calling Convention when OP-TEE is available ARM: OMAP2+: Introduce check for OP-TEE in omap_secure_init() ARM: OMAP2+: Add omap_secure_init callback hook for secure initialization ARM: at91: Documentation: add sam9x60 product and datasheet ARM: at91: pm: use of_device_id array to find the proper shdwc node ARM: at91: pm: use SAM9X60 PMC's compatible ARM: imx: only select ARM_ERRATA_814220 for ARMv7-A ARM: zynq: use physical cpuid in zynq_slcr_cpu_stop/start ARM: tegra: Use clk_m CPU on Tegra124 LP1 resume ARM: tegra: Modify reshift divider during LP1 ARM: tegra: Enable PLLP bypass during Tegra124 LP1 ARM: samsung: Rename Samsung and Exynos to lowercase ARM: exynos: Correct the help text for platform Kconfig option ARM: bcm: Select ARM_AMBA for ARCH_BRCMSTB ARM: brcmstb: Add debug UART entry for 7216 ...
2 parents b85080c + d8430df commit 469030d

File tree

40 files changed

+457
-131
lines changed

40 files changed

+457
-131
lines changed

Documentation/arm/microchip.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,12 @@ the Microchip website: http://www.microchip.com.
9292

9393
http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001517A.pdf
9494

95+
- sam9x60
96+
97+
* Datasheet
98+
99+
http://ww1.microchip.com/downloads/en/DeviceDoc/SAM9X60-Data-Sheet-DS60001579A.pdf
100+
95101
* ARM Cortex-A5 based SoCs
96102
- sama5d3 family
97103

arch/arm/Kconfig.debug

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -147,14 +147,14 @@ choice
147147
0x80024000 | 0xf0024000 | UART9
148148

149149
config DEBUG_AT91_RM9200_DBGU
150-
bool "Kernel low-level debugging on AT91RM9200, AT91SAM9 DBGU"
150+
bool "Kernel low-level debugging on AT91RM9200, AT91SAM9, SAM9X60 DBGU"
151151
select DEBUG_AT91_UART
152-
depends on SOC_AT91RM9200 || SOC_AT91SAM9
152+
depends on SOC_AT91RM9200 || SOC_AT91SAM9 || SOC_SAM9X60
153153
help
154154
Say Y here if you want kernel low-level debugging support
155155
on the DBGU port of:
156156
at91rm9200, at91sam9260, at91sam9g20, at91sam9261,
157-
at91sam9g10, at91sam9n12, at91sam9rl64, at91sam9x5
157+
at91sam9g10, at91sam9n12, at91sam9rl64, at91sam9x5, sam9x60
158158

159159
config DEBUG_AT91_SAM9263_DBGU
160160
bool "Kernel low-level debugging on AT91SAM{9263,9G45,A5D3} DBGU"

arch/arm/include/debug/brcmstb.S

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
#define UARTA_7268 UARTA_7255
3232
#define UARTA_7271 UARTA_7268
3333
#define UARTA_7278 REG_PHYS_ADDR_V7(0x40c000)
34+
#define UARTA_7216 UARTA_7278
3435
#define UARTA_7364 REG_PHYS_ADDR(0x40b000)
3536
#define UARTA_7366 UARTA_7364
3637
#define UARTA_74371 REG_PHYS_ADDR(0x406b00)
@@ -82,17 +83,18 @@ ARM_BE8( rev \rv, \rv )
8283

8384
/* Chip specific detection starts here */
8485
20: checkuart(\rp, \rv, 0x33900000, 3390)
85-
21: checkuart(\rp, \rv, 0x72500000, 7250)
86-
22: checkuart(\rp, \rv, 0x72550000, 7255)
87-
23: checkuart(\rp, \rv, 0x72600000, 7260)
88-
24: checkuart(\rp, \rv, 0x72680000, 7268)
89-
25: checkuart(\rp, \rv, 0x72710000, 7271)
90-
26: checkuart(\rp, \rv, 0x72780000, 7278)
91-
27: checkuart(\rp, \rv, 0x73640000, 7364)
92-
28: checkuart(\rp, \rv, 0x73660000, 7366)
93-
29: checkuart(\rp, \rv, 0x07437100, 74371)
94-
30: checkuart(\rp, \rv, 0x74390000, 7439)
95-
31: checkuart(\rp, \rv, 0x74450000, 7445)
86+
21: checkuart(\rp, \rv, 0x72160000, 7216)
87+
22: checkuart(\rp, \rv, 0x72500000, 7250)
88+
23: checkuart(\rp, \rv, 0x72550000, 7255)
89+
24: checkuart(\rp, \rv, 0x72600000, 7260)
90+
25: checkuart(\rp, \rv, 0x72680000, 7268)
91+
26: checkuart(\rp, \rv, 0x72710000, 7271)
92+
27: checkuart(\rp, \rv, 0x72780000, 7278)
93+
28: checkuart(\rp, \rv, 0x73640000, 7364)
94+
29: checkuart(\rp, \rv, 0x73660000, 7366)
95+
30: checkuart(\rp, \rv, 0x07437100, 74371)
96+
31: checkuart(\rp, \rv, 0x74390000, 7439)
97+
32: checkuart(\rp, \rv, 0x74450000, 7445)
9698

9799
/* No valid UART found */
98100
90: mov \rp, #0

arch/arm/mach-at91/Kconfig

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,28 @@ config SOC_AT91SAM9
105105
AT91SAM9X35
106106
AT91SAM9XE
107107

108+
config SOC_SAM9X60
109+
bool "SAM9X60"
110+
depends on ARCH_MULTI_V5
111+
select ATMEL_AIC5_IRQ
112+
select ATMEL_PM if PM
113+
select ATMEL_SDRAMC
114+
select CPU_ARM926T
115+
select HAVE_AT91_USB_CLK
116+
select HAVE_AT91_GENERATED_CLK
117+
select HAVE_AT91_SAM9X60_PLL
118+
select MEMORY
119+
select PINCTRL_AT91
120+
select SOC_SAM_V4_V5
121+
select SRAM if PM
122+
help
123+
Select this if you are using Microchip's SAM9X60 SoC
124+
108125
comment "Clocksource driver selection"
109126

110127
config ATMEL_CLOCKSOURCE_PIT
111128
bool "Periodic Interval Timer (PIT) support"
112-
depends on SOC_AT91SAM9 || SOC_SAMA5
129+
depends on SOC_AT91SAM9 || SOC_SAM9X60 || SOC_SAMA5
113130
default SOC_AT91SAM9 || SOC_SAMA5
114131
select ATMEL_PIT
115132
help
@@ -119,7 +136,7 @@ config ATMEL_CLOCKSOURCE_PIT
119136

120137
config ATMEL_CLOCKSOURCE_TCB
121138
bool "Timer Counter Blocks (TCB) support"
122-
default SOC_AT91RM9200 || SOC_AT91SAM9 || SOC_SAMA5
139+
default SOC_AT91RM9200 || SOC_AT91SAM9 || SOC_SAM9X60 || SOC_SAMA5
123140
select ATMEL_TCB_CLKSRC
124141
help
125142
Select this to get a high precision clocksource based on a
@@ -154,6 +171,9 @@ config HAVE_AT91_AUDIO_PLL
154171
config HAVE_AT91_I2S_MUX_CLK
155172
bool
156173

174+
config HAVE_AT91_SAM9X60_PLL
175+
bool
176+
157177
config SOC_SAM_V4_V5
158178
bool
159179

arch/arm/mach-at91/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
# CPU-specific support
77
obj-$(CONFIG_SOC_AT91RM9200) += at91rm9200.o
88
obj-$(CONFIG_SOC_AT91SAM9) += at91sam9.o
9+
obj-$(CONFIG_SOC_SAM9X60) += sam9x60.o
910
obj-$(CONFIG_SOC_SAMA5) += sama5.o
1011
obj-$(CONFIG_SOC_SAMV7) += samv7.o
1112

arch/arm/mach-at91/at91sam9.c

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -31,21 +31,3 @@ DT_MACHINE_START(at91sam_dt, "Atmel AT91SAM9")
3131
.init_machine = at91sam9_init,
3232
.dt_compat = at91_dt_board_compat,
3333
MACHINE_END
34-
35-
static void __init sam9x60_init(void)
36-
{
37-
of_platform_default_populate(NULL, NULL, NULL);
38-
39-
sam9x60_pm_init();
40-
}
41-
42-
static const char *const sam9x60_dt_board_compat[] __initconst = {
43-
"microchip,sam9x60",
44-
NULL
45-
};
46-
47-
DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60")
48-
/* Maintainer: Microchip */
49-
.init_machine = sam9x60_init,
50-
.dt_compat = sam9x60_dt_board_compat,
51-
MACHINE_END

arch/arm/mach-at91/pm.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -691,6 +691,12 @@ static void __init at91_pm_use_default_mode(int pm_mode)
691691
soc_pm.data.suspend_mode = AT91_PM_ULP0;
692692
}
693693

694+
static const struct of_device_id atmel_shdwc_ids[] = {
695+
{ .compatible = "atmel,sama5d2-shdwc" },
696+
{ .compatible = "microchip,sam9x60-shdwc" },
697+
{ /* sentinel. */ }
698+
};
699+
694700
static void __init at91_pm_modes_init(void)
695701
{
696702
struct device_node *np;
@@ -700,7 +706,7 @@ static void __init at91_pm_modes_init(void)
700706
!at91_is_pm_mode_active(AT91_PM_ULP1))
701707
return;
702708

703-
np = of_find_compatible_node(NULL, NULL, "atmel,sama5d2-shdwc");
709+
np = of_find_matching_node(NULL, atmel_shdwc_ids);
704710
if (!np) {
705711
pr_warn("%s: failed to find shdwc!\n", __func__);
706712
goto ulp1_default;
@@ -751,6 +757,7 @@ static const struct of_device_id atmel_pmc_ids[] __initconst = {
751757
{ .compatible = "atmel,sama5d3-pmc", .data = &pmc_infos[1] },
752758
{ .compatible = "atmel,sama5d4-pmc", .data = &pmc_infos[1] },
753759
{ .compatible = "atmel,sama5d2-pmc", .data = &pmc_infos[1] },
760+
{ .compatible = "microchip,sam9x60-pmc", .data = &pmc_infos[1] },
754761
{ /* sentinel */ },
755762
};
756763

@@ -805,7 +812,7 @@ void __init at91rm9200_pm_init(void)
805812

806813
void __init sam9x60_pm_init(void)
807814
{
808-
if (!IS_ENABLED(CONFIG_SOC_AT91SAM9))
815+
if (!IS_ENABLED(CONFIG_SOC_SAM9X60))
809816
return;
810817

811818
at91_pm_modes_init();

arch/arm/mach-at91/sam9x60.c

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// SPDX-License-Identifier: GPL-2.0+
2+
/*
3+
* Setup code for SAM9X60.
4+
*
5+
* Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries
6+
*
7+
* Author: Claudiu Beznea <[email protected]>
8+
*/
9+
10+
#include <linux/of.h>
11+
#include <linux/of_platform.h>
12+
13+
#include <asm/mach/arch.h>
14+
#include <asm/system_misc.h>
15+
16+
#include "generic.h"
17+
18+
static void __init sam9x60_init(void)
19+
{
20+
of_platform_default_populate(NULL, NULL, NULL);
21+
22+
sam9x60_pm_init();
23+
}
24+
25+
static const char *const sam9x60_dt_board_compat[] __initconst = {
26+
"microchip,sam9x60",
27+
NULL
28+
};
29+
30+
DT_MACHINE_START(sam9x60_dt, "Microchip SAM9X60")
31+
/* Maintainer: Microchip */
32+
.init_machine = sam9x60_init,
33+
.dt_compat = sam9x60_dt_board_compat,
34+
MACHINE_END

arch/arm/mach-bcm/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ config ARCH_BRCMSTB
211211
bool "Broadcom BCM7XXX based boards"
212212
depends on ARCH_MULTI_V7
213213
select ARCH_HAS_RESET_CONTROLLER
214+
select ARM_AMBA
214215
select ARM_GIC
215216
select ARM_ERRATA_798181 if SMP
216217
select HAVE_ARM_ARCH_TIMER

arch/arm/mach-exynos/Kconfig

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
# Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
44
# http://www.samsung.com/
55

6-
# Configuration options for the EXYNOS
6+
# Configuration options for the Samsung Exynos
77

88
menuconfig ARCH_EXYNOS
9-
bool "Samsung EXYNOS"
9+
bool "Samsung Exynos"
1010
depends on ARCH_MULTI_V7
1111
select ARCH_HAS_HOLES_MEMORYMODEL
1212
select ARCH_SUPPORTS_BIG_ENDIAN
@@ -42,7 +42,7 @@ menuconfig ARCH_EXYNOS
4242
select POWER_RESET_SYSCON
4343
select POWER_RESET_SYSCON_POWEROFF
4444
help
45-
Support for SAMSUNG EXYNOS SoCs (EXYNOS4/5)
45+
Support for Samsung Exynos SoCs
4646

4747
if ARCH_EXYNOS
4848

@@ -52,71 +52,70 @@ config S5P_DEV_MFC
5252
Compile in setup memory (init) code for MFC
5353

5454
config ARCH_EXYNOS3
55-
bool "SAMSUNG EXYNOS3"
55+
bool "Samsung Exynos3"
5656
default y
5757
select ARM_CPU_SUSPEND if PM
5858
help
59-
Samsung EXYNOS3 (Cortex-A7) SoC based systems
59+
Samsung Exynos3 (Cortex-A7) SoC based systems
6060

6161
config ARCH_EXYNOS4
62-
bool "SAMSUNG EXYNOS4"
62+
bool "Samsung Exynos4"
6363
default y
6464
select ARM_CPU_SUSPEND if PM_SLEEP
6565
select CLKSRC_SAMSUNG_PWM if CPU_EXYNOS4210
6666
select CPU_EXYNOS4210
6767
select GIC_NON_BANKED
68-
select MIGHT_HAVE_CACHE_L2X0
6968
help
70-
Samsung EXYNOS4 (Cortex-A9) SoC based systems
69+
Samsung Exynos4 (Cortex-A9) SoC based systems
7170

7271
config ARCH_EXYNOS5
73-
bool "SAMSUNG EXYNOS5"
72+
bool "Samsung Exynos5"
7473
default y
7574
help
76-
Samsung EXYNOS5 (Cortex-A15/A7) SoC based systems
75+
Samsung Exynos5 (Cortex-A15/A7) SoC based systems
7776

78-
comment "EXYNOS SoCs"
77+
comment "Exynos SoCs"
7978

8079
config SOC_EXYNOS3250
81-
bool "SAMSUNG EXYNOS3250"
80+
bool "Samsung Exynos3250"
8281
default y
8382
depends on ARCH_EXYNOS3
8483

8584
config CPU_EXYNOS4210
86-
bool "SAMSUNG EXYNOS4210"
85+
bool "Samsung Exynos4210"
8786
default y
8887
depends on ARCH_EXYNOS4
8988

9089
config SOC_EXYNOS4412
91-
bool "SAMSUNG EXYNOS4412"
90+
bool "Samsung Exynos4412"
9291
default y
9392
depends on ARCH_EXYNOS4
9493

9594
config SOC_EXYNOS5250
96-
bool "SAMSUNG EXYNOS5250"
95+
bool "Samsung Exynos5250"
9796
default y
9897
depends on ARCH_EXYNOS5
9998

10099
config SOC_EXYNOS5260
101-
bool "SAMSUNG EXYNOS5260"
100+
bool "Samsung Exynos5260"
102101
default y
103102
depends on ARCH_EXYNOS5
104103

105104
config SOC_EXYNOS5410
106-
bool "SAMSUNG EXYNOS5410"
105+
bool "Samsung Exynos5410"
107106
default y
108107
depends on ARCH_EXYNOS5
109108

110109
config SOC_EXYNOS5420
111-
bool "SAMSUNG EXYNOS5420"
110+
bool "Samsung Exynos5420"
112111
default y
113112
depends on ARCH_EXYNOS5
114113
select EXYNOS_MCPM if SMP
115114
select ARM_CCI400_PORT_CTRL
116115
select ARM_CPU_SUSPEND
117116

118117
config SOC_EXYNOS5800
119-
bool "SAMSUNG EXYNOS5800"
118+
bool "Samsung EXYNOS5800"
120119
default y
121120
depends on SOC_EXYNOS5420
122121

0 commit comments

Comments
 (0)