mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
ARM: platform support for Nuvoton WPCM450
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. Signed-off-by: Arnd Bergmann <arnd@arndb.de> -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmCC25sACgkQmmx57+YA GNmh4g//RINYuo+dZBcxezeS0TO7Y4NRzOiLRO/8DflT6Ytqqq3Q01zpaIzIylII PX8H5XPZLfeD3EAOtqKK+Honv9h0Z/nylgjfEHlwJFuokAK97hGQNPDwV91FSyS4 dAMruWR1+cuW5tAga8hqhTevd2FVghJ66kleFH4ptR9kArk1wzvlHdx4TszzGI8G OsYesRJoM0nhcM20EnPKRYmxDIT9QyBAY8J0Dh6PlLTVy49MW3rPHULAZpJV5ZzZ aagAVGiBdWR4qgEk7z13x6TLG8p3H1JYHiX8yznhyDxJowKEPbnh4l7EjCeXd8c/ RJMjcg7xQYBc8h5MOeaZTexxge58CSXShLyiDMeDUNA+Sz0LQ6SMqaUN30BlZetr ncrks2xm/0MVoe4gDPi/ILYu85iKX208u26UuuXTjVsl8XYyg0zOI0G+eduBfOAz n61F+pBLvwcLOd+ZkCMKBwOSkZN7uz7XYoLy45ZPPGX6Bc0kKIudK9Lkv8QMMfBl XciSt2DtpYrYN4ll0pATxg8Lw6CTotmvhI++uiBvdb8XCLx/2VkzsclyhBSfk7+D XBBlJKCHkJWxFZBlvie7IYmmUM82YOz7dv4H8fz6xTs3sA/Fk8uDb0ip7f1PijYD sUz6dlOy8TDjNdKDI62vjKj2OeDAC7P0mgbcp6W7Lgh0PlzdvAc= =8lh7 -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
6b0fbc540c
@ -1,6 +0,0 @@
|
||||
NPCM Platforms Device Tree Bindings
|
||||
-----------------------------------
|
||||
NPCM750 SoC
|
||||
Required root node properties:
|
||||
- compatible = "nuvoton,npcm750";
|
||||
|
29
Documentation/devicetree/bindings/arm/npcm/npcm.yaml
Normal file
29
Documentation/devicetree/bindings/arm/npcm/npcm.yaml
Normal file
@ -0,0 +1,29 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/arm/npcm/npcm.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: NPCM Platforms Device Tree Bindings
|
||||
|
||||
maintainers:
|
||||
- Jonathan Neuschäfer <j.neuschaefer@gmx.net>
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
const: '/'
|
||||
compatible:
|
||||
oneOf:
|
||||
- description: WPCM450 based boards
|
||||
items:
|
||||
- enum:
|
||||
- supermicro,x9sci-ln4f-bmc # Supermicro X9SCI-LN4F server's BMC
|
||||
- const: nuvoton,wpcm450
|
||||
|
||||
- description: NPCM750 based boards
|
||||
items:
|
||||
- enum:
|
||||
- nuvoton,npcm750-evb # NPCM750 evaluation board
|
||||
- const: nuvoton,npcm750
|
||||
|
||||
additionalProperties: true
|
@ -1091,6 +1091,8 @@ patternProperties:
|
||||
description: Shenzhen Sunchip Technology Co., Ltd
|
||||
"^SUNW,.*":
|
||||
description: Sun Microsystems, Inc
|
||||
"^supermicro,.*":
|
||||
description: Super Micro Computer, Inc.
|
||||
"^silvaco,.*":
|
||||
description: Silvaco, Inc.
|
||||
"^swir,.*":
|
||||
|
@ -5,7 +5,8 @@ The watchdog supports a pre-timeout interrupt that fires 10ms before the
|
||||
expiry.
|
||||
|
||||
Required properties:
|
||||
- compatible : "nuvoton,npcm750-wdt" for NPCM750 (Poleg).
|
||||
- compatible : "nuvoton,npcm750-wdt" for NPCM750 (Poleg), or
|
||||
"nuvoton,wpcm450-wdt" for WPCM450 (Hermon).
|
||||
- reg : Offset and length of the register set for the device.
|
||||
- interrupts : Contain the timer interrupt with flags for
|
||||
falling edge.
|
||||
|
@ -2214,6 +2214,15 @@ F: drivers/*/*npcm*
|
||||
F: drivers/*/*/*npcm*
|
||||
F: include/dt-bindings/clock/nuvoton,npcm7xx-clock.h
|
||||
|
||||
ARM/NUVOTON WPCM450 ARCHITECTURE
|
||||
M: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
|
||||
L: openbmc@lists.ozlabs.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/*/*wpcm*
|
||||
F: arch/arm/boot/dts/nuvoton-wpcm450*
|
||||
F: arch/arm/mach-npcm/wpcm450.c
|
||||
F: drivers/*/*wpcm*
|
||||
|
||||
ARM/OPENMOKO NEO FREERUNNER (GTA02) MACHINE SUPPORT
|
||||
L: openmoko-kernel@lists.openmoko.org (subscribers-only)
|
||||
S: Orphan
|
||||
|
@ -333,6 +333,8 @@ dtb-$(CONFIG_ARCH_LPC18XX) += \
|
||||
dtb-$(CONFIG_ARCH_LPC32XX) += \
|
||||
lpc3250-ea3250.dtb \
|
||||
lpc3250-phy3250.dtb
|
||||
dtb-$(CONFIG_ARCH_WPCM450) += \
|
||||
nuvoton-wpcm450-supermicro-x9sci-ln4f.dtb
|
||||
dtb-$(CONFIG_ARCH_NPCM7XX) += \
|
||||
nuvoton-npcm730-gsj.dtb \
|
||||
nuvoton-npcm730-gbs.dtb \
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
/ {
|
||||
model = "Nuvoton npcm750 Development Board (Device Tree)";
|
||||
compatible = "nuvoton,npcm750";
|
||||
compatible = "nuvoton,npcm750-evb", "nuvoton,npcm750";
|
||||
|
||||
aliases {
|
||||
ethernet2 = &gmac0;
|
||||
|
40
arch/arm/boot/dts/nuvoton-wpcm450-supermicro-x9sci-ln4f.dts
Normal file
40
arch/arm/boot/dts/nuvoton-wpcm450-supermicro-x9sci-ln4f.dts
Normal file
@ -0,0 +1,40 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
// Copyright 2021 Jonathan Neuschäfer
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
/* The last 16 MiB are dedicated to the GPU */
|
||||
/memreserve/ 0x07000000 0x01000000;
|
||||
|
||||
#include "nuvoton-wpcm450.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Supermicro X9SCi-LN4F BMC";
|
||||
compatible = "supermicro,x9sci-ln4f-bmc", "nuvoton,wpcm450";
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0 0x08000000>; /* 128 MiB */
|
||||
};
|
||||
};
|
||||
|
||||
&serial0 {
|
||||
/*
|
||||
* Debug serial port. TX is exposed on the right pad of unpopulated
|
||||
* resistor R1247, RX on the right pad of R1162.
|
||||
*/
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&serial1 {
|
||||
/* "Serial over LAN" port. Connected to ttyS2 of the host system. */
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&watchdog0 {
|
||||
status = "okay";
|
||||
};
|
76
arch/arm/boot/dts/nuvoton-wpcm450.dtsi
Normal file
76
arch/arm/boot/dts/nuvoton-wpcm450.dtsi
Normal file
@ -0,0 +1,76 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
// Copyright 2021 Jonathan Neuschäfer
|
||||
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
/ {
|
||||
compatible = "nuvoton,wpcm450";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cpu@0 {
|
||||
compatible = "arm,arm926ej-s";
|
||||
device_type = "cpu";
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
clk24m: clock-24mhz {
|
||||
/* 24 MHz dummy clock */
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <24000000>;
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
|
||||
soc {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
interrupt-parent = <&aic>;
|
||||
ranges;
|
||||
|
||||
serial0: serial@b8000000 {
|
||||
compatible = "nuvoton,wpcm450-uart";
|
||||
reg = <0xb8000000 0x20>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk24m>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
serial1: serial@b8000100 {
|
||||
compatible = "nuvoton,wpcm450-uart";
|
||||
reg = <0xb8000100 0x20>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clk24m>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
timer0: timer@b8001000 {
|
||||
compatible = "nuvoton,wpcm450-timer";
|
||||
interrupts = <12 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg = <0xb8001000 0x1c>;
|
||||
clocks = <&clk24m>;
|
||||
};
|
||||
|
||||
watchdog0: watchdog@b800101c {
|
||||
compatible = "nuvoton,wpcm450-wdt";
|
||||
interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg = <0xb800101c 0x4>;
|
||||
clocks = <&clk24m>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
aic: interrupt-controller@b8002000 {
|
||||
compatible = "nuvoton,wpcm450-aic";
|
||||
reg = <0xb8002000 0x1000>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
};
|
||||
};
|
||||
};
|
@ -33,6 +33,8 @@ CONFIG_SOC_IMX25=y
|
||||
CONFIG_SOC_IMX27=y
|
||||
CONFIG_ARCH_MVEBU=y
|
||||
CONFIG_MACH_KIRKWOOD=y
|
||||
CONFIG_ARCH_NPCM=y
|
||||
CONFIG_ARCH_WPCM450=y
|
||||
CONFIG_ARCH_ORION5X=y
|
||||
CONFIG_MACH_DB88F5281=y
|
||||
CONFIG_MACH_RD88F5182=y
|
||||
@ -178,6 +180,7 @@ CONFIG_THERMAL=y
|
||||
CONFIG_KIRKWOOD_THERMAL=y
|
||||
CONFIG_AT91SAM9X_WATCHDOG=y
|
||||
CONFIG_ORION_WATCHDOG=y
|
||||
CONFIG_NPCM7XX_WATCHDOG=y
|
||||
CONFIG_IMX2_WDT=y
|
||||
CONFIG_MFD_ATMEL_HLCDC=y
|
||||
# CONFIG_ABX500_CORE is not set
|
||||
|
@ -1,11 +1,21 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
menuconfig ARCH_NPCM
|
||||
bool "Nuvoton NPCM Architecture"
|
||||
depends on ARCH_MULTI_V7
|
||||
depends on ARCH_MULTI_V5 || ARCH_MULTI_V7
|
||||
select PINCTRL
|
||||
|
||||
if ARCH_NPCM
|
||||
|
||||
config ARCH_WPCM450
|
||||
bool "Support for WPCM450 BMC (Hermon)"
|
||||
depends on ARCH_MULTI_V5
|
||||
select CPU_ARM926T
|
||||
select NPCM7XX_TIMER
|
||||
help
|
||||
General support for WPCM450 BMC (Hermon).
|
||||
|
||||
Winbond/Nuvoton WPCM450 BMC based on the ARM926EJ-S.
|
||||
|
||||
config ARCH_NPCM7XX
|
||||
bool "Support for NPCM7xx BMC (Poleg)"
|
||||
depends on ARCH_MULTI_V7
|
||||
|
@ -1,5 +1,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
AFLAGS_headsmp.o += -march=armv7-a
|
||||
|
||||
obj-$(CONFIG_ARCH_WPCM450) += wpcm450.o
|
||||
obj-$(CONFIG_ARCH_NPCM7XX) += npcm7xx.o
|
||||
obj-$(CONFIG_SMP) += platsmp.o headsmp.o
|
||||
|
13
arch/arm/mach-npcm/wpcm450.c
Normal file
13
arch/arm/mach-npcm/wpcm450.c
Normal file
@ -0,0 +1,13 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
// Copyright 2021 Jonathan Neuschäfer
|
||||
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
static const char *const wpcm450_dt_match[] = {
|
||||
"nuvoton,wpcm450",
|
||||
NULL
|
||||
};
|
||||
|
||||
DT_MACHINE_START(WPCM450_DT, "WPCM450 chip")
|
||||
.dt_compat = wpcm450_dt_match,
|
||||
MACHINE_END
|
@ -229,6 +229,7 @@ static int npcm_wdt_probe(struct platform_device *pdev)
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
static const struct of_device_id npcm_wdt_match[] = {
|
||||
{.compatible = "nuvoton,wpcm450-wdt"},
|
||||
{.compatible = "nuvoton,npcm750-wdt"},
|
||||
{},
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user