Skip to content

Commit 8ca302e

Browse files
committed
Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC platform updates from Arnd Bergmann: "SoC platform changes (arch/arm/mach-*). This merge window, the bulk is for a few platforms: - Andres Färber adds initial support for the Actions Semi S500 (aka 'owl') platform, a close relative of the S900 platform he adds for arm64. - in mach-omap2, we remove more legacy code - Rockchips gains support for the RV1108 SoC designed for camera applications. - For Atmel, we gain support for MMU-less SoCs (SAME70/V71/S70/V70) - Minor updates for other platforms, including davinci, s3c64xx, prima2, stm32, broadcom nsp, amlogic, pxa, imx and renesas" * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (74 commits) ARM: owl: smp: Drop bogus holding pen ARM: owl: Drop custom machine ARM: owl: smp: Implement SPS power-gating for CPU2 and CPU3 soc: actions: owl-sps: Factor out owl_sps_set_pg() for power-gating soc: actions: Add Owl SPS dt-bindings: power: Add Owl SPS power domains MAINTAINERS: Update Actions Semi section with SPS ARM: owl: Implement CPU enable-method for S500 MAINTAINERS: Add Actions Semi Owl section ARM: Prepare Actions Semi S500 ARM: socfpga: Increase max number of GPIOs ARM: stm32: Introduce MACH_STM32F469 flag ARM: prima2: remove redundant select CPU_V7 ARM: davinci: fix const warnings ARM: shmobile: pm-rmobile: Use GENPD_FLAG_ALWAYS_ON ARM: OMAP4: hwmod_data: add SHAM crypto accelerator ARM: OMAP4: hwmod data: add des ARM: OMAP4: hwmod data: add aes2 ARM: OMAP4: hwmod data: add aes1 ARM: pxa: Delete an error message for a failed memory allocation in pxa3xx_u2d_probe() ...
2 parents 612341b + 18cfd94 commit 8ca302e

90 files changed

Lines changed: 1766 additions & 1146 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Documentation/arm/Atmel/README

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ git branches/tags and email subject always contain this "at91" sub-string.
1616

1717
AT91 SoCs
1818
---------
19-
Documentation and detailled datasheet for each product are available on
19+
Documentation and detailed datasheet for each product are available on
2020
the Atmel website: http://www.atmel.com.
2121

2222
Flavors:
@@ -101,6 +101,42 @@ the Atmel website: http://www.atmel.com.
101101
+ Datasheet
102102
http://www.atmel.com/Images/Atmel-11267-32-bit-Cortex-A5-Microcontroller-SAMA5D2_Datasheet.pdf
103103

104+
* ARM Cortex-M7 MCUs
105+
- sams70 family
106+
- sams70j19
107+
- sams70j20
108+
- sams70j21
109+
- sams70n19
110+
- sams70n20
111+
- sams70n21
112+
- sams70q19
113+
- sams70q20
114+
- sams70q21
115+
+ Datasheet
116+
http://www.atmel.com/Images/Atmel-11242-32-bit-Cortex-M7-Microcontroller-SAM-S70Q-SAM-S70N-SAM-S70J_Datasheet.pdf
117+
118+
- samv70 family
119+
- samv70j19
120+
- samv70j20
121+
- samv70n19
122+
- samv70n20
123+
- samv70q19
124+
- samv70q20
125+
+ Datasheet
126+
http://www.atmel.com/Images/Atmel-11297-32-bit-Cortex-M7-Microcontroller-SAM-V70Q-SAM-V70N-SAM-V70J_Datasheet.pdf
127+
128+
- samv71 family
129+
- samv71j19
130+
- samv71j20
131+
- samv71j21
132+
- samv71n19
133+
- samv71n20
134+
- samv71n21
135+
- samv71q19
136+
- samv71q20
137+
- samv71q21
138+
+ Datasheet
139+
http://www.atmel.com/Images/Atmel-44003-32-bit-Cortex-M7-Microcontroller-SAM-V71Q-SAM-V71N-SAM-V71J_Datasheet.pdf
104140

105141
Linux kernel information
106142
------------------------

