linux-mips.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/13] Introducing the Mobileye EyeQ6Lplus SoC
@ 2025-12-17 13:35 Benoît Monin
  2025-12-17 13:35 ` [PATCH 01/13] dt-bindings: mips: Add " Benoît Monin
                   ` (13 more replies)
  0 siblings, 14 replies; 25+ messages in thread
From: Benoît Monin @ 2025-12-17 13:35 UTC (permalink / raw)
  To: Vladimir Kondratiev, Gregory CLEMENT, Théo Lebrun,
	Thomas Bogendoerfer, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Michael Turquette, Stephen Boyd, Philipp Zabel,
	Linus Walleij
  Cc: Thomas Petazzoni, Tawfik Bayouk, linux-mips, devicetree,
	linux-kernel, linux-clk, linux-gpio, Benoît Monin

The Eyeq6Lplus is a new system-on-chip part of Mobileye's EyeQ family
of SoC aimed at Advanced Driver Assistance Systems (ADAS). It is built
around a multicore MIPS I6500 with 2 cores and 8 threads and integrates
controllers and accelerators dedicated to driving assistance.

This patchset adds the initial support for the EyeQ6Lplus and its
evaluation board with the following list of controllers:
* The OLB ("Other Logic Block") providing clocks, resets and pin controls.
* One UART from DesignWare.
* One GPIO controller from DesignWare.
* Two SPI controllers from DesignWare, one in host mode and one in target
  mode.
* One octoSPI flash controller from Cadence, identical to the one found
  in the EyeQ5.
* Two I2C controllers from Designware.

The support for the particularities of the I2C controllers is 
currently under review[1], but basic operations (single read,
single write, write-then-read) work with the compatible fallback to
"snps,designware-i2c".

The patch series adds the device tree bindings for the SoC and the OLB. It
also adds the Kconfig entry for the EyeQ6Lplus, the SoC and evaluation
board device tree, and the defconfig. For the OLB, the series adds the
match data to the clk-eyeq, reset-eyeq and pinctrl-eyeq5 drivers.

It also brings three other changes. One for the pinctrl-eyeq5 driver to
access the pin descriptions, pin functions and pin bank register via
the match data instead of directly. This is needed to add support for
the EyeQ6Lplus alongside the EyeQ5 to the pinctrl driver.

To be able to match against compatible entries, An OF node is needed
but the pinctrl-eyeq5 does not have one as it is an auxiliary device
of clk-eyeq. As part of his MACB phy series[2], Théo switched to
devm_auxiliary_device_create() to register the auxiliary devices and this
helper sets the OF node of the auxiliary device. To avoid a dependency
between the patch series, eq5p_probe() is able to handle both cases,
having the of_node field already set in the device structure or getting
it from the parent device. After both series are merged, a cleanup of
the pinctrl-eyeq5 probe function can be done.

The two other changes are in the clk-eyeq driver. First we skip the
post-divisor when computing the PLL frequency in the clk-eyeq driver,
to match how the clock signal is wired internally in all EyeQ PLL and
compute the correct frequency for the PLL of the EyeQ6Lplus. Second we
adjust the accuracy and down spreading computation of the PLL frequency
as the spread spectrum of all EyeQ PLL is in 1/1024 and not in 1/1000
as previously thought.

[1]: https://lore.kernel.org/all/20251126-i2c-dw-v4-0-b0654598e7c5@bootlin.com/
[2]: https://lore.kernel.org/all/20251215-macb-phy-v5-0-a9dfea39da34@bootlin.com/

