linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/11] Add Mobileye EyeQ system controller support (clk, reset, pinctrl)
@ 2024-04-10 17:12 Théo Lebrun
  2024-04-10 17:12 ` [PATCH 01/11] dt-bindings: soc: mobileye: add EyeQ5 OLB system controller Théo Lebrun
                   ` (10 more replies)
  0 siblings, 11 replies; 32+ messages in thread
From: Théo Lebrun @ 2024-04-10 17:12 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Michael Turquette, Stephen Boyd, Philipp Zabel, Linus Walleij
  Cc: linux-mips, devicetree, linux-kernel, linux-clk, linux-gpio,
	Vladimir Kondratiev, Gregory CLEMENT, Thomas Petazzoni,
	Tawfik Bayouk, Théo Lebrun

Hello,

This builds on previous EyeQ5 system-controller revisions [0] and adds
EyeQ6L + EyeQ6H support. Pinctrl is not affected because it is not
handled in the same manner on those new platforms; it will be dealt
with with pinctrl-single. Only clk and reset expand to support those
new platform.

Changes in drivers are pretty massive, which explains why I started a
new revision count.

EyeQ6H is particular in that it has not one but seven OLB instances.
All seven host a (different) clock controller. Three host a reset
controller.

Patches are targeting MIPS, clk, reset and pinctrl trees independently.

 - dt-bindings: soc: mobileye: add EyeQ5 OLB system controller
 - MIPS: mobileye: eyeq5: add OLB syscon node
 - MIPS: mobileye: eyeq5: use OLB clocks controller node
 - MIPS: mobileye: eyeq5: add OLB reset controller node
 - MIPS: mobileye: eyeq5: add pinctrl node & pinmux function nodes

   Patches have no dependencies on this series. All required devicetrees
   and bindings got in the last release. Bindings changes below are
   only related to EyeQ6L/EyeQ6H.

 - dt-bindings: clock: mobileye,eyeq5-clk: add EyeQ6L and EyeQ6H
 - clk: divider: Introduce CLK_DIVIDER_EVEN_INTEGERS flag
 - clk: eyeq: add driver

   Clocks on all three platforms are rather similar. We have a bunch of
   PLLs children to the main crystal, some being required early
   (at of_clk_init(), before platform bus init).

   We have a few divider clocks in some instances. A custom clk-divider
   flag is introduced for the divisor because one clk would have a 256
   entries table otherwise.

   Compatible match data stores it all, nothing is declared in DT. Match
   data has three arrays for the three types of clocks: early PLLs,
   standard PLLs and divider clks.

 - dt-bindings: reset: mobileye,eyeq5-reset: add EyeQ6L and EyeQ6H
 - reset: eyeq: add platform driver

   Resets on all three platforms are rather similar. We therefore
   declare reset domain types and assign compatibles to an array of
   domains, with types and valid masks associated. The rest is pretty
   similar to previous code.

   EyeQ6H west and east OLB each host an instance of the same compat.

 - pinctrl: eyeq5: add platform driver

   Not affected by EyeQ6L/EyeQ6H additions. It has not changed.

Have a nice day,
Théo

[0]: https://lore.kernel.org/lkml/20240301-mbly-clk-v9-0-cbf06eb88708@bootlin.com/

Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
---
Théo Lebrun (11):
      dt-bindings: soc: mobileye: add EyeQ5 OLB system controller
      dt-bindings: clock: mobileye,eyeq5-clk: add EyeQ6L and EyeQ6H
      dt-bindings: reset: mobileye,eyeq5-reset: add EyeQ6L and EyeQ6H
      clk: divider: Introduce CLK_DIVIDER_EVEN_INTEGERS flag
      clk: eyeq: add driver
      reset: eyeq: add platform driver
      pinctrl: eyeq5: add platform driver
      MIPS: mobileye: eyeq5: add OLB syscon node
      MIPS: mobileye: eyeq5: use OLB clocks controller node
      MIPS: mobileye: eyeq5: add OLB reset controller node
      MIPS: mobileye: eyeq5: add pinctrl node & pinmux function nodes

 .../bindings/clock/mobileye,eyeq5-clk.yaml         | 103 +++-
 .../bindings/reset/mobileye,eyeq5-reset.yaml       |  88 ++-
 .../bindings/soc/mobileye/mobileye,eyeq5-olb.yaml  | 125 ++++
 MAINTAINERS                                        |   8 +
 .../{eyeq5-fixed-clocks.dtsi => eyeq5-clocks.dtsi} |  54 +-
 arch/mips/boot/dts/mobileye/eyeq5-pins.dtsi        | 125 ++++
 arch/mips/boot/dts/mobileye/eyeq5.dtsi             |  42 +-
 drivers/clk/Kconfig                                |  11 +
 drivers/clk/Makefile                               |   1 +
 drivers/clk/clk-divider.c                          |  12 +-
 drivers/clk/clk-eyeq.c                             | 644 +++++++++++++++++++++
 drivers/pinctrl/Kconfig                            |  14 +
 drivers/pinctrl/Makefile                           |   1 +
 drivers/pinctrl/pinctrl-eyeq5.c                    | 579 ++++++++++++++++++
 drivers/reset/Kconfig                              |  13 +
 drivers/reset/Makefile                             |   1 +
 drivers/reset/reset-eyeq.c                         | 543 +++++++++++++++++
 include/dt-bindings/clock/mobileye,eyeq5-clk.h     |  21 +
 include/linux/clk-provider.h                       |  11 +-
 19 files changed, 2322 insertions(+), 74 deletions(-)