Documentation/devicetree/bindings/arm/atmel-at91.txt

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,36 @@ compatible: must be one of:
4141
- "atmel,sama5d43"
4242
- "atmel,sama5d44"
4343

44+
* "atmel,samv7" for MCUs using a Cortex-M7, shall be extended with the specific
45+
SoC family:
46+
o "atmel,sams70" shall be extended with the specific MCU compatible:
47+
- "atmel,sams70j19"
48+
- "atmel,sams70j20"
49+
- "atmel,sams70j21"
50+
- "atmel,sams70n19"
51+
- "atmel,sams70n20"
52+
- "atmel,sams70n21"
53+
- "atmel,sams70q19"
54+
- "atmel,sams70q20"
55+
- "atmel,sams70q21"
56+
o "atmel,samv70" shall be extended with the specific MCU compatible:
57+
- "atmel,samv70j19"
58+
- "atmel,samv70j20"
59+
- "atmel,samv70n19"
60+
- "atmel,samv70n20"
61+
- "atmel,samv70q19"
62+
- "atmel,samv70q20"
63+
o "atmel,samv71" shall be extended with the specific MCU compatible:
64+
- "atmel,samv71j19"
65+
- "atmel,samv71j20"
66+
- "atmel,samv71j21"
67+
- "atmel,samv71n19"
68+
- "atmel,samv71n20"
69+
- "atmel,samv71n21"
70+
- "atmel,samv71q19"
71+
- "atmel,samv71q20"
72+
- "atmel,samv71q21"
73+
4474
Chipid required properties:
4575
- compatible: Should be "atmel,sama5d2-chipid"
4676
- reg : Should contain registers location and length
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
Actions Semi Owl Smart Power System (SPS)
2+
3+
Required properties:
4+
- compatible : "actions,s500-sps" for S500
5+
- reg : Offset and length of the register set for the device.
6+
- #power-domain-cells : Must be 1.
7+
See macros in:
8+
include/dt-bindings/power/owl-s500-powergate.h for S500
9+
10+
11+
Example:
12+
13+
sps: power-controller@b01b0100 {
14+
compatible = "actions,s500-sps";
15+
reg = <0xb01b0100 0x100>;
16+
#power-domain-cells = <1>;
17+
};

MAINTAINERS

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1036,6 +1036,22 @@ S: Maintained
10361036
F: drivers/amba/
10371037
F: include/linux/amba/bus.h
10381038

1039+
ARM/ACTIONS SEMI ARCHITECTURE
1040+
M: Andreas Färber <afaerber@suse.de>
1041+
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
1042+
S: Maintained
1043+
N: owl
1044+
F: arch/arm/mach-actions/
1045+
F: arch/arm/boot/dts/owl-*
1046+
F: arch/arm64/boot/dts/actions/
1047+
F: drivers/clocksource/owl-*
1048+
F: drivers/soc/actions/
1049+
F: include/dt-bindings/power/owl-*
1050+
F: include/linux/soc/actions/
1051+
F: Documentation/devicetree/bindings/arm/actions.txt
1052+
F: Documentation/devicetree/bindings/power/actions,owl-sps.txt
1053+
F: Documentation/devicetree/bindings/timer/actions,owl-timer.txt
1054+
10391055
ARM/ADS SPHERE MACHINE SUPPORT
10401056
M: Lennert Buytenhek <kernel@wantstofly.org>
10411057
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)

arch/arm/Kconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -712,6 +712,8 @@ config ARCH_VIRT
712712
#
713713
source "arch/arm/mach-mvebu/Kconfig"
714714

715+
source "arch/arm/mach-actions/Kconfig"
716+
715717
source "arch/arm/mach-alpine/Kconfig"
716718

717719
source "arch/arm/mach-artpec/Kconfig"
@@ -1462,6 +1464,7 @@ config ARM_PSCI
14621464
# selected platforms.
14631465
config ARCH_NR_GPIO
14641466
int
1467+
default 2048 if ARCH_SOCFPGA
14651468
default 1024 if ARCH_BRCMSTB || ARCH_SHMOBILE || ARCH_TEGRA || \
14661469
ARCH_ZYNQ
14671470
default 512 if ARCH_EXYNOS || ARCH_KEYSTONE || SOC_OMAP5 || \

