[PATCH v2 00/12] add STM32 FMC2 controller drivers
From: Christophe Kerello
Date: Wed Apr 15 2020 - 11:58:58 EST
The FMC2 functional block makes the interface with: synchronous and
asynchronous static devices (such as PSNOR, PSRAM or other memory-mapped
peripherals) and NAND flash memories.
Its main purposes are:
- to translate AXI transactions into the appropriate external device
protocol
- to meet the access time requirements of the external devices
All external devices share the addresses, data and control signals with the
controller. Each external device is accessed by means of a unique Chip
Select. The FMC2 performs only one access at a time to an external device.
Changes in v2:
- use of regmap_bulk_write/regmap_bulk_read APIs
- remove ops from stm32_fmc2 structure
- add 2 APIs to manage FMC2 enable/disable
- add 2 APIs to manage FMC2 NWAIT shared signal
Christophe Kerello (12):
dt-bindings: mfd: stm32-fmc2: add STM32 FMC2 controller documentation
mfd: stm32-fmc2: add STM32 FMC2 controller driver
bus: stm32-fmc2-ebi: add STM32 FMC2 EBI controller driver
mtd: rawnand: stm32_fmc2: manage all errors cases at probe time
mtd: rawnand: stm32_fmc2: remove useless inline comments
mtd: rawnand: stm32_fmc2: use FMC2_TIMEOUT_MS for timeouts
mtd: rawnand: stm32_fmc2: cleanup
mtd: rawnand: stm32_fmc2: use FIELD_PREP/FIELD_GET macros
mtd: rawnand: stm32_fmc2: move all registers
mtd: rawnand: stm32_fmc2: use regmap APIs
mtd: rawnand: stm32_fmc2: use stm32_fmc2 structure in nfc controller
mtd: rawnand: stm32_fmc2: add new MP1 compatible string
.../devicetree/bindings/mfd/st,stm32-fmc2.yaml | 370 ++++++
drivers/bus/Kconfig | 11 +
drivers/bus/Makefile | 1 +
drivers/bus/stm32-fmc2-ebi.c | 1091 +++++++++++++++++
drivers/mfd/Kconfig | 12 +
drivers/mfd/Makefile | 1 +
drivers/mfd/stm32-fmc2.c | 136 +++
drivers/mtd/nand/raw/Kconfig | 3 +
drivers/mtd/nand/raw/stm32_fmc2_nand.c | 1277 +++++++++-----------
include/linux/mfd/stm32-fmc2.h | 225 ++++
10 files changed, 2413 insertions(+), 714 deletions(-)
create mode 100644 Documentation/devicetree/bindings/mfd/st,stm32-fmc2.yaml
create mode 100644 drivers/bus/stm32-fmc2-ebi.c
create mode 100644 drivers/mfd/stm32-fmc2.c
create mode 100644 include/linux/mfd/stm32-fmc2.h
--
1.9.1