Hi Krzysztof, Thanks for your review. On Thu, 12 Oct 2023 at 07:11, Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> wrote: > > On 11/10/2023 20:48, Peter Griffin wrote: > > Provide dt-schema documentation for Google gs101 SoC clock controller. > > Currently this adds support for cmu_top, cmu_misc and cmu_apm. > > > > Signed-off-by: Peter Griffin <peter.griffin@xxxxxxxxxx> > > --- > > .../bindings/clock/google,gs101-clock.yaml | 125 ++++++++++ > > include/dt-bindings/clock/google,gs101.h | 232 ++++++++++++++++++ > > 2 files changed, 357 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/clock/google,gs101-clock.yaml > > create mode 100644 include/dt-bindings/clock/google,gs101.h > > > > diff --git a/Documentation/devicetree/bindings/clock/google,gs101-clock.yaml b/Documentation/devicetree/bindings/clock/google,gs101-clock.yaml > > new file mode 100644 > > index 000000000000..f74494594b3b > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/clock/google,gs101-clock.yaml > > @@ -0,0 +1,125 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/clock/google,gs101-clock.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Google GS101 SoC clock controller > > + > > +maintainers: > > + - Peter Griffin <peter.griffin@xxxxxxxxxx> > > + > > +description: | > > + Google GS101 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. The root clock in that clock tree > > + is OSCCLK (24.576 MHz). That external clock must be defined as a fixed-rate > > + clock in dts. > > + > > + CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and > > + dividers; all other leaf clocks (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 > > + 'dt-bindings/clock/gs101.h' header. > > + > > +properties: > > + compatible: > > + enum: > > + - google,gs101-cmu-top > > + - google,gs101-cmu-apm > > + - google,gs101-cmu-misc > > + > > + clocks: > > + minItems: 1 > > + maxItems: 2 > > + > > + clock-names: > > + minItems: 1 > > + maxItems: 2 > > + > > + "#clock-cells": > > + const: 1 > > + > > + reg: > > + maxItems: 1 > > + > > +allOf: > > No improvements here from v1. Seems I missed the "required:" go before "allOf:" comment here. Sorry about that I've fixed that in v4. Seems like a few other exynos clock yaml bindings need that fix to. > > > + - if: > > + properties: > > + compatible: > > + contains: > > + const: google,gs101-cmu-top > > + > > + then: > > + properties: > > + clocks: > > + items: > > + - description: External reference clock (24.576 MHz) > > + > > + clock-names: > > + items: > > + - const: oscclk > > + > > + - if: > > + properties: > > + compatible: > > + contains: > > enum: > - google,gs101-cmu-apm > - google,gs101-cmu-misc Ok just to be clear, are you saying I should have it like this? - if: properties: compatible: contains: enum: - google,gs101-cmu-misc - google,gs101-cmu-apm then: properties: clocks: minItems: 1 items: - description: External reference clock (24.576 MHz) - description: Misc bus clock (from CMU_TOP) clock-names: minItems: 1 items: - const: oscclk - const: dout_cmu_misc_bus Instead of a dedicated 'if: const <compatible> then: ' for each CMU? If I'm wrong above would you been kind enough to elaborate a bit more on what you want, as all this dt-schema yaml stuff is a bit new for me Many thanks, Peter