[PATCH v4 00/10] Add clock and reset support for Mobileye EyeQ7H
From: Benoît Monin
Date: Wed Mar 04 2026 - 10:31:42 EST
This patchset brings the support of the Other Logic Blocks (OLB)
found in the first Mobileye SoC based on the RISC-V architecture, the
EyeQ7H. Despite the change from MIPS to RISC-V, the Other Logic Blocks
provide similar clock and reset functions to the controllers of the
chip. This series introduces the device tree bindings of the SoC and
the necessary changes to the clock and reset eyeq drivers.
Since this series affects drivers used on Mobileye MIPS SoCs, mainly
clk-eyeq, I tested that it does not introduce regressions on EyeQ5,
EyeQ6H, and EyeQ6Lplus evaluation boards.
In detail, the first patch adds the dt-bindings yaml and headers for
the EyeQ7H OLB.
Patch 2 adds the compatible entries to the reset-eyeq driver, and the
necessary changes for the reset domains found in the EyeQ7H OLB.
Patches 3 and 4 rework the handling of parent clocks in
__clk_hw_register_fixed_factor() to make it identical to other clock types
like divider or gate. This allows simplifying the registration functions
built on top of the now exported __clk_hw_register_fixed_factor(). A
new clk_hw_register_fixed_factor_pdata() is added that will be used in
clk-eyeq later in the series.
Patch 5 renames the defines and functions related to the PLL with the
PLL type fracg, to make room for the other types of PLL found the in
EyeQ7H OLB.
Patch 6 introduces a new generic type of clock structure that can
represents all clocks found in OLB. Then patch 7 and 8 converts all
clocks defined in the driver to the new struct eqc_clock and remove all
the previous separate clocks structures.
Patch 9 adds the list of clocks as match data for the 14 OLB present
in the EyeQ7H SoC, and the functions needed to probe the two PLL types
found in the chip.
Finally patch 10 adds an entry for Mobileye RISC-V SoCs to the MAINTAINERS
file for the newly added dt-bindings files.
This series depends on the EyeQ6Lplus support patchset posted
previously[1], which in turn depends on Théo's series[2]. In particular,
the changes made to the clk-eyeq driver in this patchset depend on the
changes done in these two series.
[1]: https://lore.kernel.org/all/20260226-eyeq6lplus-v3-0-9cbeb59268b0@xxxxxxxxxxx/
[2]: https://lore.kernel.org/lkml/20260225-macb-phy-v7-0-665bd8619d51@xxxxxxxxxxx/
Signed-off-by: Benoît Monin <benoit.monin@xxxxxxxxxxx>
---
Changes in v4:
- Rebased on v7.0-rc1 + version 3 of eyeq6plus series.
- Link to v3: https://lore.kernel.org/r/20260114-clk-eyeq7-v3-0-8ebdba7b0133@xxxxxxxxxxx
Changes in v3:
- Fix eyeq7h-olb DT bindings following Krzysztof review.
- Link to v2: https://lore.kernel.org/r/20251224-clk-eyeq7-v2-0-81744d1025d9@xxxxxxxxxxx
Changes in v2:
- Move the dt-bindings to their own files and sort the compatibles.
- Reorder the changes in reset-eyeq and make the register access more
readable.
- Drop the validity check on even divider. Unnecessary since it is
always called from a clock .set_rate().
- Drop the parameters check on divider registration. Will be posted
separately.
- Switch to a new generic struct for describing the clocks.
- Add an entry to MAINTAINERS.
- Link to v1: https://lore.kernel.org/r/20250903-clk-eyeq7-v1-0-3f5024b5d6e2@xxxxxxxxxxx
---
Benoît Monin (10):
dt-bindings: soc: mobileye: Add EyeQ7H OLB
reset: eyeq: Add EyeQ7H compatibles
clk: fixed-factor: Rework initialization with parent clocks
clk: fixed-factor: Export __clk_hw_register_fixed_factor()
clk: eyeq: Prefix the PLL registers with the PLL type
clk: eyeq: Introduce a generic clock type
clk: eyeq: Convert clocks declaration to eqc_clock
clk: eyeq: Drop PLL, dividers, and fixed factors structs
clk: eyeq: Add EyeQ7H compatibles
MAINTAINERS: Add entry for Mobileye RISC-V SoCs
.../bindings/soc/mobileye/mobileye,eyeq7h-olb.yaml | 192 +++
MAINTAINERS | 13 +-
drivers/clk/clk-eyeq.c | 1245 +++++++++++++-------
drivers/clk/clk-fixed-factor.c | 72 +-
drivers/reset/reset-eyeq.c | 268 ++++-
include/dt-bindings/clock/mobileye,eyeq7h-clk.h | 119 ++
include/linux/clk-provider.h | 56 +-
7 files changed, 1468 insertions(+), 497 deletions(-)
---
base-commit: 559f264e403e4d58d56a17595c60a1de011c5e20
change-id: 20250807-clk-eyeq7-f9c6ea43d138
prerequisite-message-id: <20260225-macb-phy-v7-0-665bd8619d51@xxxxxxxxxxx>
prerequisite-patch-id: 68a9ce9820cf78e8a0705505ea29ff981b518570
prerequisite-patch-id: 40a406305a44a0ea0d0b861d34c199907750f84c
prerequisite-patch-id: dda6d7c3d7d7d8e49b31015887d1a7308f65559a
prerequisite-change-id: 20251128-eyeq6lplus-961c630f0940:v3
prerequisite-patch-id: 68a9ce9820cf78e8a0705505ea29ff981b518570
prerequisite-patch-id: 40a406305a44a0ea0d0b861d34c199907750f84c
prerequisite-patch-id: dda6d7c3d7d7d8e49b31015887d1a7308f65559a
prerequisite-patch-id: ee24f0dcdb893f3850e9dd0d54e848782a1b9ed7
prerequisite-patch-id: 781c4ae465c2af54c28ef4ad7a3c142da8390cf0
prerequisite-patch-id: 5de50e537525f326cd3478f8cf88df947c66a7ee
prerequisite-patch-id: cbb05dadd49dbf4ef54548b1016bba1e80c90805
prerequisite-patch-id: 07021e7be37e3c14ef2950f2ca176a69b3be3ded
prerequisite-patch-id: 1ee9fc5cf027bc9211c1a5e1547036e33d30fcf7
prerequisite-patch-id: 30f092cffaae6e2adc8f6520af6073b9cd20c59e
prerequisite-patch-id: 90361e8b03b1160a73257cc7d69e32435f319423
prerequisite-patch-id: 5db4ab27d470485e90f50a95ab7fc423ae63f5c8
prerequisite-patch-id: 571f8eb779bcad13ac8762519dafc2d0c260d6c7
prerequisite-patch-id: 27c86e0ecfdabca4bca4bdc44e1bc9db8c27634a
prerequisite-patch-id: 40a5ae6831ec4107ae32d74e948636837fa9e076
prerequisite-patch-id: a8952e1ae521fd6f757ebed446f15523791003ac
Best regards,
--
Benoît Monin, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com