lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20241031-mbly-clk-v1-0-89d8b28e3006@bootlin.com>
Date: Thu, 31 Oct 2024 16:52:50 +0100
From: Théo Lebrun <theo.lebrun@...tlin.com>
To: Vladimir Kondratiev <vladimir.kondratiev@...ileye.com>, 
 Grégory Clement <gregory.clement@...tlin.com>, 
 Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>, 
 Conor Dooley <conor+dt@...nel.org>, 
 Michael Turquette <mturquette@...libre.com>, 
 Stephen Boyd <sboyd@...nel.org>, 
 Thomas Bogendoerfer <tsbogend@...ha.franken.de>
Cc: linux-mips@...r.kernel.org, devicetree@...r.kernel.org, 
 linux-kernel@...r.kernel.org, linux-clk@...r.kernel.org, 
 Thomas Petazzoni <thomas.petazzoni@...tlin.com>, 
 Tawfik Bayouk <tawfik.bayouk@...ileye.com>, 
 Théo Lebrun <theo.lebrun@...tlin.com>
Subject: [PATCH 00/13] Usable clocks on Mobileye EyeQ5 & EyeQ6H

Now that clk-eyeq is in the clk-next tree, we can add the small(-ish)
details required to make the platform work fully. The work is mostly
about updating devicetrees to rely on the system-controller nodes as
clock providers.

--

Things we do:

 - In EyeQ5 devicetrees, remove all fixed-factor clocks that are derived
   from clk-eyeq PLLs. We expose those directly from clk-eyeq (using
   match data info). This is simpler to reason about.

   [PATCH 02/13] dt-bindings: clock: eyeq: add Mobileye EyeQ5 core clocks
   [PATCH 03/13] dt-bindings: clock: eyeq: add Mobileye EyeQ5 peripheral clocks
   [PATCH 06/13] clk: fixed-factor: add clk_hw_register_fixed_factor_index() function
   [PATCH 08/13] clk: eyeq: add fixed factor clocks infrastructure
   [PATCH 09/13] clk: eyeq: add EyeQ5 fixed factor clocks
   [PATCH 12/13] MIPS: mobileye: eyeq5: use OLB as provider for fixed factor clocks

 - EyeQ6H devicetrees used fixed-clocks and didn't have
   system-controllers defined. Remove all that and define our syscons.

   [PATCH 04/13] dt-bindings: clock: eyeq: add Mobileye EyeQ6H central clocks
   [PATCH 05/13] dt-bindings: clock: eyeq: add Mobileye EyeQ6H west clocks
   [PATCH 10/13] clk: eyeq: add EyeQ6H central fixed factor clocks
   [PATCH 11/13] clk: eyeq: add EyeQ6H west fixed factor clocks
   [PATCH 13/13] MIPS: mobileye: eyeq6h: add OLB nodes OLB and remove fixed clocks

 - Our bindings used to say that some compatibles require a clock cell
   (those that expose multiple clocks) and others do not. Remove that
   subtlety and enforce a clock cell for everyone.

   The goal is to make it easier to add clocks to compatibles that
   previously exposed a single one. It happens for two compatibles in
   this patch series (EyeQ6H central and west).

   This is a "revert". I had been advised in the initial patch that the
   behavior was a bad idea. I 100% agree with those comments.

   [PATCH 01/13] dt-bindings: soc: mobileye: set `#clock-cells = <1>` for all compatibles
   [PATCH 07/13] clk: eyeq: require clock index with phandle in all cases

--

