Commit ef3232e3 authored by Mark Brown's avatar Mark Brown

Nuvoton WPCM450 FIU SPI flash controller

Merge series from Jonathan Neuschäfer <j.neuschaefer@gmx.net>:

This patchset adds DT bindings and a driver for the Flash Interface Unit
(FIU), the SPI flash controller in the Nuvoton WPCM450 BMC SoC. It
supports four chip selects, and direct (memory-mapped) access to 16 MiB
per chip. Larger flash chips can be accessed by software-defined SPI
transfers.

The existing NPCM7xx FIU driver is sufficitently incompatible with the
WPCM450 FIU that I decided to write a new driver.
parents 9c512e47 dd71cd4d
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/spi/nuvoton,wpcm450-fiu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Nuvoton WPCM450 Flash Interface Unit (FIU)
maintainers:
- Jonathan Neuschäfer <j.neuschaefer@gmx.net>
allOf:
- $ref: /schemas/spi/spi-controller.yaml#
properties:
compatible:
const: nuvoton,wpcm450-fiu
reg:
items:
- description: FIU registers
- description: Memory-mapped flash contents
reg-names:
items:
- const: control
- const: memory
interrupts:
maxItems: 1
clocks:
maxItems: 1
nuvoton,shm:
$ref: /schemas/types.yaml#/definitions/phandle
description: a phandle to the SHM block (see ../arm/nuvoton,shm.yaml)
required:
- compatible
- reg
- clocks
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/nuvoton,wpcm450-clk.h>
spi@c8000000 {
compatible = "nuvoton,wpcm450-fiu";
reg = <0xc8000000 0x1000>, <0xc0000000 0x4000000>;
#address-cells = <1>;
#size-cells = <0>;
reg-names = "control", "memory";
clocks = <&clk WPCM450_CLK_FIU>;
nuvoton,shm = <&shm>;
flash@0 {
compatible = "jedec,spi-nor";
};
};
shm: syscon@c8001000 {
compatible = "nuvoton,wpcm450-shm", "syscon";
reg = <0xc8001000 0x1000>;
};
......@@ -635,6 +635,17 @@ config SPI_MTK_SNFI
is implemented as a SPI-MEM controller with pipelined ECC
capcability.
config SPI_WPCM_FIU
tristate "Nuvoton WPCM450 Flash Interface Unit"
depends on ARCH_NPCM || COMPILE_TEST
select REGMAP
help
This enables support got the Flash Interface Unit SPI controller
present in the Nuvoton WPCM450 SoC.
This driver does not support generic SPI. The implementation only
supports the spi-mem interface.
config SPI_NPCM_FIU
tristate "Nuvoton NPCM FLASH Interface Unit"
depends on ARCH_NPCM || COMPILE_TEST
......
......@@ -83,6 +83,7 @@ obj-$(CONFIG_SPI_MTK_NOR) += spi-mtk-nor.o
obj-$(CONFIG_SPI_MTK_SNFI) += spi-mtk-snfi.o
obj-$(CONFIG_SPI_MXIC) += spi-mxic.o
obj-$(CONFIG_SPI_MXS) += spi-mxs.o
obj-$(CONFIG_SPI_WPCM_FIU) += spi-wpcm-fiu.o
obj-$(CONFIG_SPI_NPCM_FIU) += spi-npcm-fiu.o
obj-$(CONFIG_SPI_NPCM_PSPI) += spi-npcm-pspi.o
obj-$(CONFIG_SPI_NXP_FLEXSPI) += spi-nxp-fspi.o
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment