[PATCH v4 03/42] dt-bindings: clock: Add Cirrus EP93xx

From: Nikita Shubin via B4 Relay
Date: Fri Sep 15 2023 - 04:12:18 EST


From: Nikita Shubin <nikita.shubin@xxxxxxxxxxx>

Add device tree bindings for the Cirrus Logic EP93xx clock block
used in these SoCs.

Signed-off-by: Nikita Shubin <nikita.shubin@xxxxxxxxxxx>
---
.../bindings/clock/cirrus,ep9301-clk.yaml | 46 ++++++++++++++++++++++
include/dt-bindings/clock/cirrus,ep9301-clk.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@xxxxxxxxxxx>
+ - Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx>
+
+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,ep9301-clk.h b/include/dt-bindings/clock/cirrus,ep9301-clk.h
new file mode 100644
index 000000000000..3cd053c0fdea
--- /dev/null
+++ b/include/dt-bindings/clock/cirrus,ep9301-clk.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 */

--
2.39.2