Re: [PATCH v2 1/4] dt-bindings: clock: add Exynos Auto v920 SoC CMU bindings

Rob Herring
2024-07-09T16:22:58Z

On Mon, Jul 08, 2024 at 03:59:40PM +0530, Alim Akhtar wrote:
> Hello Sunyeal
>
> > -----Original Message-----
> > From: Sunyeal Hong <sunyeal.hong@samsung.com>
> > Sent: Monday, July 8, 2024 4:43 AM
> > To: Krzysztof Kozlowski <krzk@kernel.org>; Sylwester Nawrocki
> > <s.nawrocki@samsung.com>; Chanwoo Choi <cw00.choi@samsung.com>;
> > Alim Akhtar <alim.akhtar@samsung.com>; Michael Turquette
> > <mturquette@baylibre.com>; Stephen Boyd <sboyd@kernel.org>; Rob
> > Herring <robh@kernel.org>; Conor Dooley <conor+dt@kernel.org>
> > Cc: linux-samsung-soc@vger.kernel.org; linux-clk@vger.kernel.org;
> > devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; linux-
> > kernel@vger.kernel.org; Sunyeal Hong <sunyeal.hong@samsung.com>
> > Subject: [PATCH v2 1/4] dt-bindings: clock: add Exynos Auto v920 SoC CMU
> > bindings
> >
> > Add dt-schema for Exynos Auto v920 SoC clock controller.
> Prefer to have Exynos Auto -> ExynosAuto to match with the naming convention and the UM.
>
> > Add device tree clock binding definitions for below CMU blocks.
> >
> > - CMU_TOP
> > - CMU_PERIC0
> >
> > Signed-off-by: Sunyeal Hong <sunyeal.hong@samsung.com>
> > ---
> > .../clock/samsung,exynosautov920-clock.yaml | 115 +++++++++++
> > .../clock/samsung,exynosautov920.h | 191 ++++++++++++++++++
> > 2 files changed, 306 insertions(+)
> > create mode 100644
> > Documentation/devicetree/bindings/clock/samsung,exynosautov920-
> > clock.yaml
> > create mode 100644 include/dt-bindings/clock/samsung,exynosautov920.h
> >
> > diff --git
> > a/Documentation/devicetree/bindings/clock/samsung,exynosautov920-
> > clock.yaml
> > b/Documentation/devicetree/bindings/clock/samsung,exynosautov920-
> > clock.yaml
> > new file mode 100644
> > index 000000000000..ade74d6e90c0
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/clock/samsung,exynosautov920-
> > clo
> > +++ ck.yaml
> > @@ -0,0 +1,115 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2
> > +---
> > +$id:
> > +http://devicetree.org/schemas/clock/samsung,exynosautov920-
> > clock.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Samsung Exynos Auto v920 SoC clock controller
> > +
> > +maintainers:
> > + - Sunyeal Hong <sunyeal.hong@samsung.com>
> > + - Chanwoo Choi <cw00.choi@samsung.com>
> > + - Krzysztof Kozlowski <krzk@kernel.org>
> > + - Sylwester Nawrocki <s.nawrocki@samsung.com>
> > +
> > +description: |
> > + Exynos Auto v920 clock controller is comprised of several CMU units,
> > +generating
> > + clocks for different domains. Those CMU units are modeled as separate
> > +device
> > + tree nodes, and might depend on each other. Root clocks in that clock
> > +tree are
> > + two external clocks:: OSCCLK/XTCXO (38.4 MHz) and RTCCLK/XrtcXTI
> > (32768 Hz).
> > + The external OSCCLK must be defined as fixed-rate clock in dts.
> > +
> > + CMU_TOP is a top-level CMU, where all base clocks are prepared using
> > + PLLs and dividers; all other clocks of function blocks (other CMUs)
> > + are usually derived from CMU_TOP.
> > +
> > + Each clock is assigned an identifier and client nodes can use this
> > + identifier to specify the clock which they consume. All clocks
> > + available for usage in clock consumer nodes are defined as
> > + preprocessor macros in 'include/dt-
> > bindings/clock/samsung,exynosautov920.h' header.
> > +
> > +properties:
> > + compatible:
> > + enum:
> > + - samsung,exynosautov920-cmu-top
> > + - samsung,exynosautov920-cmu-peric0
> > +
> > + clocks:
> > + minItems: 1
> > + maxItems: 3
> > +
> > + clock-names:
> > + minItems: 1
> > + maxItems: 3
> > +
> > + "#clock-cells":
> > + const: 1
> > +
> > + reg:
> > + maxItems: 1
> > +
> > +allOf:
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + const: samsung,exynosautov920-cmu-top
> > +
> > + then:
> > + properties:
> > + clocks:
> > + items:
> > + - description: External reference clock (38.4 MHz)
> > +
> > + clock-names:
> > + items:
> > + - const: oscclk
> > +
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + const: samsung,exynosautov920-cmu-peric0
> > +
> > + then:
> > + properties:
> > + clocks:
> > + items:
> > + - description: External reference clock (38.4 MHz)
> > + - description: CMU_PERIC0 NOC clock (from CMU_TOP)
> > + - description: CMU_PERIC0 IP clock (from CMU_TOP)
> > +
> > + clock-names:
> > + items:
> > + - const: oscclk
> > + - const: noc
> > + - const: ip
> These are too generic name, please add peric0_noc and peric0_ip, and this is to match with the UM.
> I am sure in future you would like to add other IPs like USI, I2C etc for the peric0 block

Names are local to the block, so adding the block name is redundant.

Wouldn't USI and I2C clocks be outputs? This property is input clocks.

The names and descriptions should be defined at the top level and then
here should be just 'minItems: 3' (And above 'maxItems: 1').

Rob