Signed-off-by: Benoît Monin <benoit.monin@bootlin.com>
---
Benoît Monin (13):
      dt-bindings: mips: Add Mobileye EyeQ6Lplus SoC
      dt-bindings: soc: mobileye: Add EyeQ6Lplus OLB
      MIPS: Add Mobileye eyeQ6Lplus support
      reset: eyeq: Add Mobileye EyeQ6Lplus OLB
      pinctrl: eyeq5: Use match data
      pinctrl: eyeq5: Add Mobileye EyeQ6Lplus OLB
      clk: eyeq: Skip post-divisor when computing PLL frequency
      clk: eyeq: Adjust PLL accuracy computation
      clk: eyeq: Add Mobileye EyeQ6Lplus OLB
      MIPS: Add Mobileye EyeQ6Lplus SoC dtsi
      MIPS: Add Mobileye EyeQ6Lplus evaluation board dts
      MIPS: config: add eyeq6lplus_defconfig
      MAINTAINERS: Mobileye: Add EyeQ6Lplus files

 .../devicetree/bindings/mips/mobileye.yaml         |   5 +
 .../soc/mobileye/mobileye,eyeq6lplus-olb.yaml      | 208 ++++++++++
 MAINTAINERS                                        |   4 +-
 arch/mips/boot/dts/mobileye/Makefile               |   1 +
 arch/mips/boot/dts/mobileye/eyeq6lplus-epm6.dts    | 112 +++++
 arch/mips/boot/dts/mobileye/eyeq6lplus-pins.dtsi   |  84 ++++
 arch/mips/boot/dts/mobileye/eyeq6lplus.dtsi        | 169 ++++++++
 arch/mips/configs/eyeq6lplus_defconfig             | 119 ++++++
 arch/mips/mobileye/Kconfig                         |   3 +
 arch/mips/mobileye/Platform                        |   1 +
 drivers/clk/Kconfig                                |   4 +-
 drivers/clk/clk-eyeq.c                             |  90 +++-
 drivers/pinctrl/Kconfig                            |   4 +-
 drivers/pinctrl/pinctrl-eyeq5.c                    | 462 +++++++++++++++------
 drivers/reset/Kconfig                              |   4 +-
 drivers/reset/reset-eyeq.c                         |  31 ++
 .../dt-bindings/clock/mobileye,eyeq6lplus-clk.h    |  37 ++
 17 files changed, 1192 insertions(+), 146 deletions(-)
---
base-commit: 8f0b4cce4481fb22653697cced8d0d04027cb1e8
change-id: 20251128-eyeq6lplus-961c630f0940

Best regards,
-- 
Benoît Monin, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2026-01-02 15:27 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-17 13:35 [PATCH 00/13] Introducing the Mobileye EyeQ6Lplus SoC Benoît Monin
2025-12-17 13:35 ` [PATCH 01/13] dt-bindings: mips: Add " Benoît Monin
2025-12-19 21:10   ` Rob Herring (Arm)
2025-12-17 13:35 ` [PATCH 02/13] dt-bindings: soc: mobileye: Add EyeQ6Lplus OLB Benoît Monin
2025-12-19 21:10   ` Rob Herring (Arm)
2025-12-17 13:35 ` [PATCH 03/13] MIPS: Add Mobileye eyeQ6Lplus support Benoît Monin
2025-12-17 13:35 ` [PATCH 04/13] reset: eyeq: Add Mobileye EyeQ6Lplus OLB Benoît Monin
2025-12-17 13:35 ` [PATCH 05/13] pinctrl: eyeq5: Use match data Benoît Monin
2025-12-20 13:46   ` kernel test robot
2025-12-20 14:34   ` kernel test robot
2025-12-17 13:35 ` [PATCH 06/13] pinctrl: eyeq5: Add Mobileye EyeQ6Lplus OLB Benoît Monin
2025-12-17 13:35 ` [PATCH 07/13] clk: eyeq: Skip post-divisor when computing PLL frequency Benoît Monin
2025-12-17 13:35 ` [PATCH 08/13] clk: eyeq: Adjust PLL accuracy computation Benoît Monin
2025-12-17 13:35 ` [PATCH 09/13] clk: eyeq: Add Mobileye EyeQ6Lplus OLB Benoît Monin
2025-12-17 13:36 ` [PATCH 10/13] MIPS: Add Mobileye EyeQ6Lplus SoC dtsi Benoît Monin
2025-12-17 13:36 ` [PATCH 11/13] MIPS: Add Mobileye EyeQ6Lplus evaluation board dts Benoît Monin
2025-12-18 15:30   ` Krzysztof Kozlowski
2025-12-19 15:57     ` Benoît Monin
2025-12-19 16:28       ` Krzysztof Kozlowski
2026-01-01 22:42       ` Linus Walleij
2026-01-02 15:27         ` Benoît Monin
2025-12-17 13:36 ` [PATCH 12/13] MIPS: config: add eyeq6lplus_defconfig Benoît Monin
2025-12-17 13:36 ` [PATCH 13/13] MAINTAINERS: Mobileye: Add EyeQ6Lplus files Benoît Monin
2025-12-19 12:03 ` [PATCH 00/13] Introducing the Mobileye EyeQ6Lplus SoC Linus Walleij
2025-12-19 16:22   ` Benoît Monin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).