This is a new iteration on the Mobileye system-controller series. It used to be sent as a single series [0], but has been split in the previous revision (see [1], [2], [3], [4]) to faciliate merging. This series adds a platform driver handling SoC controllers resets. It is an auxiliary driver being instantiated by the platform clk driver. We support EyeQ5, EyeQ6L and EyeQ6H SoCs. The last one is special in that there are seven instances of this system-controller. Three of those (west, east, acc) contain a reset section. Related series are targeted at clk [5], pinctrl [6] and MIPS [4]. The first two are receiving a second version. The last one has no change and stays at its V1. Have a nice day, Théo [0]: https://lore.kernel.org/lkml/20240620-mbly-olb-v3-0-5f29f8ca289c@xxxxxxxxxxx/ [1]: https://lore.kernel.org/lkml/20240628-mbly-clk-v1-0-edb1e29ea4c1@xxxxxxxxxxx/ [2]: https://lore.kernel.org/lkml/20240628-mbly-reset-v1-0-2a8294fd4392@xxxxxxxxxxx/ [3]: https://lore.kernel.org/lkml/20240628-mbly-pinctrl-v1-0-c878192d6b0a@xxxxxxxxxxx/ [4]: https://lore.kernel.org/lkml/20240628-mbly-mips-v1-0-f53f5e4c422b@xxxxxxxxxxx/ [5]: https://lore.kernel.org/lkml/20240703-mbly-clk-v2-0-fe8c6199a579@xxxxxxxxxxx/ [6]: https://lore.kernel.org/lkml/20240703-mbly-pinctrl-v2-0-eab5f69f1b01@xxxxxxxxxxx/ Signed-off-by: Théo Lebrun <theo.lebrun@xxxxxxxxxxx> --- Changes in v2: - Kconfig: replace "depends on AUXILIARY_BUS" by "select AUXILIARY_BUS". - driver: - turn rcdev_to_priv() into a static function to avoid a gnarly container_of(rcdev, ..., rcdev) bug and use the typesystem. - eqr_busy_wait_locked(): - assign values to base, sleep_us and timeout_us in the variable declaration block rather than later down the function. - fix indent of the conditional in the read_poll_timeout() call. - rename val0 to rst_status and val1 to clk_status. - eqr_status(): reorder variable declarations for offset and domain to be next to each other. - add comment expanding on usage of mutexes in the device private data. - add comments mentioning that both RST_REQUEST and CLK_REQUEST registers must be kept in sync, in both assert and deassert code. - Link to v1: see [2] Changes since OLB v3 [0]: - MAINTAINERS: Move changes into a separate commit to avoid merge conflicts. This commit is in the MIPS series [3]. - dt-bindings: Take Reviewed-by: Rob Herring. - Kconfig: do not depend on COMMON_CLK_EYEQ. This symbol is not defined in this series, it is defined in the clk series [1]. - Kconfig: do depend on AUXILIARY_BUS. - Kconfig: remove outdated "depends on MFD_SYSCON". - driver: remove "#include <linux/platform_device.h>". - driver: cast platdata to (void _iomem *) explicitely. --- Théo Lebrun (2): Revert "dt-bindings: reset: mobileye,eyeq5-reset: add bindings" reset: eyeq: add platform driver .../bindings/reset/mobileye,eyeq5-reset.yaml | 43 -- drivers/reset/Kconfig | 13 + drivers/reset/Makefile | 1 + drivers/reset/reset-eyeq.c | 570 +++++++++++++++++++++ 4 files changed, 584 insertions(+), 43 deletions(-) --- base-commit: f2661062f16b2de5d7b6a5c42a9a5c96326b8454 change-id: 20240628-mbly-reset-ac6c66d3bf95 Best regards, -- Théo Lebrun <theo.lebrun@xxxxxxxxxxx>