Re: [PATCH 1/8] dt-bindings: clock, reset: Add econet EN751221 bindings

From: Caleb James DeLisle

Date: Wed Mar 04 2026 - 04:16:24 EST



On 04/03/2026 09:39, Krzysztof Kozlowski wrote:
On Tue, Mar 03, 2026 at 07:09:41PM +0000, Caleb James DeLisle wrote:
Add clock and reset bindings for EN751221 as well as
a "chip-scu" which is an additional regmap that is used
by the clock driver as well as others. This split of the
SCU across two register areas is the same as the Airoha
AN758x family.
Please wrap commit message according to Linux coding style / submission
process (neither too early nor over the limit):
https://elixir.bootlin.com/linux/v6.4-rc1/source/Documentation/process/submitting-patches.rst#L597
OK
A nit, subject: drop second/last, redundant "bindings". The
"dt-bindings" prefix is already stating that these are bindings.
See also:
https://elixir.bootlin.com/linux/v6.17-rc3/source/Documentation/devicetree/bindings/submitting-patches.rst#L18
OK
Signed-off-by: Caleb James DeLisle <cjd@xxxxxxxx>
---
.../bindings/clock/airoha,en7523-scu.yaml | 19 ++++++-
.../mips/econet,en751221-chip-scu.yaml | 41 ++++++++++++++++
MAINTAINERS | 3 ++
.../dt-bindings/clock/econet,en751221-scu.h | 15 ++++++
.../dt-bindings/reset/econet,en751221-scu.h | 49 +++++++++++++++++++
5 files changed, 126 insertions(+), 1 deletion(-)
create mode 100644 Documentation/devicetree/bindings/mips/econet,en751221-chip-scu.yaml
create mode 100644 include/dt-bindings/clock/econet,en751221-scu.h
create mode 100644 include/dt-bindings/reset/econet,en751221-scu.h

diff --git a/Documentation/devicetree/bindings/clock/airoha,en7523-scu.yaml b/Documentation/devicetree/bindings/clock/airoha,en7523-scu.yaml
index a8471367175b..e60e54273393 100644
--- a/Documentation/devicetree/bindings/clock/airoha,en7523-scu.yaml
+++ b/Documentation/devicetree/bindings/clock/airoha,en7523-scu.yaml
@@ -32,6 +32,7 @@ properties:
- enum:
- airoha,en7523-scu
- airoha,en7581-scu
+ - econet,en751221-scu
reg:
items:
@@ -67,7 +68,10 @@ allOf:
- if:
properties:
compatible:
- const: airoha,en7581-scu
+ items:
Drop items, it's just enum

+ - enum:
+ - airoha,en7581-scu
+ - econet,en751221-scu
then:
properties:
reg:
@@ -98,3 +102,16 @@ examples:
#reset-cells = <1>;
};
};
+
+ - |
+ soc {
+ #address-cells = <1>;
+ #size-cells = <1>;
No need for new example, especially without any differences. You already
have there two.
OK
+
+ scuclk2: clock-controller@1fb00000 {
+ compatible = "econet,en751221-scu";
+ reg = <0x1fb00000 0x970>;
+ #clock-cells = <1>;
+ #reset-cells = <1>;
+ };
+ };
diff --git a/Documentation/devicetree/bindings/mips/econet,en751221-chip-scu.yaml b/Documentation/devicetree/bindings/mips/econet,en751221-chip-scu.yaml
new file mode 100644
index 000000000000..7c7c8cf8d2a5
--- /dev/null
+++ b/Documentation/devicetree/bindings/mips/econet,en751221-chip-scu.yaml
@@ -0,0 +1,41 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mips/econet,en751221-chip-scu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: EcoNet Chip SCU Controller for EN751221 SoC
+
+maintainers:
+ - Caleb James DeLisle <cjd@xxxxxxxx>
+
+description:
+ The EcoNet chip-scu block provides a configuration interface for clock,
+ io-muxing and other functionalities used by multiple controllers (e.g. clock,
+ pinctrl, ecc) on EN751221 SoC.
+
+properties:
+ compatible:
+ items:
+ - const: econet,en751221-chip-scu
+ - const: syscon
And it does not fit existing syscon bindings file, because ... ?


If you're asking why it needs to be named "econet,en751221-chip-scu" and not just "syscon", it's because the actual clock/scu searches for it by compatible. This is patterned after "airoha,en7581-chip-scu" ( https://lore.kernel.org/20241023-en7581-pinctrl-v9-1-afb0cbcab0ec@xxxxxxxxxx ).

I could drop this file and use "airoha,en7581-chip-scu" in the DT and clk driver, but I do not think it is identical to the actual EN7581 chip scu.

I could also drop the file and add "econet,en751221-chip-scu" as a compatible to airoha,en7581-chip-scu.yaml, but that file lives in /arm and this is a MIPS.

I chose this route because it seemed least hackish, but I would defer to your judgement on the matter.

+
+ reg:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+
+additionalProperties: false
+
+examples:
+ - |
+ soc {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ syscon@1fa20000 {
+ compatible = "econet,en751221-chip-scu", "syscon";
+ reg = <0x1fa20000 0x388>;
+ };
+ };
...

+
+#define EN751221_MAX_CLKS 6
Drop, not a binding.
OK

+
+#endif /* _DT_BINDINGS_CLOCK_ECONET_EN751221_SCU_H_ */
diff --git a/include/dt-bindings/reset/econet,en751221-scu.h b/include/dt-bindings/reset/econet,en751221-scu.h
new file mode 100644


Thank you kindly for the prompt review.

Caleb


Best regards,
Krzysztof