---
base-commit: c8e31f416e99bd460f6f8847709bf69c72a3e146
change-id: 20240408-mbly-olb-75a85f5cfde3

Best regards,
-- 
Théo Lebrun <theo.lebrun@bootlin.com>


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

end of thread, other threads:[~2024-04-17 10:18 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-10 17:12 [PATCH 00/11] Add Mobileye EyeQ system controller support (clk, reset, pinctrl) Théo Lebrun
2024-04-10 17:12 ` [PATCH 01/11] dt-bindings: soc: mobileye: add EyeQ5 OLB system controller Théo Lebrun
2024-04-10 18:52   ` Rob Herring
2024-04-11  9:19     ` Théo Lebrun
2024-04-11  3:29   ` Stephen Boyd
2024-04-10 17:12 ` [PATCH 02/11] dt-bindings: clock: mobileye,eyeq5-clk: add EyeQ6L and EyeQ6H Théo Lebrun
2024-04-11  6:14   ` Krzysztof Kozlowski
2024-04-11 13:49     ` Théo Lebrun
2024-04-11 15:02       ` Krzysztof Kozlowski
2024-04-10 17:12 ` [PATCH 03/11] dt-bindings: reset: mobileye,eyeq5-reset: " Théo Lebrun
2024-04-11  6:14   ` Krzysztof Kozlowski
2024-04-11 14:04     ` Théo Lebrun
2024-04-11 15:05       ` Krzysztof Kozlowski
2024-04-10 17:12 ` [PATCH 04/11] clk: divider: Introduce CLK_DIVIDER_EVEN_INTEGERS flag Théo Lebrun
2024-04-11  3:06   ` Stephen Boyd
2024-04-11 10:14     ` Théo Lebrun
2024-04-12  5:19       ` Stephen Boyd
2024-04-10 17:12 ` [PATCH 05/11] clk: eyeq: add driver Théo Lebrun
2024-04-11  3:22   ` Stephen Boyd
2024-04-11 10:46     ` Théo Lebrun
2024-04-12  5:46       ` Stephen Boyd
2024-04-17 10:18         ` Théo Lebrun
2024-04-10 17:12 ` [PATCH 06/11] reset: eyeq: add platform driver Théo Lebrun
2024-04-10 17:12 ` [PATCH 07/11] pinctrl: eyeq5: " Théo Lebrun
2024-04-10 17:12 ` [PATCH 08/11] MIPS: mobileye: eyeq5: add OLB syscon node Théo Lebrun
2024-04-11  6:15   ` Krzysztof Kozlowski
2024-04-11 14:34     ` Théo Lebrun
2024-04-11 15:07       ` Krzysztof Kozlowski
2024-04-17  7:53         ` Théo Lebrun
2024-04-10 17:12 ` [PATCH 09/11] MIPS: mobileye: eyeq5: use OLB clocks controller node Théo Lebrun
2024-04-10 17:12 ` [PATCH 10/11] MIPS: mobileye: eyeq5: add OLB reset " Théo Lebrun
2024-04-10 17:12 ` [PATCH 11/11] MIPS: mobileye: eyeq5: add pinctrl node & pinmux function nodes Théo Lebrun

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).