Skip to content

Commit 50686e8

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 Olof Johansson: "New or improved SoC support: - add support for Atmel's SAMA5D2 SoC - add support for Freescale i.MX6UL - improved support for TI's DM814x platform - misc fixes and improvements for RockChip platforms - Marvell MVEBU suspend/resume support A few driver changes that ideally would belong in the drivers branch are also here (acked by appropriate maintainers): - power key input driver for Freescale platforms (svns) - RTC driver updates for Freescale platforms (svns/mxc) - clk fixes for TI DM814/816X + a bunch of other changes for various platforms" * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (83 commits) ARM: rockchip: pm: Fix PTR_ERR() argument ARM: imx: mach-imx6ul: Fix allmodconfig build clk: ti: fix for definition movement ARM: uniphier: drop v7_invalidate_l1 call at secondary entry memory: kill off set_irq_flags usage rtc: snvs: select option REGMAP_MMIO ARM: brcmstb: select ARCH_DMA_ADDR_T_64BIT for LPAE ARM: BCM: Enable ARM erratum 798181 for BRCMSTB ARM: OMAP2+: Fix power domain operations regression caused by 81xx ARM: rockchip: enable PMU_GPIOINT_WAKEUP_EN when entering shallow suspend ARM: rockchip: set correct stabilization thresholds in suspend ARM: rockchip: rename osc_switch_to_32k variable ARM: imx6ul: add fec MAC refrence clock and phy fixup init ARM: imx6ul: add fec bits to GPR syscon definition rtc: mxc: add support of device tree dt-binding: document the binding for mxc rtc rtc: mxc: use a second rtc clock ARM: davinci: cp_intc: use IRQCHIP_SKIP_SET_WAKE instead of irq_set_wake callback soc: mediatek: Fix SCPSYS compilation ARM: at91/soc: add basic support for new sama5d2 SoC ...
2 parents c5fc249 + 1ec6f70 commit 50686e8

File tree

100 files changed

+2728
-517
lines changed

Some content is hidden

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

100 files changed

+2728
-517
lines changed

Documentation/arm/Atmel/README

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@ the Atmel website: http://www.atmel.com.
9090
+ Datasheet
9191
http://www.atmel.com/Images/Atmel-11238-32-bit-Cortex-A5-Microcontroller-SAMA5D4_Datasheet.pdf
9292

93+
- sama5d2 family
94+
- sama5d27
95+
+ Datasheet
96+
Coming soon
97+
9398

9499
Linux kernel information
95100
------------------------

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ compatible: must be one of:
2727
o "atmel,at91sam9xe"
2828
* "atmel,sama5" for SoCs using a Cortex-A5, shall be extended with the specific
2929
SoC family:
30+
o "atmel,sama5d2" shall be extended with the specific SoC compatible:
31+
- "atmel,sama5d27"
3032
o "atmel,sama5d3" shall be extended with the specific SoC compatible:
3133
- "atmel,sama5d31"
3234
- "atmel,sama5d33"

Documentation/devicetree/bindings/crypto/fsl-sec4.txt

Lines changed: 78 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -305,12 +305,13 @@ Secure Non-Volatile Storage (SNVS) Node
305305
Node defines address range and the associated
306306
interrupt for the SNVS function. This function
307307
monitors security state information & reports
308-
security violations.
308+
security violations. This also included rtc,
309+
system power off and ON/OFF key.
309310

310311
- compatible
311312
Usage: required
312313
Value type: <string>
313-
Definition: Must include "fsl,sec-v4.0-mon".
314+
Definition: Must include "fsl,sec-v4.0-mon" and "syscon".
314315

315316
- reg
316317
Usage: required
@@ -341,7 +342,7 @@ Secure Non-Volatile Storage (SNVS) Node
341342
the child address, parent address, & length.
342343

343344
- interrupts
344-
Usage: required
345+
Usage: optional
345346
Value type: <prop_encoded-array>
346347
Definition: Specifies the interrupts generated by this
347348
device. The value of the interrupts property
@@ -358,7 +359,7 @@ Secure Non-Volatile Storage (SNVS) Node
358359

