[PATCH v2 00/20] Introduce Nuvoton Arbel NPCM8XX BMC SoC

Tomer Maimon
2022-06-08T10:30:56Z

This patchset adds initial support for the Nuvoton
Arbel NPCM8XX Board Management controller (BMC) SoC family.

The Nuvoton Arbel NPCM8XX SoC is a fourth-generation BMC.
The NPCM8XX computing subsystem comprises a quadcore ARM
Cortex A35 ARM-V8 architecture.

This patchset adds minimal architecture and drivers such as:
Clocksource, Clock, Reset, and WD.

Some of the Arbel NPCM8XX peripherals are based on Poleg NPCM7XX.

This patchset was tested on the Arbel NPCM8XX evaluation board.

Addressed comments from:
- Arnd Bergmann : https://www.spinics.net/lists/arm-kernel/msg982728.html
https://www.spinics.net/lists/linux-serial/msg48179.html
- Stephen Boyd: https://www.spinics.net/lists/arm-kernel/msg983594.html
- Krzysztof Kozlowski: https://www.spinics.net/lists/kernel/msg4368955.html
https://www.spinics.net/lists/arm-kernel/msg982427.html
https://lore.kernel.org/all/973d75b8-0eb6-ff5b-6cd2-9b7d7c5cbcaa@linaro.org/
https://www.spinics.net/lists/arm-kernel/msg982778.html
https://www.spinics.net/lists/arm-kernel/msg982588.html
- Ilpo Järvinen: https://www.spinics.net/lists/kernel/msg4368936.html
- Stephen Boyd: https://www.spinics.net/lists/arm-kernel/msg983596.html
- Geert Uytterhoeven : https://www.spinics.net/lists/kernel/msg4369514.html

Changes since version 1:
- NPCM8XX clock driver
- Modify dt-binding.
- Remove unsed definition and include.
- Include alphabetically.
- Use clock devm.
- NPCM reset driver
- Modify dt-binding.
- Modify syscon name.
- Add syscon support to NPCM7XX dts reset node.
- use data structure.
- NPCM8XX device tree:
- Modify evb compatible name.
- Add NPCM7xx compatible.
- Remove disable nodes from the EVB DTS.

Tomer Maimon (20):
clocksource: timer-npcm7xx: Add NPCM845 timer
dt-bindings: serial: 8250: Add npcm845 compatible string
tty: serial: 8250: Add NPCM845 UART support
dt-bindings: watchdog: npcm: Add npcm845 compatible string
watchdog: npcm_wdt: Add NPCM845 watchdog support
dt-binding: clk: npcm845: Add binding for Nuvoton NPCM8XX Clock
clk: npcm8xx: add clock controller
dt-bindings: reset: modify to general NPCM name
dt-bindings: reset: npcm: add GCR syscon property
ARM: dts: nuvoton: add reset syscon property
reset: npcm: using syscon instead of device data
dt-bindings: reset: npcm: Add support for NPCM8XX
reset: npcm: Add NPCM8XX support
dt-bindings: arm: npcm: Add maintainer
dt-bindings: arm: npcm: Add nuvoton,npcm845 compatible string
dt-bindings: arm: npcm: Add nuvoton,npcm845 GCR compatible string
arm64: npcm: Add support for Nuvoton NPCM8XX BMC SoC
arm64: dts: nuvoton: Add initial NPCM8XX device tree
arm64: dts: nuvoton: Add initial NPCM845 EVB device tree
arm64: defconfig: Add Nuvoton NPCM family support

.../devicetree/bindings/arm/npcm/npcm.yaml | 7 +
.../bindings/arm/npcm/nuvoton,gcr.yaml | 2 +
.../bindings/clock/nuvoton,npcm845-clk.yaml | 63 ++
...750-reset.yaml => nuvoton,npcm-reset.yaml} | 21 +-
.../devicetree/bindings/serial/8250.yaml | 1 +
.../bindings/watchdog/nuvoton,npcm-wdt.txt | 3 +-
MAINTAINERS | 3 +
arch/arm/boot/dts/nuvoton-common-npcm7xx.dtsi | 1 +
arch/arm64/Kconfig.platforms | 11 +
arch/arm64/boot/dts/Makefile | 1 +
arch/arm64/boot/dts/nuvoton/Makefile | 2 +
.../dts/nuvoton/nuvoton-common-npcm8xx.dtsi | 197 +++++
.../boot/dts/nuvoton/nuvoton-npcm845-evb.dts | 30 +
.../boot/dts/nuvoton/nuvoton-npcm845.dtsi | 76 ++
arch/arm64/configs/defconfig | 3 +
drivers/clk/Kconfig | 6 +
drivers/clk/Makefile | 1 +
drivers/clk/clk-npcm8xx.c | 756 ++++++++++++++++++
drivers/clocksource/timer-npcm7xx.c | 1 +
drivers/reset/reset-npcm.c | 202 ++++-
drivers/tty/serial/8250/8250_of.c | 1 +
drivers/watchdog/npcm_wdt.c | 1 +
.../dt-bindings/clock/nuvoton,npcm8xx-clock.h | 50 ++
.../dt-bindings/reset/nuvoton,npcm8xx-reset.h | 128 +++
24 files changed, 1530 insertions(+), 37 deletions(-)
create mode 100644 Documentation/devicetree/bindings/clock/nuvoton,npcm845-clk.yaml
rename Documentation/devicetree/bindings/reset/{nuvoton,npcm750-reset.yaml => nuvoton,npcm-reset.yaml} (58%)
create mode 100644 arch/arm64/boot/dts/nuvoton/Makefile
create mode 100644 arch/arm64/boot/dts/nuvoton/nuvoton-common-npcm8xx.dtsi
create mode 100644 arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts
create mode 100644 arch/arm64/boot/dts/nuvoton/nuvoton-npcm845.dtsi
create mode 100644 drivers/clk/clk-npcm8xx.c
create mode 100644 include/dt-bindings/clock/nuvoton,npcm8xx-clock.h
create mode 100644 include/dt-bindings/reset/nuvoton,npcm8xx-reset.h

--
2.33.0