Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'arm-newsoc-5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull ARM Nuvoton WPCM450 platform support from Arnd Bergmann:
"The Nuvoton WPCM450 BMC is an older chip based on the ARM926 CPU core
that remains in use on Supermicro X9 server boards among others.

Support gets added for a particular server board using this SoC along
with the basic platform bringup.

As the platform is a predecessor to the npcm7xx platform we already
support, it is added to the same directory, despite using a different
name. It also seems to be related to the older w90x900/nuc9xx platform
that was removed last year"

* tag 'arm-newsoc-5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
ARM: config: Add WPCM to multi v5
MAINTAINERS: Add entry for Nuvoton WPCM450
ARM: dts: Add devicetree for Supermicro X9SCi-LN4F based on WPCM450
ARM: dts: Add devicetree for Nuvoton WPCM450 BMC chip
watchdog: npcm: Add support for WPCM450
ARM: npcm: Introduce Nuvoton WPCM450 SoC
dt-bindings: watchdog: npcm: Add nuvoton,wpcm450-wdt
dt-bindings: arm: npcm: Add nuvoton,wpcm450 compatible string
dt-bindings: vendor-prefixes: Add Supermicro
ARM: dts: Add board-specific compatible string to npcm750-evb devicetree
dt-bindings: arm: Convert nuvoton,npcm750 binding to YAML

