Message ID | 20230424123522.18302-12-nikita.shubin@maquefel.me |
---|---|
State | New |
Headers | show |
Series | ep93xx device tree conversion | expand |
Quoting Nikita Shubin (2023-04-24 05:34:27) > 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> > --- > .../devicetree/bindings/arm/ep93xx.yaml | 102 ++++++++++++++++++ > .../dt-bindings/clock/cirrus,ep93xx-clock.h | 53 +++++++++ > 2 files changed, 155 insertions(+) > create mode 100644 Documentation/devicetree/bindings/arm/ep93xx.yaml > create mode 100644 include/dt-bindings/clock/cirrus,ep93xx-clock.h > > diff --git a/Documentation/devicetree/bindings/arm/ep93xx.yaml b/Documentation/devicetree/bindings/arm/ep93xx.yaml > new file mode 100644 > index 000000000000..de7020f4f356 > --- /dev/null > +++ b/Documentation/devicetree/bindings/arm/ep93xx.yaml Why is this in arm/ directory? Isn't it a clock controller? > @@ -0,0 +1,102 @@ > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/arm/ep93xx.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Cirrus Logick EP93xx device tree bindings > + > +description: |+ > + The EP93xx SoC is a ARMv4T-based with 200 MHz ARM9 CPU. > + > +maintainers: > + - Hartley Sweeten <hsweeten@visionengravers.com> > + - Alexander Sverdlin <alexander.sverdlin@gmail.com> > + - Nikita Shubin <nikita.shubin@maquefel.me> > + > +properties: > + $nodename: > + const: '/' > + compatible: > + oneOf: > + - description: The TS-7250 is a compact, full-featured Single Board Computer (SBC) > + based upon the Cirrus EP9302 ARM9 CPU. > + items: > + - const: technologic,ts7250 > + - const: liebherr,bk3 > + - const: cirrus,ep9301 > + - const: cirrus,edb9302 > + > + soc: > + type: object > + patternProperties: > + "^.*syscon@80930000$": > + type: object > + properties: > + compatible: > + items: > + - const: cirrus,ep9301-syscon > + - const: syscon > + - const: simple-mfd Is there a reason it needs to be a syscon? Or a simple-mfd? > + ep9301-reboot: > + type: object > + properties: > + compatible: > + const: cirrus,ep9301-reboot > + required: > + - compatible > + - reg > + - '#clock-cells' > + - ep9301-reboot > + > + "^.*timer@80810000$": > + type: object > + properties: > + compatible: > + const: cirrus,ep9301-timer > + > + required: > + - syscon@80930000 > + - timer@80810000 > + > +required: > + - compatible > + - soc > + > +additionalProperties: true > + > +examples: > + - | > + / { > + compatible = "technologic,ts7250", "cirrus,ep9301"; > + model = "TS-7250 SBC"; > + #address-cells = <1>; > + #size-cells = <1>; > + soc { > + #address-cells = <1>; > + #size-cells = <1>; > + ranges; > + compatible = "simple-bus"; > + > + syscon: syscon@80930000 { > + compatible = "cirrus,ep9301-syscon", > + "syscon", "simple-mfd"; > + reg = <0x80930000 0x1000>; > + #clock-cells = <1>; > + #reset-cells = <1>; > + > + ep9301-reboot { > + compatible = "cirrus,ep9301-reboot"; > + }; > + }; The example should only be the clock controller node. No soc node, or root node. > + > + timer: timer@80810000 { > + compatible = "cirrus,ep9301-timer"; > + reg = <0x80810000 0x100>; > + interrupt-parent = <&vic1>; > + interrupts = <19>; > + }; > + }; > + }; > + > +...
diff --git a/Documentation/devicetree/bindings/arm/ep93xx.yaml b/Documentation/devicetree/bindings/arm/ep93xx.yaml new file mode 100644 index 000000000000..de7020f4f356 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/ep93xx.yaml @@ -0,0 +1,102 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/arm/ep93xx.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Cirrus Logick EP93xx device tree bindings + +description: |+ + The EP93xx SoC is a ARMv4T-based with 200 MHz ARM9 CPU. + +maintainers: + - Hartley Sweeten <hsweeten@visionengravers.com> + - Alexander Sverdlin <alexander.sverdlin@gmail.com> + - Nikita Shubin <nikita.shubin@maquefel.me> + +properties: + $nodename: + const: '/' + compatible: + oneOf: + - description: The TS-7250 is a compact, full-featured Single Board Computer (SBC) + based upon the Cirrus EP9302 ARM9 CPU. + items: + - const: technologic,ts7250 + - const: liebherr,bk3 + - const: cirrus,ep9301 + - const: cirrus,edb9302 + + soc: + type: object + patternProperties: + "^.*syscon@80930000$": + type: object + properties: + compatible: + items: + - const: cirrus,ep9301-syscon + - const: syscon + - const: simple-mfd + ep9301-reboot: + type: object + properties: + compatible: + const: cirrus,ep9301-reboot + required: + - compatible + - reg + - '#clock-cells' + - ep9301-reboot + + "^.*timer@80810000$": + type: object + properties: + compatible: + const: cirrus,ep9301-timer + + required: + - syscon@80930000 + - timer@80810000 + +required: + - compatible + - soc + +additionalProperties: true + +examples: + - | + / { + compatible = "technologic,ts7250", "cirrus,ep9301"; + model = "TS-7250 SBC"; + #address-cells = <1>; + #size-cells = <1>; + soc { + #address-cells = <1>; + #size-cells = <1>; + ranges; + compatible = "simple-bus"; + + syscon: syscon@80930000 { + compatible = "cirrus,ep9301-syscon", + "syscon", "simple-mfd"; + reg = <0x80930000 0x1000>; + #clock-cells = <1>; + #reset-cells = <1>; + + ep9301-reboot { + compatible = "cirrus,ep9301-reboot"; + }; + }; + + timer: timer@80810000 { + compatible = "cirrus,ep9301-timer"; + reg = <0x80810000 0x100>; + interrupt-parent = <&vic1>; + interrupts = <19>; + }; + }; + }; + +... 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..ad796314fb11 --- /dev/null +++ b/include/dt-bindings/clock/cirrus,ep93xx-clock.h @@ -0,0 +1,53 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef DT_BINDINGS_CIRRUS_EP93XX_CLOCK_H +#define DT_BINDINGS_CIRRUS_EP93XX_CLOCK_H + +#define EP93XX_CLK_XTALI 0 + +#define EP93XX_CLK_PLL1 1 +#define EP93XX_CLK_FCLK 2 +#define EP93XX_CLK_HCLK 3 +#define EP93XX_CLK_PCLK 4 +#define EP93XX_CLK_PLL2 5 + +#define EP93XX_CLK_UART 6 + +#define EP93XX_CLK_UART1 7 +#define EP93XX_CLK_UART2 8 +#define EP93XX_CLK_UART3 9 + +#define EP93XX_CLK_M2M0 10 +#define EP93XX_CLK_M2M1 11 + +#define EP93XX_CLK_M2P0 12 +#define EP93XX_CLK_M2P1 13 +#define EP93XX_CLK_M2P2 14 +#define EP93XX_CLK_M2P3 15 +#define EP93XX_CLK_M2P4 16 +#define EP93XX_CLK_M2P5 17 +#define EP93XX_CLK_M2P6 18 +#define EP93XX_CLK_M2P7 19 +#define EP93XX_CLK_M2P8 20 +#define EP93XX_CLK_M2P9 21 + +#define EP93XX_CLK_SPI 22 + +#define EP93XX_CLK_USB 23 + +#define EP93XX_CLK_ADC 24 +#define EP93XX_CLK_ADC_EN 25 + +#define EP93XX_CLK_KEYPAD 26 + +#define EP93XX_CLK_PWM 27 + +#define EP93XX_CLK_VIDEO 28 + +#define EP93XX_CLK_I2S_MCLK 29 +#define EP93XX_CLK_I2S_SCLK 30 +#define EP93XX_CLK_I2S_LRCLK 31 + + +#define EP93XX_NUM_CLKS (EP93XX_CLK_I2S_LRCLK + 1) + +#endif /* DT_BINDINGS_CIRRUS_EP93XX_CLOCK_H */
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> --- .../devicetree/bindings/arm/ep93xx.yaml | 102 ++++++++++++++++++ .../dt-bindings/clock/cirrus,ep93xx-clock.h | 53 +++++++++ 2 files changed, 155 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/ep93xx.yaml create mode 100644 include/dt-bindings/clock/cirrus,ep93xx-clock.h