arch/arm/Kconfig.debug

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,15 @@ choice
145145
Say Y here if you want kernel low-level debugging support
146146
on the USART3 port of sama5d4.
147147

148+
config DEBUG_AT91_SAMV7_USART1
149+
bool "Kernel low-level debugging via SAMV7 USART1"
150+
select DEBUG_AT91_UART
151+
depends on SOC_SAMV7
152+
help
153+
Say Y here if you want the debug print routines to direct
154+
their output to the USART1 port on SAMV7 based
155+
machines.
156+
148157
config DEBUG_BCM2835
149158
bool "Kernel low-level debugging on BCM2835 PL011 UART"
150159
depends on ARCH_BCM2835 && ARCH_MULTI_V6
@@ -751,6 +760,7 @@ choice
751760
ARCH DEBUG_UART_PHYS DEBUG_UART_VIRT
752761
APQ8064 0x16640000 0xf0040000
753762
APQ8084 0xf995e000 0xfa75e000
763+
IPQ4019 0x078af000 0xf78af000
754764
MSM8X60 0x19c40000 0xf0040000
755765
MSM8960 0x16440000 0xf0040000
756766
MSM8974 0xf991e000 0xfa71e000
@@ -776,6 +786,30 @@ choice
776786
their output to the standard serial port on the RealView
777787
PB1176 platform.
778788

789+
config DEBUG_RV1108_UART0
790+
bool "Kernel low-level debugging messages via Rockchip RV1108 UART0"
791+
depends on ARCH_ROCKCHIP
792+
select DEBUG_UART_8250
793+
help
794+
Say Y here if you want kernel low-level debugging support
795+
on Rockchip RV1108 based platforms.
796+
797+
config DEBUG_RV1108_UART1
798+
bool "Kernel low-level debugging messages via Rockchip RV1108 UART1"
799+
depends on ARCH_ROCKCHIP
800+
select DEBUG_UART_8250
801+
help
802+
Say Y here if you want kernel low-level debugging support
803+
on Rockchip RV1108 based platforms.
804+
805+
config DEBUG_RV1108_UART2
806+
bool "Kernel low-level debugging messages via Rockchip RV1108 UART2"
807+
depends on ARCH_ROCKCHIP
808+
select DEBUG_UART_8250
809+
help
810+
Say Y here if you want kernel low-level debugging support
811+
on Rockchip RV1108 based platforms.
812+
779813
config DEBUG_RK29_UART0
780814
bool "Kernel low-level debugging messages via Rockchip RK29 UART0"
781815
depends on ARCH_ROCKCHIP
@@ -1465,6 +1499,9 @@ config DEBUG_UART_PHYS
14651499
default 0x10126000 if DEBUG_RK3X_UART1
14661500
default 0x101f1000 if DEBUG_VERSATILE
14671501
default 0x101fb000 if DEBUG_NOMADIK_UART
1502+
default 0x10210000 if DEBUG_RV1108_UART2
1503+
default 0x10220000 if DEBUG_RV1108_UART1
1504+
default 0x10230000 if DEBUG_RV1108_UART0
14681505
default 0x11002000 if DEBUG_MT8127_UART0
14691506
default 0x11006000 if DEBUG_MT6589_UART0
14701507
default 0x11009000 if DEBUG_MT8135_UART3
@@ -1481,6 +1518,7 @@ config DEBUG_UART_PHYS
14811518
default 0x3f201000 if DEBUG_BCM2836
14821519
default 0x3e000000 if DEBUG_BCM_KONA_UART
14831520
default 0x4000e400 if DEBUG_LL_UART_EFM32
1521+
default 0x40028000 if DEBUG_AT91_SAMV7_USART1
14841522
default 0x40081000 if DEBUG_LPC18XX_UART0
14851523
default 0x40090000 if DEBUG_LPC32XX
14861524
default 0x40100000 if DEBUG_PXA_UART1
@@ -1563,6 +1601,9 @@ config DEBUG_UART_PHYS
15631601