In which tree patches should go:

 - clk:
   [PATCH 02/13] dt-bindings: clock: eyeq: add Mobileye EyeQ5 core clocks
   [PATCH 03/13] dt-bindings: clock: eyeq: add Mobileye EyeQ5 peripheral clocks
   [PATCH 04/13] dt-bindings: clock: eyeq: add Mobileye EyeQ6H central clocks
   [PATCH 05/13] dt-bindings: clock: eyeq: add Mobileye EyeQ6H west clocks
   [PATCH 06/13] clk: fixed-factor: add clk_hw_register_fixed_factor_index() function
   [PATCH 07/13] clk: eyeq: require clock index with phandle in all cases
   [PATCH 08/13] clk: eyeq: add fixed factor clocks infrastructure
   [PATCH 09/13] clk: eyeq: add EyeQ5 fixed factor clocks
   [PATCH 10/13] clk: eyeq: add EyeQ6H central fixed factor clocks
   [PATCH 11/13] clk: eyeq: add EyeQ6H west fixed factor clocks

 - MIPS:
   [PATCH 01/13] dt-bindings: soc: mobileye: set `#clock-cells = <1>` for all compatibles
   [PATCH 12/13] MIPS: mobileye: eyeq5: use OLB as provider for fixed factor clocks
   [PATCH 13/13] MIPS: mobileye: eyeq6h: add OLB nodes OLB and remove fixed clocks

Reasoning: we need the clock indexes from dt-bindings headers to avoid
breaking the driver build, so patches 2-5 must go in clk-next.

Note about devicetree patches 12-13: other patches on the same
devicetrees are in the mailing-lists, with which I expect conflicts.
All should be straight-forward to resolve.

--

Question: I am a bit afraid about the process for clocks in the future.
Say we want to add I2C on EyeQ5 [0]. Steps will be:
 - The dt-bindings headers will get a new offset.
 - The clk-eyeq driver will get its private clocks indexes updated.
 - Then the clocks will be accessible from devicetree.

Those are somewhat unrelated to a series that is enabling I2C on a
platform. Should I expose the few clocks I already know we'll be
needing soon enough (I2C, SPI, EMMC)? The rest, I am unsure about the
structure and I'd prefer not exposing them.

Thanks,
Have a nice day,
Théo

[0]: https://lore.kernel.org/all/20241009-mbly-i2c-v3-0-e7fd13bcf1c4@bootlin.com/

Signed-off-by: Théo Lebrun <theo.lebrun@...tlin.com>
---
Théo Lebrun (13):
      dt-bindings: soc: mobileye: set `#clock-cells = <1>` for all compatibles
      dt-bindings: clock: eyeq: add Mobileye EyeQ5 core clocks
      dt-bindings: clock: eyeq: add Mobileye EyeQ5 peripheral clocks
      dt-bindings: clock: eyeq: add Mobileye EyeQ6H central clocks
      dt-bindings: clock: eyeq: add Mobileye EyeQ6H west clocks
      clk: fixed-factor: add clk_hw_register_fixed_factor_index() function
      clk: eyeq: require clock index with phandle in all cases
      clk: eyeq: add fixed factor clocks infrastructure
      clk: eyeq: add EyeQ5 fixed factor clocks
      clk: eyeq: add EyeQ6H central fixed factor clocks
      clk: eyeq: add EyeQ6H west fixed factor clocks
      MIPS: mobileye: eyeq5: use OLB as provider for fixed factor clocks
      MIPS: mobileye: eyeq6h: add OLB nodes OLB and remove fixed clocks

 .../bindings/soc/mobileye/mobileye,eyeq5-olb.yaml  |  24 +-
 arch/mips/boot/dts/mobileye/eyeq5-clocks.dtsi      | 270 ---------------------
 arch/mips/boot/dts/mobileye/eyeq5.dtsi             |  30 ++-
 .../boot/dts/mobileye/eyeq6h-fixed-clocks.dtsi     |  52 ----
 arch/mips/boot/dts/mobileye/eyeq6h.dtsi            |  73 +++++-
 drivers/clk/clk-eyeq.c                             | 204 ++++++++++++++--
 drivers/clk/clk-fixed-factor.c                     |  11 +
 include/dt-bindings/clock/mobileye,eyeq5-clk.h     |  17 ++
 include/linux/clk-provider.h                       |   3 +
 9 files changed, 307 insertions(+), 377 deletions(-)
---
base-commit: 11713909beb7debd3d466a6dc302a33d91298be0
change-id: 20241030-mbly-clk-a877f3793eb2

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


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