+190 -9
-6
Documentation/devicetree/bindings/arm/npcm/npcm.txt
··· 1 - NPCM Platforms Device Tree Bindings 2 - ----------------------------------- 3 - NPCM750 SoC 4 - Required root node properties: 5 - - compatible = "nuvoton,npcm750"; 6 -
+29
Documentation/devicetree/bindings/arm/npcm/npcm.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/arm/npcm/npcm.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: NPCM Platforms Device Tree Bindings 8 + 9 + maintainers: 10 + - Jonathan Neuschäfer <j.neuschaefer@gmx.net> 11 + 12 + properties: 13 + $nodename: 14 + const: '/' 15 + compatible: 16 + oneOf: 17 + - description: WPCM450 based boards 18 + items: 19 + - enum: 20 + - supermicro,x9sci-ln4f-bmc # Supermicro X9SCI-LN4F server's BMC 21 + - const: nuvoton,wpcm450 22 + 23 + - description: NPCM750 based boards 24 + items: 25 + - enum: 26 + - nuvoton,npcm750-evb # NPCM750 evaluation board 27 + - const: nuvoton,npcm750 28 + 29 + additionalProperties: true
+2
Documentation/devicetree/bindings/vendor-prefixes.yaml
··· 1091 1091 description: Shenzhen Sunchip Technology Co., Ltd 1092 1092 "^SUNW,.*": 1093 1093 description: Sun Microsystems, Inc 1094 + "^supermicro,.*": 1095 + description: Super Micro Computer, Inc. 1094 1096 "^silvaco,.*": 1095 1097 description: Silvaco, Inc. 1096 1098 "^swir,.*":
+2 -1
Documentation/devicetree/bindings/watchdog/nuvoton,npcm-wdt.txt
··· 5 5 expiry. 6 6 7 7 Required properties: 8 - - compatible : "nuvoton,npcm750-wdt" for NPCM750 (Poleg). 8 + - compatible : "nuvoton,npcm750-wdt" for NPCM750 (Poleg), or 9 + "nuvoton,wpcm450-wdt" for WPCM450 (Hermon). 9 10 - reg : Offset and length of the register set for the device. 10 11 - interrupts : Contain the timer interrupt with flags for 11 12 falling edge.
+9
MAINTAINERS
··· 2214 2214 F: drivers/*/*/*npcm* 2215 2215 F: include/dt-bindings/clock/nuvoton,npcm7xx-clock.h 2216 2216 2217 + ARM/NUVOTON WPCM450 ARCHITECTURE 2218 + M: Jonathan Neuschäfer <j.neuschaefer@gmx.net> 2219 + L: openbmc@lists.ozlabs.org (moderated for non-subscribers) 2220 + S: Maintained 2221 + F: Documentation/devicetree/bindings/*/*wpcm* 2222 + F: arch/arm/boot/dts/nuvoton-wpcm450* 2223 + F: arch/arm/mach-npcm/wpcm450.c 2224 + F: drivers/*/*wpcm* 2225 + 2217 2226 ARM/OPENMOKO NEO FREERUNNER (GTA02) MACHINE SUPPORT 2218 2227 L: openmoko-kernel@lists.openmoko.org (subscribers-only) 2219 2228 S: Orphan
+2
arch/arm/boot/dts/Makefile
··· 333 333 dtb-$(CONFIG_ARCH_LPC32XX) += \ 334 334 lpc3250-ea3250.dtb \ 335 335 lpc3250-phy3250.dtb 336 + dtb-$(CONFIG_ARCH_WPCM450) += \ 337 + nuvoton-wpcm450-supermicro-x9sci-ln4f.dtb 336 338 dtb-$(CONFIG_ARCH_NPCM7XX) += \ 337 339 nuvoton-npcm730-gsj.dtb \ 338 340 nuvoton-npcm730-gbs.dtb \
+1 -1
arch/arm/boot/dts/nuvoton-npcm750-evb.dts
··· 9 9 10 10 / { 11 11 model = "Nuvoton npcm750 Development Board (Device Tree)"; 12 - compatible = "nuvoton,npcm750"; 12 + compatible = "nuvoton,npcm750-evb", "nuvoton,npcm750"; 13 13 14 14 aliases { 15 15 ethernet2 = &gmac0;
+40
arch/arm/boot/dts/nuvoton-wpcm450-supermicro-x9sci-ln4f.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + // Copyright 2021 Jonathan Neuschäfer 3 + 4 + /dts-v1/; 5 + 6 + /* The last 16 MiB are dedicated to the GPU */ 7 + /memreserve/ 0x07000000 0x01000000; 8 + 9 + #include "nuvoton-wpcm450.dtsi" 10 + 11 + / { 12 + model = "Supermicro X9SCi-LN4F BMC"; 13 + compatible = "supermicro,x9sci-ln4f-bmc", "nuvoton,wpcm450"; 14 + 15 + chosen { 16 + stdout-path = "serial0:115200n8"; 17 + }; 18 + 19 + memory@0 { 20 + device_type = "memory"; 21 + reg = <0 0x08000000>; /* 128 MiB */ 22 + }; 23 + }; 24 + 25 + &serial0 { 26 + /* 27 + * Debug serial port. TX is exposed on the right pad of unpopulated 28 + * resistor R1247, RX on the right pad of R1162. 29 + */ 30 + status = "okay"; 31 + }; 32 + 33 + &serial1 { 34 + /* "Serial over LAN" port. Connected to ttyS2 of the host system. */ 35 + status = "okay"; 36 + }; 37 + 38 + &watchdog0 { 39 + status = "okay"; 40 + };
+76
arch/arm/boot/dts/nuvoton-wpcm450.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + // Copyright 2021 Jonathan Neuschäfer 3 + 4 + #include <dt-bindings/interrupt-controller/irq.h> 5 + 6 + / { 7 + compatible = "nuvoton,wpcm450"; 8 + #address-cells = <1>; 9 + #size-cells = <1>; 10 + 11 + cpus { 12 + #address-cells = <1>; 13 + #size-cells = <0>; 14 + 15 + cpu@0 { 16 + compatible = "arm,arm926ej-s"; 17 + device_type = "cpu"; 18 + reg = <0>; 19 + }; 20 + }; 21 + 22 + clk24m: clock-24mhz { 23 + /* 24 MHz dummy clock */ 24 + compatible = "fixed-clock"; 25 + clock-frequency = <24000000>; 26 + #clock-cells = <0>; 27 + }; 28 + 29 + soc { 30 + compatible = "simple-bus"; 31 + #address-cells = <1>; 32 + #size-cells = <1>; 33 + interrupt-parent = <&aic>; 34 + ranges; 35 + 36 + serial0: serial@b8000000 { 37 + compatible = "nuvoton,wpcm450-uart"; 38 + reg = <0xb8000000 0x20>; 39 + reg-shift = <2>; 40 + interrupts = <7 IRQ_TYPE_LEVEL_HIGH>; 41 + clocks = <&clk24m>; 42 + status = "disabled"; 43 + }; 44 + 45 + serial1: serial@b8000100 { 46 + compatible = "nuvoton,wpcm450-uart"; 47 + reg = <0xb8000100 0x20>; 48 + reg-shift = <2>; 49 + interrupts = <8 IRQ_TYPE_LEVEL_HIGH>; 50 + clocks = <&clk24m>; 51 + status = "disabled"; 52 + }; 53 + 54 + timer0: timer@b8001000 { 55 + compatible = "nuvoton,wpcm450-timer"; 56 + interrupts = <12 IRQ_TYPE_LEVEL_HIGH>; 57 + reg = <0xb8001000 0x1c>; 58 + clocks = <&clk24m>; 59 + }; 60 + 61 + watchdog0: watchdog@b800101c { 62 + compatible = "nuvoton,wpcm450-wdt"; 63 + interrupts = <1 IRQ_TYPE_LEVEL_HIGH>; 64 + reg = <0xb800101c 0x4>; 65 + clocks = <&clk24m>; 66 + status = "disabled"; 67 + }; 68 + 69 + aic: interrupt-controller@b8002000 { 70 + compatible = "nuvoton,wpcm450-aic"; 71 + reg = <0xb8002000 0x1000>; 72 + interrupt-controller; 73 + #interrupt-cells = <2>; 74 + }; 75 + }; 76 + };
+3
arch/arm/configs/multi_v5_defconfig
··· 33 33 CONFIG_SOC_IMX27=y 34 34 CONFIG_ARCH_MVEBU=y 35 35 CONFIG_MACH_KIRKWOOD=y 36 + CONFIG_ARCH_NPCM=y 37 + CONFIG_ARCH_WPCM450=y 36 38 CONFIG_ARCH_ORION5X=y 37 39 CONFIG_MACH_DB88F5281=y 38 40 CONFIG_MACH_RD88F5182=y ··· 180 178 CONFIG_KIRKWOOD_THERMAL=y 181 179 CONFIG_AT91SAM9X_WATCHDOG=y 182 180 CONFIG_ORION_WATCHDOG=y 181 + CONFIG_NPCM7XX_WATCHDOG=y 183 182 CONFIG_IMX2_WDT=y 184 183 CONFIG_MFD_ATMEL_HLCDC=y 185 184 # CONFIG_ABX500_CORE is not set
+11 -1
arch/arm/mach-npcm/Kconfig
··· 1 1 # SPDX-License-Identifier: GPL-2.0-only 2 2 menuconfig ARCH_NPCM 3 3 bool "Nuvoton NPCM Architecture" 4 - depends on ARCH_MULTI_V7 4 + depends on ARCH_MULTI_V5 || ARCH_MULTI_V7 5 5 select PINCTRL 6 6 7 7 if ARCH_NPCM 8 + 9 + config ARCH_WPCM450 10 + bool "Support for WPCM450 BMC (Hermon)" 11 + depends on ARCH_MULTI_V5 12 + select CPU_ARM926T 13 + select NPCM7XX_TIMER 14 + help 15 + General support for WPCM450 BMC (Hermon). 16 + 17 + Winbond/Nuvoton WPCM450 BMC based on the ARM926EJ-S. 8 18 9 19 config ARCH_NPCM7XX 10 20 bool "Support for NPCM7xx BMC (Poleg)"
+1
arch/arm/mach-npcm/Makefile
··· 1 1 # SPDX-License-Identifier: GPL-2.0-only 2 2 AFLAGS_headsmp.o += -march=armv7-a 3 3 4 + obj-$(CONFIG_ARCH_WPCM450) += wpcm450.o 4 5 obj-$(CONFIG_ARCH_NPCM7XX) += npcm7xx.o 5 6 obj-$(CONFIG_SMP) += platsmp.o headsmp.o
+13
arch/arm/mach-npcm/wpcm450.c
··· 1 + // SPDX-License-Identifier: GPL-2.0 2 + // Copyright 2021 Jonathan Neuschäfer 3 + 4 + #include <asm/mach/arch.h> 5 + 6 + static const char *const wpcm450_dt_match[] = { 7 + "nuvoton,wpcm450", 8 + NULL 9 + }; 10 + 11 + DT_MACHINE_START(WPCM450_DT, "WPCM450 chip") 12 + .dt_compat = wpcm450_dt_match, 13 + MACHINE_END
+1
drivers/watchdog/npcm_wdt.c
··· 229 229 230 230 #ifdef CONFIG_OF 231 231 static const struct of_device_id npcm_wdt_match[] = { 232 + {.compatible = "nuvoton,wpcm450-wdt"}, 232 233 {.compatible = "nuvoton,npcm750-wdt"}, 233 234 {}, 234 235 };