-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'nuvoton/ma35d1' into soc/newsoc
This patchset adds initial support for the Nuvoton ma35d1 SoC, including initial device tree, clock driver, reset driver, and serial driver. This patchset cover letter is based from the initial support for Nuvoton ma35d1 to keep tracking the version history. This patchset had been applied to Linux kernel 6.4.0-rc5 and tested on the Nuvoton ma35d1 SOM evaluation board. (ma35d1 information: https://www.nuvoton.com/products/microprocessors/arm-cortex-a35-mpus/) MA35D1 porting on linux-5.10.y can be found at: https://github.com/OpenNuvoton/MPU-Family Link: https://lore.kernel.org/linux-arm-kernel/20230605040749.67964-1-ychuang570808@gmail.com/ [arnd: merging everything aside from the serial port driver for now, as that is still waiting for an Ack] * nuvoton/ma35d1: reset: Add Nuvoton ma35d1 reset driver support clk: nuvoton: Add clock driver for ma35d1 clock controller arm64: dts: nuvoton: Add initial ma35d1 device tree dt-bindings: serial: Document ma35d1 uart controller dt-bindings: arm: Add initial bindings for Nuvoton platform dt-bindings: reset: nuvoton: Document ma35d1 reset control dt-bindings: clock: nuvoton: add binding for ma35d1 clock controller arm64: defconfig: Add support for Nuvoton MA35 family SoCs arm64: Kconfig.platforms: Add config for Nuvoton MA35 platform Signed-off-by: Arnd Bergmann <arnd@arndb.de>
- Loading branch information
Showing
25 changed files
with
2,614 additions
and
3 deletions.
There are no files selected for viewing
30 changes: 30 additions & 0 deletions
30
Documentation/devicetree/bindings/arm/nuvoton/nuvoton,ma35d1.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause | ||
%YAML 1.2 | ||
--- | ||
$id: http://devicetree.org/schemas/arm/nuvoton/nuvoton,ma35d1.yaml# | ||
$schema: http://devicetree.org/meta-schemas/core.yaml# | ||
|
||
title: Nuvoton MA35 series SoC based platforms | ||
|
||
maintainers: | ||
- Jacky Huang <ychuang3@nuvoton.com> | ||
|
||
description: | | ||
Boards with an ARMv8 based Nuvoton MA35 series SoC shall have | ||
the following properties. | ||
properties: | ||
$nodename: | ||
const: '/' | ||
compatible: | ||
oneOf: | ||
|
||
- description: MA35D1 based boards | ||
items: | ||
- enum: | ||
- nuvoton,ma35d1-iot | ||
- nuvoton,ma35d1-som | ||
- const: nuvoton,ma35d1 | ||
|
||
additionalProperties: true | ||
... |
2 changes: 1 addition & 1 deletion
2
...on/devicetree/bindings/arm/npcm/npcm.yaml → ...ee/bindings/arm/nuvoton/nuvoton,npcm.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
63 changes: 63 additions & 0 deletions
63
Documentation/devicetree/bindings/clock/nuvoton,ma35d1-clk.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) | ||
%YAML 1.2 | ||
--- | ||
$id: http://devicetree.org/schemas/clock/nuvoton,ma35d1-clk.yaml# | ||
$schema: http://devicetree.org/meta-schemas/core.yaml# | ||
|
||
title: Nuvoton MA35D1 Clock Controller Module | ||
|
||
maintainers: | ||
- Chi-Fang Li <cfli0@nuvoton.com> | ||
- Jacky Huang <ychuang3@nuvoton.com> | ||
|
||
description: | | ||
The MA35D1 clock controller generates clocks for the whole chip, | ||
including system clocks and all peripheral clocks. | ||
See also: | ||
include/dt-bindings/clock/ma35d1-clk.h | ||
properties: | ||
compatible: | ||
items: | ||
- const: nuvoton,ma35d1-clk | ||
|
||
reg: | ||
maxItems: 1 | ||
|
||
"#clock-cells": | ||
const: 1 | ||
|
||
clocks: | ||
maxItems: 1 | ||
|
||
nuvoton,pll-mode: | ||
description: | ||
A list of PLL operation mode corresponding to CAPLL, DDRPLL, APLL, | ||
EPLL, and VPLL in sequential. | ||
maxItems: 5 | ||
items: | ||
enum: | ||
- integer | ||
- fractional | ||
- spread-spectrum | ||
$ref: /schemas/types.yaml#/definitions/non-unique-string-array | ||
|
||
required: | ||
- compatible | ||
- reg | ||
- "#clock-cells" | ||
- clocks | ||
|
||
additionalProperties: false | ||
|
||
examples: | ||
- | | ||
clock-controller@40460200 { | ||
compatible = "nuvoton,ma35d1-clk"; | ||
reg = <0x40460200 0x100>; | ||
#clock-cells = <1>; | ||
clocks = <&clk_hxt>; | ||
}; | ||
... |
45 changes: 45 additions & 0 deletions
45
Documentation/devicetree/bindings/reset/nuvoton,ma35d1-reset.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) | ||
%YAML 1.2 | ||
--- | ||
$id: http://devicetree.org/schemas/reset/nuvoton,ma35d1-reset.yaml# | ||
$schema: http://devicetree.org/meta-schemas/core.yaml# | ||
|
||
title: Nuvoton MA35D1 Reset Controller | ||
|
||
maintainers: | ||
- Chi-Fang Li <cfli0@nuvoton.com> | ||
- Jacky Huang <ychuang3@nuvoton.com> | ||
|
||
description: | ||
The system reset controller can be used to reset various peripheral | ||
controllers in MA35D1 SoC. | ||
|
||
properties: | ||
compatible: | ||
items: | ||
- const: nuvoton,ma35d1-reset | ||
|
||
reg: | ||
maxItems: 1 | ||
|
||
'#reset-cells': | ||
const: 1 | ||
|
||
required: | ||
- compatible | ||
- reg | ||
- '#reset-cells' | ||
|
||
additionalProperties: false | ||
|
||
examples: | ||
# system reset controller node: | ||
- | | ||
system-management@40460000 { | ||
compatible = "nuvoton,ma35d1-reset"; | ||
reg = <0x40460000 0x200>; | ||
#reset-cells = <1>; | ||
}; | ||
... | ||
|
48 changes: 48 additions & 0 deletions
48
Documentation/devicetree/bindings/serial/nuvoton,ma35d1-serial.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) | ||
%YAML 1.2 | ||
--- | ||
$id: http://devicetree.org/schemas/serial/nuvoton,ma35d1-serial.yaml# | ||
$schema: http://devicetree.org/meta-schemas/core.yaml# | ||
|
||
title: Nuvoton MA35D1 Universal Asynchronous Receiver/Transmitter (UART) | ||
|
||
maintainers: | ||
- Min-Jen Chen <mjchen@nuvoton.com> | ||
- Jacky Huang <ychuang3@nuvoton.com> | ||
|
||
allOf: | ||
- $ref: serial.yaml | ||
|
||
properties: | ||
compatible: | ||
const: nuvoton,ma35d1-uart | ||
|
||
reg: | ||
maxItems: 1 | ||
|
||
interrupts: | ||
maxItems: 1 | ||
|
||
clocks: | ||
maxItems: 1 | ||
|
||
required: | ||
- compatible | ||
- reg | ||
- interrupts | ||
- clocks | ||
|
||
unevaluatedProperties: false | ||
|
||
examples: | ||
- | | ||
#include <dt-bindings/interrupt-controller/arm-gic.h> | ||
#include <dt-bindings/clock/nuvoton,ma35d1-clk.h> | ||
serial@40700000 { | ||
compatible = "nuvoton,ma35d1-uart"; | ||
reg = <0x40700000 0x100>; | ||
interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; | ||
clocks = <&clk UART0_GATE>; | ||
}; | ||
... |
2 changes: 1 addition & 1 deletion
2
...cetree/bindings/arm/npcm/nuvoton,gcr.yaml → ...indings/soc/nuvoton/nuvoton,npcm-gcr.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,4 @@ | ||
# SPDX-License-Identifier: GPL-2.0 | ||
dtb-$(CONFIG_ARCH_MA35) += ma35d1-iot-512m.dtb | ||
dtb-$(CONFIG_ARCH_MA35) += ma35d1-som-256m.dtb | ||
dtb-$(CONFIG_ARCH_NPCM) += nuvoton-npcm845-evb.dtb |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
// SPDX-License-Identifier: GPL-2.0 | ||
/* | ||
* Copyright (C) 2023 Nuvoton Technology Corp. | ||
* Author: Shan-Chun Hung <schung@nuvoton.com> | ||
* Jacky huang <ychuang3@nuvoton.com> | ||
*/ | ||
|
||
/dts-v1/; | ||
#include "ma35d1.dtsi" | ||
|
||
/ { | ||
model = "Nuvoton MA35D1-IoT"; | ||
compatible = "nuvoton,ma35d1-iot", "nuvoton,ma35d1"; | ||
|
||
aliases { | ||
serial0 = &uart0; | ||
}; | ||
|
||
chosen { | ||
stdout-path = "serial0:115200n8"; | ||
}; | ||
|
||
mem: memory@80000000 { | ||
device_type = "memory"; | ||
reg = <0x00000000 0x80000000 0 0x20000000>; /* 512M DRAM */ | ||
}; | ||
|
||
clk_hxt: clock-hxt { | ||
compatible = "fixed-clock"; | ||
#clock-cells = <0>; | ||
clock-frequency = <24000000>; | ||
clock-output-names = "clk_hxt"; | ||
}; | ||
}; | ||
|
||
&uart0 { | ||
status = "okay"; | ||
}; | ||
|
||
&clk { | ||
assigned-clocks = <&clk CAPLL>, | ||
<&clk DDRPLL>, | ||
<&clk APLL>, | ||
<&clk EPLL>, | ||
<&clk VPLL>; | ||
assigned-clock-rates = <800000000>, | ||
<266000000>, | ||
<180000000>, | ||
<500000000>, | ||
<102000000>; | ||
nuvoton,pll-mode = "integer", | ||
"fractional", | ||
"integer", | ||
"integer", | ||
"integer"; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
// SPDX-License-Identifier: GPL-2.0 | ||
/* | ||
* Copyright (C) 2023 Nuvoton Technology Corp. | ||
* Author: Shan-Chun Hung <schung@nuvoton.com> | ||
* Jacky huang <ychuang3@nuvoton.com> | ||
*/ | ||
|
||
/dts-v1/; | ||
#include "ma35d1.dtsi" | ||
|
||
/ { | ||
model = "Nuvoton MA35D1-SOM"; | ||
compatible = "nuvoton,ma35d1-som", "nuvoton,ma35d1"; | ||
|
||
aliases { | ||
serial0 = &uart0; | ||
}; | ||
|
||
chosen { | ||
stdout-path = "serial0:115200n8"; | ||
}; | ||
|
||
mem: memory@80000000 { | ||
device_type = "memory"; | ||
reg = <0x00000000 0x80000000 0 0x10000000>; /* 256M DRAM */ | ||
}; | ||
|
||
clk_hxt: clock-hxt { | ||
compatible = "fixed-clock"; | ||
#clock-cells = <0>; | ||
clock-frequency = <24000000>; | ||
clock-output-names = "clk_hxt"; | ||
}; | ||
}; | ||
|
||
&uart0 { | ||
status = "okay"; | ||
}; | ||
|
||
&clk { | ||
assigned-clocks = <&clk CAPLL>, | ||
<&clk DDRPLL>, | ||
<&clk APLL>, | ||
<&clk EPLL>, | ||
<&clk VPLL>; | ||
assigned-clock-rates = <800000000>, | ||
<266000000>, | ||
<180000000>, | ||
<500000000>, | ||
<102000000>; | ||
nuvoton,pll-mode = "integer", | ||
"fractional", | ||
"integer", | ||
"integer", | ||
"integer"; | ||
}; |
Oops, something went wrong.