
Add support for the sl28cpld management controller found on this board. This is especially useful, because of the integrated watchdog in this controller. It is used to supervise the bootup of the bootloader and will automatically switch to the failsafe bootloader if u-boot didn't start. Up until now, we had to disable this feature, leaving a gap in the failsafe boot concept of this board. Now, with this driver in place, this watchdog can be enabled at reset and u-boot will disable it late during its startup.
Additionally, add support for the GPIOs which are connected to this controller.
Besides this support, there are various cleanups, like DRAM output fix, printing the version of the management controller and disabling the random MAC address generation.
Implementationwise, the MFD driver is implemented as UCLASS_NOP which provides basic access functions and will enumerate its child nodes. The device tree binding is the same as already acked by the linux kernel.
Michael Walle (10): misc: add sl28cpld base driver watchdog: add sl28cpld watchdog driver gpio: add sl28cpld driver board: sl28: fix DRAM pretty print board: sl28: print CPLD version on bootup board: sl28: enable sl28cpld support board: sl28: enable SoC watchdog support board: sl28: disable recovery watchdog board: sl28: remove "Useful I2C tricks" section from docs board: sl28: disable random MAC address generation
MAINTAINERS | 7 ++ board/kontron/sl28/sl28.c | 59 +++++++++++- configs/kontron_sl28_defconfig | 11 ++- doc/board/kontron/sl28.rst | 66 +++++++------ drivers/gpio/Kconfig | 6 ++ drivers/gpio/Makefile | 1 + drivers/gpio/sl28cpld-gpio.c | 165 ++++++++++++++++++++++++++++++++ drivers/misc/Kconfig | 8 ++ drivers/misc/Makefile | 1 + drivers/misc/sl28cpld.c | 105 ++++++++++++++++++++ drivers/watchdog/Kconfig | 7 ++ drivers/watchdog/Makefile | 1 + drivers/watchdog/sl28cpld-wdt.c | 109 +++++++++++++++++++++ include/sl28cpld.h | 17 ++++ 14 files changed, 528 insertions(+), 35 deletions(-) create mode 100644 drivers/gpio/sl28cpld-gpio.c create mode 100644 drivers/misc/sl28cpld.c create mode 100644 drivers/watchdog/sl28cpld-wdt.c create mode 100644 include/sl28cpld.h