15641602
config DEBUG_UART_VIRT
15651603
hex "Virtual base address of debug UART"
1604+
default 0xc881f000 if DEBUG_RV1108_UART2
1605+
default 0xc8821000 if DEBUG_RV1108_UART1
1606+
default 0xc8912000 if DEBUG_RV1108_UART0
15661607
default 0xe0000a00 if DEBUG_NETX_UART
15671608
default 0xe0010fe0 if ARCH_RPC
15681609
default 0xf0000be0 if ARCH_EBSA110

arch/arm/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ textofs-$(CONFIG_ARCH_AXXIA) := 0x00308000
151151

152152
# Machine directory name. This list is sorted alphanumerically
153153
# by CONFIG_* macro name.
154+
machine-$(CONFIG_ARCH_ACTIONS) += actions
154155
machine-$(CONFIG_ARCH_ALPINE) += alpine
155156
machine-$(CONFIG_ARCH_ARTPEC) += artpec
156157
machine-$(CONFIG_ARCH_AT91) += at91

arch/arm/mach-actions/Kconfig

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
menuconfig ARCH_ACTIONS
2+
bool "Actions Semi SoCs"
3+
depends on ARCH_MULTI_V7
4+
select ARM_AMBA
5+
select ARM_GIC
6+
select ARM_GLOBAL_TIMER
7+
select CACHE_L2X0
8+
select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
9+
select COMMON_CLK
10+
select GENERIC_IRQ_CHIP
11+
select HAVE_ARM_SCU if SMP
12+
select HAVE_ARM_TWD if SMP
13+
select OWL_PM_DOMAINS_HELPER
14+
select OWL_TIMER
15+
help
16+
This enables support for the Actions Semiconductor S500 SoC family.

arch/arm/mach-actions/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
obj-${CONFIG_SMP} += platsmp.o headsmp.o
2+
3+
AFLAGS_headsmp.o := -Wa,-march=armv7-a

arch/arm/mach-actions/headsmp.S

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*
2+
* Copyright 2012 Actions Semi Inc.
3+
* Author: Actions Semi, Inc.
4+
*
5+
* Copyright (c) 2017 Andreas Färber
6+
*
7+
* This program is free software; you can redistribute it and/or modify it
8+
* under the terms of the GNU General Public License as published by the
9+
* Free Software Foundation; either version 2 of the License, or (at your
10+
* option) any later version.
11+
*/
12+
13+
#include <linux/linkage.h>
14+
#include <linux/init.h>
15+
16+
ENTRY(owl_v7_invalidate_l1)
17+
mov r0, #0
18+
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
19+
mcr p15, 2, r0, c0, c0, 0
20+
mrc p15, 1, r0, c0, c0, 0
21+
22+
ldr r1, =0x7fff
23+
and r2, r1, r0, lsr #13
24+
25+
ldr r1, =0x3ff
26+
27+
and r3, r1, r0, lsr #3 @ NumWays - 1
28+
add r2, r2, #1 @ NumSets
29+
30+
and r0, r0, #0x7
31+
add r0, r0, #4 @ SetShift
32+
33+
clz r1, r3 @ WayShift
34+
add r4, r3, #1 @ NumWays
35+
1: sub r2, r2, #1 @ NumSets--
36+
mov r3, r4 @ Temp = NumWays
37+
2: subs r3, r3, #1 @ Temp--
38+
mov r5, r3, lsl r1
39+
mov r6, r2, lsl r0
40+
orr r5, r5, r6 @ Reg = (Temp<<WayShift)|(NumSets<<SetShift)
41+
mcr p15, 0, r5, c7, c6, 2
42+
bgt 2b
43+
cmp r2, #0
44+
bgt 1b
45+
dsb
46+
isb
47+
mov pc, lr
48+
ENDPROC(owl_v7_invalidate_l1)
49+
50+
ENTRY(owl_secondary_startup)
51+
bl owl_v7_invalidate_l1
52+
b secondary_startup

0 commit comments

Comments
 (0)