359360
EXAMPLE
360361
sec_mon@314000 {
361-
compatible = "fsl,sec-v4.0-mon";
362+
compatible = "fsl,sec-v4.0-mon", "syscon";
362363
reg = <0x314000 0x1000>;
363364
ranges = <0 0x314000 0x1000>;
364365
interrupt-parent = <&mpic>;
@@ -375,16 +376,72 @@ Secure Non-Volatile Storage (SNVS) Low Power (LP) RTC Node
375376
Value type: <string>
376377
Definition: Must include "fsl,sec-v4.0-mon-rtc-lp".
377378

378-
- reg
379+
- interrupts
379380
Usage: required
380-
Value type: <prop-encoded-array>
381-
Definition: A standard property. Specifies the physical
382-
address and length of the SNVS LP configuration registers.
381+
Value type: <prop_encoded-array>
382+
Definition: Specifies the interrupts generated by this
383+
device. The value of the interrupts property
384+
consists of one interrupt specifier. The format
385+
of the specifier is defined by the binding document
386+
describing the node's interrupt parent.
387+
388+
- regmap
389+
Usage: required
390+
Value type: <phandle>
391+
Definition: this is phandle to the register map node.
392+
393+
- offset
394+
Usage: option
395+
value type: <u32>
396+
Definition: LP register offset. default it is 0x34.
383397

384398
EXAMPLE
385-
sec_mon_rtc_lp@314000 {
399+
sec_mon_rtc_lp@1 {
386400
compatible = "fsl,sec-v4.0-mon-rtc-lp";
387-
reg = <0x34 0x58>;
401+
interrupts = <93 2>;
402+
regmap = <&snvs>;
403+
offset = <0x34>;
404+
};
405+
406+
=====================================================================
407+
System ON/OFF key driver
408+
409+
The snvs-pwrkey is designed to enable POWER key function which controlled
410+
by SNVS ONOFF, the driver can report the status of POWER key and wakeup
411+
system if pressed after system suspend.
412+
413+
- compatible:
414+
Usage: required
415+
Value type: <string>
416+
Definition: Mush include "fsl,sec-v4.0-pwrkey".
417+
418+
- interrupts:
419+
Usage: required
420+
Value type: <prop_encoded-array>
421+
Definition: The SNVS ON/OFF interrupt number to the CPU(s).
422+
423+
- linux,keycode:
424+
Usage: option
425+
Value type: <int>
426+
Definition: Keycode to emit, KEY_POWER by default.
427+
428+
- wakeup-source:
429+
Usage: option
430+
Value type: <boo>
431+
Definition: Button can wake-up the system.
432+
433+
- regmap:
434+
Usage: required:
435+
Value type: <phandle>
436+
Definition: this is phandle to the register map node.
437+
438+
EXAMPLE:
439+
snvs-pwrkey@0x020cc000 {
440+
compatible = "fsl,sec-v4.0-pwrkey";
441+
regmap = <&snvs>;
442+
interrupts = <0 4 0x4>
443+
linux,keycode = <116>; /* KEY_POWER */
444+
wakeup;
388445
};
389446

390447
=====================================================================
@@ -460,12 +517,20 @@ FULL EXAMPLE
460517
compatible = "fsl,sec-v4.0-mon";
461518
reg = <0x314000 0x1000>;
462519
ranges = <0 0x314000 0x1000>;
463-
interrupt-parent = <&mpic>;
464-
interrupts = <93 2>;
465520

466521
sec_mon_rtc_lp@34 {
467522
compatible = "fsl,sec-v4.0-mon-rtc-lp";
468-
reg = <0x34 0x58>;
523+
regmap = <&sec_mon>;
524+
offset = <0x34>;
525+
interrupts = <93 2>;
526+
};
527+
528+
snvs-pwrkey@0x020cc000 {
529+
compatible = "fsl,sec-v4.0-pwrkey";
530+
regmap = <&sec_mon>;
531+
interrupts = <0 4 0x4>;
532+
linux,keycode = <116>; /* KEY_POWER */
533+
wakeup;
469534
};
470535
};
471536

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
See Documentation/devicetree/bindings/crypto/fsl-sec4.txt
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
* Real Time Clock of the i.MX SoCs
2+
3+
RTC controller for the i.MX SoCs
4+
5+
Required properties:
6+
- compatible: Should be "fsl,imx1-rtc" or "fsl,imx21-rtc".
7+
- reg: physical base address of the controller and length of memory mapped
8+
region.
9+
- interrupts: IRQ line for the RTC.
10+
- clocks: should contain two entries:
11+
* one for the input reference
12+
* one for the the SoC RTC
13+
- clock-names: should contain:
14+
* "ref" for the input reference clock
15+
* "ipg" for the SoC RTC clock
16+
17+
Example:
18+
19+
rtc@10007000 {
20+
compatible = "fsl,imx21-rtc";
21+
reg = <0x10007000 0x1000>;
22+
interrupts = <22>;
23+
clocks = <&clks IMX27_CLK_CKIL>,
24+
<&clks IMX27_CLK_RTC_IPG_GATE>;
25+
clock-names = "ref", "ipg";
26+
};
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
MediaTek SCPSYS
2+
===============
3+
4+
The System Control Processor System (SCPSYS) has several power management
5+
related tasks in the system. The tasks include thermal measurement, dynamic
6+
voltage frequency scaling (DVFS), interrupt filter and lowlevel sleep control.
7+
The System Power Manager (SPM) inside the SCPSYS is for the MTCMOS power
8+
domain control.
9+
10+
The driver implements the Generic PM domain bindings described in
11+
power/power_domain.txt. It provides the power domains defined in
12+
include/dt-bindings/power/mt8173-power.h.
13+
14+
Required properties:
15+
- compatible: Must be "mediatek,mt8173-scpsys"
16+
- #power-domain-cells: Must be 1
17+
- reg: Address range of the SCPSYS unit
18+
- infracfg: must contain a phandle to the infracfg controller
19+
- clock, clock-names: clocks according to the common clock binding.
20+
The clocks needed "mm" and "mfg". These are the
21+
clocks which hardware needs to be enabled before
22+
enabling certain power domains.
23+
24+
Example:
25+
26+
scpsys: scpsys@10006000 {
27+
#power-domain-cells = <1>;
28+
compatible = "mediatek,mt8173-scpsys";
29+
reg = <0 0x10006000 0 0x1000>;
30+
infracfg = <&infracfg>;
31+
clocks = <&clk26m>,
32+
<&topckgen CLK_TOP_MM_SEL>;
33+
clock-names = "mfg", "mm";
34+
};
35+
36+
Example consumer:
37+
38+
afe: mt8173-afe-pcm@11220000 {
39+
compatible = "mediatek,mt8173-afe-pcm";
40+
power-domains = <&scpsys MT8173_POWER_DOMAIN_AUDIO>;
41+
};

MAINTAINERS

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1583,7 +1583,10 @@ ARM/UNIPHIER ARCHITECTURE
15831583
M: Masahiro Yamada <[email protected]>
15841584
L: [email protected] (moderated for non-subscribers)
15851585
S: Maintained
1586+
F: arch/arm/boot/dts/uniphier*
15861587
F: arch/arm/mach-uniphier/
1588+
F: drivers/pinctrl/uniphier/
1589+
F: drivers/tty/serial/8250/8250_uniphier.c
15871590
N: uniphier
15881591

15891592
ARM/Ux500 ARM ARCHITECTURE
@@ -1678,7 +1681,7 @@ M: Michal Simek <[email protected]>
16781681
R: Sören Brinkmann <[email protected]>
16791682
L: [email protected] (moderated for non-subscribers)
16801683
W: http://wiki.xilinx.com
1681-
T: git git://git.xilinx.com/linux-xlnx.git
1684+
T: git https://github.com/Xilinx/linux-xlnx.git
16821685
S: Supported
16831686
F: arch/arm/mach-zynq/
16841687
F: drivers/cpuidle/cpuidle-zynq.c

arch/arm/Kconfig.debug

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,12 @@ choice
141141
depends on ARCH_AT91
142142
depends on SOC_SAMA5
143143

144+
config AT91_DEBUG_LL_DBGU3
145+
bool "Kernel low-level debugging on sama5d2"
146+
select DEBUG_AT91_UART
147+
depends on ARCH_AT91
148+
depends on SOC_SAMA5
149+
144150
config DEBUG_BCM2835
145151
bool "Kernel low-level debugging on BCM2835 PL011 UART"
146152
depends on ARCH_BCM2835
@@ -411,6 +417,13 @@ choice
411417
Say Y here if you want kernel low-level debugging support
412418
on i.MX6SX.
413419

420+
config DEBUG_IMX6UL_UART
421+
bool "i.MX6UL Debug UART"
422+
depends on SOC_IMX6UL
423+
help
424+
Say Y here if you want kernel low-level debugging support
425+
on i.MX6UL.
426+
414427
config DEBUG_IMX7D_UART
415428
bool "i.MX7D Debug UART"
416429
depends on SOC_IMX7D
@@ -1269,6 +1282,7 @@ config DEBUG_IMX_UART_PORT
12691282
DEBUG_IMX6Q_UART || \
12701283
DEBUG_IMX6SL_UART || \
12711284
DEBUG_IMX6SX_UART || \
1285+
DEBUG_IMX6UL_UART || \
12721286
DEBUG_IMX7D_UART
12731287
default 1
12741288
depends on ARCH_MXC
@@ -1320,6 +1334,7 @@ config DEBUG_LL_INCLUDE
13201334
DEBUG_IMX6Q_UART || \
13211335
DEBUG_IMX6SL_UART || \
13221336
DEBUG_IMX6SX_UART || \
1337+
DEBUG_IMX6UL_UART || \
13231338
DEBUG_IMX7D_UART
13241339
default "debug/ks8695.S" if DEBUG_KS8695_UART
13251340
default "debug/msm.S" if DEBUG_QCOM_UARTDM

arch/arm/boot/dts/am4372.dtsi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@
8686
prcm: prcm@1f0000 {
8787
compatible = "ti,am4-prcm";
8888
reg = <0x1f0000 0x11000>;
89+
interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
8990

9091
prcm_clocks: clocks {
9192
#address-cells = <1>;

arch/arm/include/debug/at91.S

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,12 @@
1313
#define AT91_DBGU 0xfffff200 /* AT91_BASE_DBGU0 */
1414
#elif defined(CONFIG_AT91_DEBUG_LL_DBGU1)
1515
#define AT91_DBGU 0xffffee00 /* AT91_BASE_DBGU1 */
16-
#else
16+
#elif defined(CONFIG_AT91_DEBUG_LL_DBGU2)
1717
/* On sama5d4, use USART3 as low level serial console */
1818
#define AT91_DBGU 0xfc00c000 /* SAMA5D4_BASE_USART3 */
19+
#else
20+
/* On sama5d2, use UART1 as low level serial console */
21+
#define AT91_DBGU 0xf8020000
1922
#endif
2023

2124
#ifdef CONFIG_MMU

arch/arm/include/debug/imx-uart.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,17 @@
9090
#define IMX6SX_UART_BASE_ADDR(n) IMX6SX_UART##n##_BASE_ADDR
9191
#define IMX6SX_UART_BASE(n) IMX6SX_UART_BASE_ADDR(n)
9292

93+
#define IMX6UL_UART1_BASE_ADDR 0x02020000
94+
#define IMX6UL_UART2_BASE_ADDR 0x021e8000
95+
#define IMX6UL_UART3_BASE_ADDR 0x021ec000
96+
#define IMX6UL_UART4_BASE_ADDR 0x021f0000
97+
#define IMX6UL_UART5_BASE_ADDR 0x021f4000
98+
#define IMX6UL_UART6_BASE_ADDR 0x021fc000
99+
#define IMX6UL_UART7_BASE_ADDR 0x02018000
100+
#define IMX6UL_UART8_BASE_ADDR 0x02024000
101+
#define IMX6UL_UART_BASE_ADDR(n) IMX6UL_UART##n##_BASE_ADDR
102+
#define IMX6UL_UART_BASE(n) IMX6UL_UART_BASE_ADDR(n)
103+
93104
#define IMX7D_UART1_BASE_ADDR 0x30860000
94105
#define IMX7D_UART2_BASE_ADDR 0x30890000
95106
#define IMX7D_UART3_BASE_ADDR 0x30880000
@@ -124,6 +135,8 @@
124135
#define UART_PADDR IMX_DEBUG_UART_BASE(IMX6SL)
125136
#elif defined(CONFIG_DEBUG_IMX6SX_UART)
126137
#define UART_PADDR IMX_DEBUG_UART_BASE(IMX6SX)
138+
#elif defined(CONFIG_DEBUG_IMX6UL_UART)
139+
#define UART_PADDR IMX_DEBUG_UART_BASE(IMX6UL)
127140
#elif defined(CONFIG_DEBUG_IMX7D_UART)
128141
#define UART_PADDR IMX_DEBUG_UART_BASE(IMX7D)
129142

arch/arm/include/debug/zynq.S

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
.endm
3939

4040
.macro senduart,rd,rx
41-
str \rd, [\rx, #UART_FIFO_OFFSET] @ TXDATA
41+
strb \rd, [\rx, #UART_FIFO_OFFSET] @ TXDATA
4242
.endm
4343

4444
.macro waituart,rd,rx

arch/arm/mach-at91/Kconfig

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,18 @@ menuconfig ARCH_AT91
88
select SOC_BUS
99

1010
if ARCH_AT91
11+
config SOC_SAMA5D2
12+
bool "SAMA5D2 family" if ARCH_MULTI_V7
13+
select SOC_SAMA5
14+
select CACHE_L2X0
15+
select HAVE_FB_ATMEL
16+
select HAVE_AT91_UTMI
17+
select HAVE_AT91_USB_CLK
18+
select HAVE_AT91_H32MX
19+
select HAVE_AT91_GENERATED_CLK
20+
help
21+
Select this if ou are using one of Atmel's SAMA5D2 family SoC.
22+
1123
config SOC_SAMA5D3
1224
bool "SAMA5D3 family" if ARCH_MULTI_V7
1325
select SOC_SAMA5

arch/arm/mach-at91/sama5.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
#include "soc.h"
1919

2020
static const struct at91_soc sama5_socs[] = {
21+
AT91_SOC(SAMA5D2_CIDR_MATCH, SAMA5D27_EXID_MATCH,
22+
"sama5d27", "sama5d2"),
2123
AT91_SOC(SAMA5D3_CIDR_MATCH, SAMA5D31_EXID_MATCH,
2224
"sama5d31", "sama5d3"),
2325
AT91_SOC(SAMA5D3_CIDR_MATCH, SAMA5D33_EXID_MATCH,
@@ -64,6 +66,7 @@ DT_MACHINE_START(sama5_dt, "Atmel SAMA5")
6466
MACHINE_END
6567

6668
static const char *const sama5_alt_dt_board_compat[] __initconst = {
69+
"atmel,sama5d2",
6770
"atmel,sama5d4",
6871
NULL
6972
};

arch/arm/mach-at91/soc.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ at91_soc_init(const struct at91_soc *socs);
6262
#define AT91SAM9XE256_CIDR_MATCH 0x329a93a0
6363
#define AT91SAM9XE512_CIDR_MATCH 0x329aa3a0
6464

65+
#define SAMA5D2_CIDR_MATCH 0x0a5c08c0
66+
#define SAMA5D27_EXID_MATCH 0x00000021
67+
6568
#define SAMA5D3_CIDR_MATCH 0x0a5c07c0
6669
#define SAMA5D31_EXID_MATCH 0x00444300
6770
#define SAMA5D33_EXID_MATCH 0x00414300

0 commit comments

Comments
 (0)