On 30/07/2024 09:12, Sunyeal Hong wrote: > Add dt-schema for ExynosAuto v920 SoC clock controller. > Add device tree clock binding definitions for below CMU blocks. > > - CMU_TOP > - CMU_PERIC0 > > Signed-off-by: Sunyeal Hong <sunyeal.hong@xxxxxxxxxxx> > --- > .../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..d5c50997107d > --- /dev/null > +++ b/Documentation/devicetree/bindings/clock/samsung,exynosautov920-clock.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 ExynosAuto v920 SoC clock controller > + > +maintainers: > + - Sunyeal Hong <sunyeal.hong@xxxxxxxxxxx> > + - Chanwoo Choi <cw00.choi@xxxxxxxxxxx> > + - Krzysztof Kozlowski <krzk@xxxxxxxxxx> > + - Sylwester Nawrocki <s.nawrocki@xxxxxxxxxxx> > + > +description: | > + ExynosAuto 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 Maybe I misinterpreted previous discussion, but I had impression that binding was incomplete and you wanted to add more devices? > + > + clocks: > + minItems: 1 > + items: > + - description: External reference clock (38.4 MHz) > + - description: Block NOC clock (from CMU_TOP) > + - description: Block IP clock (from CMU_TOP) > + > + clock-names: > + minItems: 1 > + items: > + - const: oscclk > + - const: noc > + - const: ip > + > + "#clock-cells": > + const: 1 > + > + reg: > + maxItems: 1 > + > +required: > + - compatible > + - "#clock-cells" > + - clocks > + - clock-names > + - reg > + > +if: There was allOf here. It should stay - it saves you indentation when this grows. > + properties: > + compatible: > + enum: > + - samsung,exynosautov920-cmu-top > + > +then: > + properties: > + clocks: > + maxItems: 1 > + > + clock-names: > + maxItems: 1 > + > +else: > + if: No nested if:else:if:. See the other examples. Best regards, Krzysztof