Hello Andy, Hans, Ilpo, Arnd, Gregory, and others, this is v8 of the series adding Turris Omnia MCU driver. This series depends on the immutable branch between LEDs and locking, introducing devm_mutex_init(), see the PR https://lore.kernel.org/linux-leds/20240412084616.GR2399047@xxxxxxxxxx/ See also cover letters for v1, v2, v3, v4, v5, v6 and v7: https://patchwork.kernel.org/project/linux-soc/cover/20230823161012.6986-1-kabel@xxxxxxxxxx/ https://patchwork.kernel.org/project/linux-soc/cover/20230919103815.16818-1-kabel@xxxxxxxxxx/ https://patchwork.kernel.org/project/linux-soc/cover/20231023143130.11602-1-kabel@xxxxxxxxxx/ https://patchwork.kernel.org/project/linux-soc/cover/20231026161803.16750-1-kabel@xxxxxxxxxx/ https://patchwork.kernel.org/project/linux-soc/cover/20240323164359.21642-1-kabel@xxxxxxxxxx/ https://patchwork.kernel.org/project/linux-soc/cover/20240418121116.22184-1-kabel@xxxxxxxxxx/ https://patchwork.kernel.org/project/linux-soc/cover/20240424173809.7214-1-kabel@xxxxxxxxxx/ Changes since v7: - fixed wrong $id path in DT binding (patch 1) - removed resource managed IRQ mapping disposal, which is not needed, as pointed out by Andy (patches 6, 7) - added some more #includes (for linux/device.h, linux/interrupt.h, linux/hw_random.h) (patches 3, 6, 7) - dropped the Fixes tags from the DT changes (patches 8, 9), with an explanation of this added into the commit message of patch 8, as suggested by Andrew Marek Behún (9): dt-bindings: firmware: add cznic,turris-omnia-mcu binding platform: cznic: Add preliminary support for Turris Omnia MCU platform: cznic: turris-omnia-mcu: Add support for MCU connected GPIOs platform: cznic: turris-omnia-mcu: Add support for poweroff and wakeup platform: cznic: turris-omnia-mcu: Add support for MCU watchdog platform: cznic: turris-omnia-mcu: Add support for MCU provided TRNG platform: cznic: turris-omnia-mcu: Add support for digital message signing via debugfs ARM: dts: turris-omnia: Add MCU system-controller node ARM: dts: turris-omnia: Add GPIO key node for front button .../ABI/testing/debugfs-turris-omnia-mcu | 13 + .../sysfs-bus-i2c-devices-turris-omnia-mcu | 126 ++ .../firmware/cznic,turris-omnia-mcu.yaml | 86 ++ MAINTAINERS | 5 + .../dts/marvell/armada-385-turris-omnia.dts | 35 +- drivers/platform/Kconfig | 2 + drivers/platform/Makefile | 1 + drivers/platform/cznic/Kconfig | 51 + drivers/platform/cznic/Makefile | 9 + .../platform/cznic/turris-omnia-mcu-base.c | 439 +++++++ .../platform/cznic/turris-omnia-mcu-debugfs.c | 207 ++++ .../platform/cznic/turris-omnia-mcu-gpio.c | 1048 +++++++++++++++++ .../cznic/turris-omnia-mcu-sys-off-wakeup.c | 258 ++++ .../platform/cznic/turris-omnia-mcu-trng.c | 101 ++ .../cznic/turris-omnia-mcu-watchdog.c | 123 ++ drivers/platform/cznic/turris-omnia-mcu.h | 188 +++ include/linux/turris-omnia-mcu-interface.h | 249 ++++ 17 files changed, 2940 insertions(+), 1 deletion(-) create mode 100644 Documentation/ABI/testing/debugfs-turris-omnia-mcu create mode 100644 Documentation/ABI/testing/sysfs-bus-i2c-devices-turris-omnia-mcu create mode 100644 Documentation/devicetree/bindings/firmware/cznic,turris-omnia-mcu.yaml create mode 100644 drivers/platform/cznic/Kconfig create mode 100644 drivers/platform/cznic/Makefile create mode 100644 drivers/platform/cznic/turris-omnia-mcu-base.c create mode 100644 drivers/platform/cznic/turris-omnia-mcu-debugfs.c create mode 100644 drivers/platform/cznic/turris-omnia-mcu-gpio.c create mode 100644 drivers/platform/cznic/turris-omnia-mcu-sys-off-wakeup.c create mode 100644 drivers/platform/cznic/turris-omnia-mcu-trng.c create mode 100644 drivers/platform/cznic/turris-omnia-mcu-watchdog.c create mode 100644 drivers/platform/cznic/turris-omnia-mcu.h create mode 100644 include/linux/turris-omnia-mcu-interface.h -- 2.43.2