On Fri, Apr 22, 2022 at 11:41:08PM +0800, icenowy@xxxxxxxxxxx wrote: > From: Icenowy Zheng <icenowy@xxxxxxx> > > R329 has a CPUX CCU and a R-CCU, with all PLLs in R-CCU. > > Add bindings for them, with R-CCU only taking 3 oscillators as input and > main CCU taking oscillators + PLLs as input. > > Signed-off-by: Icenowy Zheng <icenowy@xxxxxxx> > --- > .../clock/allwinner,sun4i-a10-ccu.yaml | 62 ++++++++++++++-- > include/dt-bindings/clock/sun50i-r329-ccu.h | 73 +++++++++++++++++++ > include/dt-bindings/clock/sun50i-r329-r-ccu.h | 45 ++++++++++++ > include/dt-bindings/reset/sun50i-r329-ccu.h | 45 ++++++++++++ > include/dt-bindings/reset/sun50i-r329-r-ccu.h | 24 ++++++ > 5 files changed, 241 insertions(+), 8 deletions(-) > create mode 100644 include/dt-bindings/clock/sun50i-r329-ccu.h > create mode 100644 include/dt-bindings/clock/sun50i-r329-r-ccu.h > create mode 100644 include/dt-bindings/reset/sun50i-r329-ccu.h > create mode 100644 include/dt-bindings/reset/sun50i-r329-r-ccu.h > > diff --git a/Documentation/devicetree/bindings/clock/allwinner,sun4i-a10-ccu.yaml b/Documentation/devicetree/bindings/clock/allwinner,sun4i-a10-ccu.yaml > index 15ed64d35261..c7a429e55483 100644 > --- a/Documentation/devicetree/bindings/clock/allwinner,sun4i-a10-ccu.yaml > +++ b/Documentation/devicetree/bindings/clock/allwinner,sun4i-a10-ccu.yaml > @@ -45,6 +45,8 @@ properties: > - allwinner,sun50i-h6-r-ccu > - allwinner,sun50i-h616-ccu > - allwinner,sun50i-h616-r-ccu > + - allwinner,sun50i-r329-ccu > + - allwinner,sun50i-r329-r-ccu > - allwinner,suniv-f1c100s-ccu > - nextthing,gr8-ccu > > @@ -106,6 +108,7 @@ else: > - allwinner,sun50i-a100-ccu > - allwinner,sun50i-h6-ccu > - allwinner,sun50i-h616-ccu > + - allwinner,sun50i-r329-r-ccu > > then: > properties: > @@ -118,14 +121,57 @@ else: > maxItems: 3 > > else: > - properties: > - clocks: > - minItems: 2 > - maxItems: 2 > - > - clock-names: > - minItems: 2 > - maxItems: 2 > + if: > + properties: > + compatible: > + const: allwinner,sun50i-r329-ccu > + then: > + properties: > + clocks: > + minItems: 13 > + maxItems: 13 This is (or should be) implied by the size of 'items'. Did you find that to not be the case? > + items: > + - description: High Frequency Oscillator (usually at 24MHz) > + - description: Low Frequency Oscillator (usually at 32kHz) > + - description: Internal Oscillator > + - description: CPUX PLL > + - description: Peripherals PLL > + - description: Peripherals PLL (2x) > + - description: Peripherals PLL derivated 800MHz clock > + - description: Audio PLL 0 > + - description: Audio PLL 0 (/2) > + - description: Audio PLL 0 (/5) > + - description: Audio PLL 1 > + - description: Audio PLL 1 (2x) > + - description: Audio PLL 1 (4x) > diff --git a/include/dt-bindings/clock/sun50i-r329-ccu.h b/include/dt-bindings/clock/sun50i-r329-ccu.h > new file mode 100644 > index 000000000000..116f8d13a9b3 > --- /dev/null > +++ b/include/dt-bindings/clock/sun50i-r329-ccu.h > @@ -0,0 +1,73 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +/* > + * Copyright (c) 2021 Sipeed It's 2022. > diff --git a/include/dt-bindings/clock/sun50i-r329-r-ccu.h b/include/dt-bindings/clock/sun50i-r329-r-ccu.h > new file mode 100644 > index 000000000000..c327d1a1b602 > --- /dev/null > +++ b/include/dt-bindings/clock/sun50i-r329-r-ccu.h > @@ -0,0 +1,45 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > diff --git a/include/dt-bindings/reset/sun50i-r329-ccu.h b/include/dt-bindings/reset/sun50i-r329-ccu.h > new file mode 100644 > index 000000000000..bb704a82443f > --- /dev/null > +++ b/include/dt-bindings/reset/sun50i-r329-ccu.h > @@ -0,0 +1,45 @@ > +/* SPDX-License-Identifier: (GPL-2.0+ or MIT) */ > diff --git a/include/dt-bindings/reset/sun50i-r329-r-ccu.h b/include/dt-bindings/reset/sun50i-r329-r-ccu.h > new file mode 100644 > index 000000000000..40644f2f21c6 > --- /dev/null > +++ b/include/dt-bindings/reset/sun50i-r329-r-ccu.h > @@ -0,0 +1,24 @@ > +/* SPDX-License-Identifier: (GPL-2.0+ or MIT) */ Why the different licenses? GPL-2.0 OR BSD-2-Clause is preferred. MIT is fine if that's what matches the dts files. Rob