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:
@@ -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
|
description: Shenzhen Sunchip Technology Co., Ltd
|
||||||
"^SUNW,.*":
|
"^SUNW,.*":
|
||||||
description: Sun Microsystems, Inc
|
description: Sun Microsystems, Inc
|
||||||
|
"^supermicro,.*":
|
||||||
|
description: Super Micro Computer, Inc.
|
||||||
"^silvaco,.*":
|
"^silvaco,.*":
|
||||||
description: Silvaco, Inc.
|
description: Silvaco, Inc.
|
||||||
"^swir,.*":
|
"^swir,.*":
|
||||||
|
|||||||
@@ -5,7 +5,8 @@ The watchdog supports a pre-timeout interrupt that fires 10ms before the
|
|||||||
expiry.
|
expiry.
|
||||||
|
|
||||||
Required properties:
|
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.
|
- reg : Offset and length of the register set for the device.
|
||||||
- interrupts : Contain the timer interrupt with flags for
|
- interrupts : Contain the timer interrupt with flags for
|
||||||
falling edge.
|
falling edge.
|
||||||
|
|||||||
@@ -2214,6 +2214,15 @@ F: drivers/*/*npcm*
|
|||||||
F: drivers/*/*/*npcm*
|
F: drivers/*/*/*npcm*
|
||||||
F: include/dt-bindings/clock/nuvoton,npcm7xx-clock.h
|
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
|
ARM/OPENMOKO NEO FREERUNNER (GTA02) MACHINE SUPPORT
|
||||||
L: openmoko-kernel@lists.openmoko.org (subscribers-only)
|
L: openmoko-kernel@lists.openmoko.org (subscribers-only)
|
||||||
S: Orphan
|
S: Orphan
|
||||||
|
|||||||
@@ -333,6 +333,8 @@ dtb-$(CONFIG_ARCH_LPC18XX) += \
|
|||||||
dtb-$(CONFIG_ARCH_LPC32XX) += \
|
dtb-$(CONFIG_ARCH_LPC32XX) += \
|
||||||
lpc3250-ea3250.dtb \
|
lpc3250-ea3250.dtb \
|
||||||
lpc3250-phy3250.dtb
|
lpc3250-phy3250.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_WPCM450) += \
|
||||||
|
nuvoton-wpcm450-supermicro-x9sci-ln4f.dtb
|
||||||
dtb-$(CONFIG_ARCH_NPCM7XX) += \
|
dtb-$(CONFIG_ARCH_NPCM7XX) += \
|
||||||
nuvoton-npcm730-gsj.dtb \
|
nuvoton-npcm730-gsj.dtb \
|
||||||
nuvoton-npcm730-gbs.dtb \
|
nuvoton-npcm730-gbs.dtb \
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "Nuvoton npcm750 Development Board (Device Tree)";
|
model = "Nuvoton npcm750 Development Board (Device Tree)";
|
||||||
compatible = "nuvoton,npcm750";
|
compatible = "nuvoton,npcm750-evb", "nuvoton,npcm750";
|
||||||
|
|
||||||
aliases {
|
aliases {
|
||||||
ethernet2 = &gmac0;
|
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_SOC_IMX27=y
|
||||||
CONFIG_ARCH_MVEBU=y
|
CONFIG_ARCH_MVEBU=y
|
||||||
CONFIG_MACH_KIRKWOOD=y
|
CONFIG_MACH_KIRKWOOD=y
|
||||||
|
CONFIG_ARCH_NPCM=y
|
||||||
|
CONFIG_ARCH_WPCM450=y
|
||||||
CONFIG_ARCH_ORION5X=y
|
CONFIG_ARCH_ORION5X=y
|
||||||
CONFIG_MACH_DB88F5281=y
|
CONFIG_MACH_DB88F5281=y
|
||||||
CONFIG_MACH_RD88F5182=y
|
CONFIG_MACH_RD88F5182=y
|
||||||
@@ -178,6 +180,7 @@ CONFIG_THERMAL=y
|
|||||||
CONFIG_KIRKWOOD_THERMAL=y
|
CONFIG_KIRKWOOD_THERMAL=y
|
||||||
CONFIG_AT91SAM9X_WATCHDOG=y
|
CONFIG_AT91SAM9X_WATCHDOG=y
|
||||||
CONFIG_ORION_WATCHDOG=y
|
CONFIG_ORION_WATCHDOG=y
|
||||||
|
CONFIG_NPCM7XX_WATCHDOG=y
|
||||||
CONFIG_IMX2_WDT=y
|
CONFIG_IMX2_WDT=y
|
||||||
CONFIG_MFD_ATMEL_HLCDC=y
|
CONFIG_MFD_ATMEL_HLCDC=y
|
||||||
# CONFIG_ABX500_CORE is not set
|
# CONFIG_ABX500_CORE is not set
|
||||||
|
|||||||
@@ -1,11 +1,21 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
menuconfig ARCH_NPCM
|
menuconfig ARCH_NPCM
|
||||||
bool "Nuvoton NPCM Architecture"
|
bool "Nuvoton NPCM Architecture"
|
||||||
depends on ARCH_MULTI_V7
|
depends on ARCH_MULTI_V5 || ARCH_MULTI_V7
|
||||||
select PINCTRL
|
select PINCTRL
|
||||||
|
|
||||||
if ARCH_NPCM
|
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
|
config ARCH_NPCM7XX
|
||||||
bool "Support for NPCM7xx BMC (Poleg)"
|
bool "Support for NPCM7xx BMC (Poleg)"
|
||||||
depends on ARCH_MULTI_V7
|
depends on ARCH_MULTI_V7
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
AFLAGS_headsmp.o += -march=armv7-a
|
AFLAGS_headsmp.o += -march=armv7-a
|
||||||
|
|
||||||
|
obj-$(CONFIG_ARCH_WPCM450) += wpcm450.o
|
||||||
obj-$(CONFIG_ARCH_NPCM7XX) += npcm7xx.o
|
obj-$(CONFIG_ARCH_NPCM7XX) += npcm7xx.o
|
||||||
obj-$(CONFIG_SMP) += platsmp.o headsmp.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
|
#ifdef CONFIG_OF
|
||||||
static const struct of_device_id npcm_wdt_match[] = {
|
static const struct of_device_id npcm_wdt_match[] = {
|
||||||
|
{.compatible = "nuvoton,wpcm450-wdt"},
|
||||||
{.compatible = "nuvoton,npcm750-wdt"},
|
{.compatible = "nuvoton,npcm750-wdt"},
|
||||||
{},
|
{},
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user