Message ID | 20230605-ep93xx-v3-2-3d63a5f1103e@maquefel.me (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ep93xx device tree conversion | expand |
Quoting Nikita Shubin via B4 Relay (2023-07-20 04:29:02) > diff --git a/Documentation/devicetree/bindings/clock/cirrus,ep9301-clk.yaml b/Documentation/devicetree/bindings/clock/cirrus,ep9301-clk.yaml > new file mode 100644 > index 000000000000..111e016601fb > --- /dev/null > +++ b/Documentation/devicetree/bindings/clock/cirrus,ep9301-clk.yaml > @@ -0,0 +1,46 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/clock/cirrus,ep9301-clk.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Cirrus Logic ep93xx SoC's clock controller > + > +maintainers: > + - Nikita Shubin <nikita.shubin@maquefel.me> > + - Alexander Sverdlin <alexander.sverdlin@gmail.com> > + > +properties: > + compatible: > + oneOf: > + - const: cirrus,ep9301-clk > + - items: > + - enum: > + - cirrus,ep9302-clk > + - cirrus,ep9307-clk > + - cirrus,ep9312-clk > + - cirrus,ep9315-clk > + - const: cirrus,ep9301-clk > + > + "#clock-cells": > + const: 1 > + > + clocks: > + items: > + - description: reference clock > + > +required: > + - compatible > + - "#clock-cells" > + - clocks > + > +additionalProperties: false > + > +examples: > + - | > + clock-controller { > + compatible = "cirrus,ep9301-clk"; Is there a reg property? The driver grabs some syscon and then iomaps it, so presumably there is a register range. Is it part of some other hardware block? If so, can you make that device register sub-devices with the auxiliary bus instead of using a syscon?
On 20/07/2023 13:29, Nikita Shubin via B4 Relay wrote: > From: Nikita Shubin <nikita.shubin@maquefel.me> > > This adds device tree bindings for the Cirrus Logic EP93xx > clock block used in these SoCs. > > Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me> > --- > .../bindings/clock/cirrus,ep9301-clk.yaml | 46 ++++++++++++++++++++++ > include/dt-bindings/clock/cirrus,ep93xx-clock.h | 41 +++++++++++++++++++ > 2 files changed, 87 insertions(+) > > diff --git a/Documentation/devicetree/bindings/clock/cirrus,ep9301-clk.yaml b/Documentation/devicetree/bindings/clock/cirrus,ep9301-clk.yaml > new file mode 100644 > index 000000000000..111e016601fb > --- /dev/null > +++ b/Documentation/devicetree/bindings/clock/cirrus,ep9301-clk.yaml > @@ -0,0 +1,46 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/clock/cirrus,ep9301-clk.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Cirrus Logic ep93xx SoC's clock controller > + > +maintainers: > + - Nikita Shubin <nikita.shubin@maquefel.me> > + - Alexander Sverdlin <alexander.sverdlin@gmail.com> > + > +properties: > + compatible: > + oneOf: > + - const: cirrus,ep9301-clk > + - items: > + - enum: > + - cirrus,ep9302-clk > + - cirrus,ep9307-clk > + - cirrus,ep9312-clk > + - cirrus,ep9315-clk > + - const: cirrus,ep9301-clk > + > + "#clock-cells": > + const: 1 > + > + clocks: > + items: > + - description: reference clock > + > +required: > + - compatible > + - "#clock-cells" > + - clocks > + > +additionalProperties: false > + > +examples: > + - | > + clock-controller { > + compatible = "cirrus,ep9301-clk"; > + #clock-cells = <1>; > + clocks = <&xtali>; > + }; > +... > diff --git a/include/dt-bindings/clock/cirrus,ep93xx-clock.h b/include/dt-bindings/clock/cirrus,ep93xx-clock.h > new file mode 100644 > index 000000000000..3cd053c0fdea > --- /dev/null > +++ b/include/dt-bindings/clock/cirrus,ep93xx-clock.h Keep the same filename as bindings file. Best regards, Krzysztof
diff --git a/Documentation/devicetree/bindings/clock/cirrus,ep9301-clk.yaml b/Documentation/devicetree/bindings/clock/cirrus,ep9301-clk.yaml new file mode 100644 index 000000000000..111e016601fb --- /dev/null +++ b/Documentation/devicetree/bindings/clock/cirrus,ep9301-clk.yaml @@ -0,0 +1,46 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/clock/cirrus,ep9301-clk.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Cirrus Logic ep93xx SoC's clock controller + +maintainers: + - Nikita Shubin <nikita.shubin@maquefel.me> + - Alexander Sverdlin <alexander.sverdlin@gmail.com> + +properties: + compatible: + oneOf: + - const: cirrus,ep9301-clk + - items: + - enum: + - cirrus,ep9302-clk + - cirrus,ep9307-clk + - cirrus,ep9312-clk + - cirrus,ep9315-clk + - const: cirrus,ep9301-clk + + "#clock-cells": + const: 1 + + clocks: + items: + - description: reference clock + +required: + - compatible + - "#clock-cells" + - clocks + +additionalProperties: false + +examples: + - | + clock-controller { + compatible = "cirrus,ep9301-clk"; + #clock-cells = <1>; + clocks = <&xtali>; + }; +... diff --git a/include/dt-bindings/clock/cirrus,ep93xx-clock.h b/include/dt-bindings/clock/cirrus,ep93xx-clock.h new file mode 100644 index 000000000000..3cd053c0fdea --- /dev/null +++ b/include/dt-bindings/clock/cirrus,ep93xx-clock.h @@ -0,0 +1,41 @@ +/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */ +#ifndef DT_BINDINGS_CIRRUS_EP93XX_CLOCK_H +#define DT_BINDINGS_CIRRUS_EP93XX_CLOCK_H + +#define EP93XX_CLK_UART1 0 +#define EP93XX_CLK_UART2 1 +#define EP93XX_CLK_UART3 2 + +#define EP93XX_CLK_ADC 3 +#define EP93XX_CLK_ADC_EN 4 + +#define EP93XX_CLK_KEYPAD 5 + +#define EP93XX_CLK_VIDEO 6 + +#define EP93XX_CLK_I2S_MCLK 7 +#define EP93XX_CLK_I2S_SCLK 8 +#define EP93XX_CLK_I2S_LRCLK 9 + +#define EP93XX_CLK_UART 10 +#define EP93XX_CLK_SPI 11 +#define EP93XX_CLK_PWM 12 +#define EP93XX_CLK_USB 13 + +#define EP93XX_CLK_M2M0 14 +#define EP93XX_CLK_M2M1 15 + +#define EP93XX_CLK_M2P0 16 +#define EP93XX_CLK_M2P1 17 +#define EP93XX_CLK_M2P2 18 +#define EP93XX_CLK_M2P3 19 +#define EP93XX_CLK_M2P4 20 +#define EP93XX_CLK_M2P5 21 +#define EP93XX_CLK_M2P6 22 +#define EP93XX_CLK_M2P7 23 +#define EP93XX_CLK_M2P8 24 +#define EP93XX_CLK_M2P9 25 + +#define EP93XX_CLK_END 26 + +#endif /* DT_BINDINGS_CIRRUS_EP93XX_CLOCK_H */