[PATCH v3 0/7] Add support for the iEi Puzzle-M801 board

From: Luka Kovacic
Date: Tue Sep 29 2020 - 21:41:18 EST


This patchset adds support for the iEi Puzzle-M801 1U Rackmount Network
Appliance and for the iEi WT61P803 PUZZLE microcontroller, which enables
some board specific features like fan and LED control, system power
management and temperature sensor reading.

The platform is based on the popular Marvell Armada 8040 SoC and supports
up to 16 GB of DDR4 2400 MHz ECC RAM.
It has a PCIe x16 slot (x2 lanes only) and an M.2 type B slot.

External chassis ports:
2x 10 GbE SFP+
4x 1 GbE (Marvell 88E1512P)
2x USB 3.0
1x RJ45 serial port

All notable board components are supported in this patchset.

Changes for v2:
- Use LAAs for local-mac-address and match reg values
- Code styling changes
- Error handling moved to the end of the function
- Define all magic numbers in the main header file
- Convert the driver to make it OF independent
- Refactor hwmon to use devm_hwmon_device_register_with_info()
- Reduce the number of mutex locks
- Allocate memory once for the response buffer
- Reduce managed memory allocations
Changes for v3:
- Move iei-wt61p803-puzzle driver sysfs interface documentation to testing
- Change some internal functions to static
- Sync dt-bindings examples with the iEi Puzzle-M801 board dts
- Remove obsolete device tree properties and correct LED functions
- Reverse christmas tree variable declaration order, where possible
- MAC address sysfs function rewrite
- Fixed struct members size, where reasonable (MFD driver)
- Add an error check for hwmon_dev
- Use devm_led_classdev_register_ext() in the LED driver

Luka Kovacic (7):
dt-bindings: Add iEi vendor prefix and iEi WT61P803 PUZZLE driver
bindings
drivers: mfd: Add a driver for iEi WT61P803 PUZZLE MCU
drivers: hwmon: Add the iEi WT61P803 PUZZLE HWMON driver
drivers: leds: Add the iEi WT61P803 PUZZLE LED driver
Documentation/ABI: Add iei-wt61p803-puzzle driver sysfs interface
documentation
MAINTAINERS: Add an entry for the iEi WT61P803 PUZZLE driver
arm64: dts: marvell: Add a device tree for the iEi Puzzle-M801 board

.../testing/sysfs-driver-iei-wt61p803-puzzle | 55 +
.../hwmon/iei,wt61p803-puzzle-hwmon.yaml | 41 +
.../leds/iei,wt61p803-puzzle-leds.yaml | 45 +
.../bindings/mfd/iei,wt61p803-puzzle.yaml | 82 ++
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
MAINTAINERS | 13 +
arch/arm64/boot/dts/marvell/Makefile | 1 +
.../dts/marvell/armada-8040-puzzle-m801.dts | 524 +++++++++
drivers/hwmon/Kconfig | 8 +
drivers/hwmon/Makefile | 1 +
drivers/hwmon/iei-wt61p803-puzzle-hwmon.c | 513 ++++++++
drivers/leds/Kconfig | 8 +
drivers/leds/Makefile | 1 +
drivers/leds/leds-iei-wt61p803-puzzle.c | 157 +++
drivers/mfd/Kconfig | 8 +
drivers/mfd/Makefile | 1 +
drivers/mfd/iei-wt61p803-puzzle.c | 1045 +++++++++++++++++
include/linux/mfd/iei-wt61p803-puzzle.h | 69 ++
18 files changed, 2574 insertions(+)
create mode 100644 Documentation/ABI/testing/sysfs-driver-iei-wt61p803-puzzle
create mode 100644 Documentation/devicetree/bindings/hwmon/iei,wt61p803-puzzle-hwmon.yaml
create mode 100644 Documentation/devicetree/bindings/leds/iei,wt61p803-puzzle-leds.yaml
create mode 100644 Documentation/devicetree/bindings/mfd/iei,wt61p803-puzzle.yaml
create mode 100644 arch/arm64/boot/dts/marvell/armada-8040-puzzle-m801.dts
create mode 100644 drivers/hwmon/iei-wt61p803-puzzle-hwmon.c
create mode 100644 drivers/leds/leds-iei-wt61p803-puzzle.c
create mode 100644 drivers/mfd/iei-wt61p803-puzzle.c
create mode 100644 include/linux/mfd/iei-wt61p803-puzzle.h

--
2.26.2