* [PATCH] dt-bindings: clock: Convert HiSilicon clocks to DT schema
@ 2026-10-01 21:20 Rob Herring (Arm)
2026-10-02 9:13 ` sashiko-bot
2026-10-08 11:54 ` Wei Xu
0 siblings, 2 replies; 4+ messages in thread
From: Rob Herring (Arm) @ 2026-10-01 21:20 UTC (permalink / raw)
To: Stephen Boyd, Brian Masney, Jerome Brunet, Krzysztof Kozlowski,
Conor Dooley, Wei Xu
Cc: linux-clk, devicetree, linux-kernel
Convert the HiSilicon Hi6220/Hi3660/Hi3670 clock bindings to DT schema
format. Rearrange the binding documents splitting out the stub clock
binding from everything else.
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
---
.../bindings/clock/hi3660-clock.txt | 47 -----------------
.../bindings/clock/hi3670-clock.txt | 43 ---------------
.../bindings/clock/hi6220-clock.txt | 52 -------------------
.../bindings/clock/hisilicon,clocks.yaml | 51 ++++++++++++++++++
.../clock/hisilicon,hi6220-stub-clk.yaml | 49 +++++++++++++++++
5 files changed, 100 insertions(+), 142 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/clock/hi3660-clock.txt
delete mode 100644 Documentation/devicetree/bindings/clock/hi3670-clock.txt
delete mode 100644 Documentation/devicetree/bindings/clock/hi6220-clock.txt
create mode 100644 Documentation/devicetree/bindings/clock/hisilicon,clocks.yaml
create mode 100644 Documentation/devicetree/bindings/clock/hisilicon,hi6220-stub-clk.yaml
diff --git a/Documentation/devicetree/bindings/clock/hi3660-clock.txt b/Documentation/devicetree/bindings/clock/hi3660-clock.txt
deleted file mode 100644
index 946da7cee54f..000000000000
--- a/Documentation/devicetree/bindings/clock/hi3660-clock.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-* Hisilicon Hi3660 Clock Controller
-
-The Hi3660 clock controller generates and supplies clock to various
-controllers within the Hi3660 SoC.
-
-Required Properties:
-
-- compatible: the compatible should be one of the following strings to
- indicate the clock controller functionality.
-
- - "hisilicon,hi3660-crgctrl"
- - "hisilicon,hi3660-pctrl"
- - "hisilicon,hi3660-pmuctrl"
- - "hisilicon,hi3660-sctrl"
- - "hisilicon,hi3660-iomcu"
- - "hisilicon,hi3660-stub-clk"
-
-- reg: physical base address of the controller and length of memory mapped
- region.
-
-- #clock-cells: should be 1.
-
-Optional Properties:
-
-- mboxes: Phandle to the mailbox for sending message to MCU.
- (See: ../mailbox/hisilicon,hi3660-mailbox.txt for more info)
-
-Each clock is assigned an identifier and client nodes use this identifier
-to specify the clock which they consume.
-
-All these identifier could be found in <dt-bindings/clock/hi3660-clock.h>.
-
-Examples:
- crg_ctrl: clock-controller@fff35000 {
- compatible = "hisilicon,hi3660-crgctrl", "syscon";
- reg = <0x0 0xfff35000 0x0 0x1000>;
- #clock-cells = <1>;
- };
-
- uart0: serial@fdf02000 {
- compatible = "arm,pl011", "arm,primecell";
- reg = <0x0 0xfdf02000 0x0 0x1000>;
- interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&crg_ctrl HI3660_CLK_MUX_UART0>,
- <&crg_ctrl HI3660_PCLK>;
- clock-names = "uartclk", "apb_pclk";
- };
diff --git a/Documentation/devicetree/bindings/clock/hi3670-clock.txt b/Documentation/devicetree/bindings/clock/hi3670-clock.txt
deleted file mode 100644
index 66f3697eca78..000000000000
--- a/Documentation/devicetree/bindings/clock/hi3670-clock.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-* Hisilicon Hi3670 Clock Controller
-
-The Hi3670 clock controller generates and supplies clock to various
-controllers within the Hi3670 SoC.
-
-Required Properties:
-
-- compatible: the compatible should be one of the following strings to
- indicate the clock controller functionality.
-
- - "hisilicon,hi3670-crgctrl"
- - "hisilicon,hi3670-pctrl"
- - "hisilicon,hi3670-pmuctrl"
- - "hisilicon,hi3670-sctrl"
- - "hisilicon,hi3670-iomcu"
- - "hisilicon,hi3670-media1-crg"
- - "hisilicon,hi3670-media2-crg"
-
-- reg: physical base address of the controller and length of memory mapped
- region.
-
-- #clock-cells: should be 1.
-
-Each clock is assigned an identifier and client nodes use this identifier
-to specify the clock which they consume.
-
-All these identifier could be found in <dt-bindings/clock/hi3670-clock.h>.
-
-Examples:
- crg_ctrl: clock-controller@fff35000 {
- compatible = "hisilicon,hi3670-crgctrl", "syscon";
- reg = <0x0 0xfff35000 0x0 0x1000>;
- #clock-cells = <1>;
- };
-
- uart0: serial@fdf02000 {
- compatible = "arm,pl011", "arm,primecell";
- reg = <0x0 0xfdf02000 0x0 0x1000>;
- interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&crg_ctrl HI3670_CLK_GATE_UART0>,
- <&crg_ctrl HI3670_PCLK>;
- clock-names = "uartclk", "apb_pclk";
- };
diff --git a/Documentation/devicetree/bindings/clock/hi6220-clock.txt b/Documentation/devicetree/bindings/clock/hi6220-clock.txt
deleted file mode 100644
index 17ac4a3dd26a..000000000000
--- a/Documentation/devicetree/bindings/clock/hi6220-clock.txt
+++ /dev/null
@@ -1,52 +0,0 @@
-* Hisilicon Hi6220 Clock Controller
-
-Clock control registers reside in different Hi6220 system controllers,
-please refer the following document to know more about the binding rules
-for these system controllers:
-
-Documentation/devicetree/bindings/arm/hisilicon/hisilicon.yaml
-
-Required Properties:
-
-- compatible: the compatible should be one of the following strings to
- indicate the clock controller functionality.
-
- - "hisilicon,hi6220-acpu-sctrl"
- - "hisilicon,hi6220-aoctrl"
- - "hisilicon,hi6220-sysctrl"
- - "hisilicon,hi6220-mediactrl"
- - "hisilicon,hi6220-pmctrl"
- - "hisilicon,hi6220-stub-clk"
-
-- reg: physical base address of the controller and length of memory mapped
- region.
-
-- #clock-cells: should be 1.
-
-Optional Properties:
-
-- hisilicon,hi6220-clk-sram: phandle to the syscon managing the SoC internal sram;
- the driver need use the sram to pass parameters for frequency change.
-
-- mboxes: use the label reference for the mailbox as the first parameter, the
- second parameter is the channel number.
-
-Example 1:
- sys_ctrl: sys_ctrl@f7030000 {
- compatible = "hisilicon,hi6220-sysctrl", "syscon";
- reg = <0x0 0xf7030000 0x0 0x2000>;
- #clock-cells = <1>;
- };
-
-Example 2:
- stub_clock: stub_clock {
- compatible = "hisilicon,hi6220-stub-clk";
- hisilicon,hi6220-clk-sram = <&sram>;
- #clock-cells = <1>;
- mboxes = <&mailbox 1>;
- };
-
-Each clock is assigned an identifier and client nodes use this identifier
-to specify the clock which they consume.
-
-All these identifier could be found in <dt-bindings/clock/hi6220-clock.h>.
diff --git a/Documentation/devicetree/bindings/clock/hisilicon,clocks.yaml b/Documentation/devicetree/bindings/clock/hisilicon,clocks.yaml
new file mode 100644
index 000000000000..345c6d0e7a13
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/hisilicon,clocks.yaml
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/hisilicon,clocks.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Hisilicon Hi6220/Hi3660/Hi3670 Clock Controllers
+
+maintainers:
+ - Wei Xu <xuwei5@hisilicon.com>
+
+description: >
+ The Hi3670 clock controller generates and supplies clock to various
+ controllers within the Hi3670 SoC.
+
+ All these identifiers can be found in:
+ dt-bindings/clock/hi3660-clock.h.
+ dt-bindings/clock/hi3670-clock.h.
+ dt-bindings/clock/hi6220-clock.h.
+
+properties:
+ compatible:
+ items:
+ - enum:
+ - hisilicon,hi3660-crgctrl
+ - hisilicon,hi3660-pctrl
+ - hisilicon,hi3660-pmuctrl
+ - hisilicon,hi3660-sctrl
+ - hisilicon,hi3660-iomcu
+ - hisilicon,hi3670-crgctrl
+ - hisilicon,hi3670-pctrl
+ - hisilicon,hi3670-pmuctrl
+ - hisilicon,hi3670-sctrl
+ - hisilicon,hi3670-iomcu
+ - hisilicon,hi3670-media1-crg
+ - hisilicon,hi3670-media2-crg
+ - hisilicon,hi6220-acpu-sctrl
+ - const: syscon
+
+ reg:
+ maxItems: 1
+
+ '#clock-cells':
+ const: 1
+
+required:
+ - compatible
+ - reg
+ - '#clock-cells'
+
+additionalProperties: false
diff --git a/Documentation/devicetree/bindings/clock/hisilicon,hi6220-stub-clk.yaml b/Documentation/devicetree/bindings/clock/hisilicon,hi6220-stub-clk.yaml
new file mode 100644
index 000000000000..4dd6a01bfd9d
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/hisilicon,hi6220-stub-clk.yaml
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/hisilicon,hi6220-stub-clk.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Hisilicon Stub Clock Controller
+
+maintainers:
+ - Wei Xu <xuwei5@hisilicon.com>
+
+description: >
+ Each clock is assigned an identifier and client nodes use this identifier
+ to specify the clock which they consume.
+
+ All these identifiers can be found in:
+ dt-bindings/clock/hi3660-clock.h.
+ dt-bindings/clock/hi6220-clock.h.
+
+properties:
+ compatible:
+ enum:
+ - hisilicon,hi3660-stub-clk
+ - hisilicon,hi6220-stub-clk
+
+ reg:
+ maxItems: 1
+
+ '#clock-cells':
+ const: 1
+
+ hisilicon,hi6220-clk-sram:
+ description:
+ syscon managing the SoC internal SRAM; driver needs the SRAM to pass
+ parameters for frequency change.
+ $ref: /schemas/types.yaml#/definitions/phandle
+
+ mboxes:
+ maxItems: 1
+
+ mbox-names:
+ const: mbox-tx
+
+required:
+ - compatible
+ - '#clock-cells'
+ - mboxes
+
+additionalProperties: false
--
2.53.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] dt-bindings: clock: Convert HiSilicon clocks to DT schema
2026-10-01 21:20 [PATCH] dt-bindings: clock: Convert HiSilicon clocks to DT schema Rob Herring (Arm)
@ 2026-10-02 9:13 ` sashiko-bot
2026-10-02 14:20 ` Rob Herring
2026-10-08 11:54 ` Wei Xu
1 sibling, 1 reply; 4+ messages in thread
From: sashiko-bot @ 2026-10-02 9:13 UTC (permalink / raw)
To: Rob Herring (Arm); +Cc: linux-clk, robh, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] dt-bindings: missing if-then constraints for stub clock properties
- [Low] dt-bindings: YAML conversion dropped all DT examples
--
commit 9d6ccc9389906ef23ff428ed84de04603566232a
Author: Rob Herring (Arm) <robh@kernel.org>
Date: Thu Oct 1 21:20:48 2026 +0000
dt-bindings: clock: Convert HiSilicon clocks to DT schema
This commit converts the HiSilicon Hi6220, Hi3660, and Hi3670 clock
bindings from legacy text format to YAML DT schema format. It also
splits out the stub clock binding into its own standalone document.
> diff --git a/Documentation/devicetree/bindings/clock/hisilicon,clocks.yaml b/Documentation/devicetree/bindings/clock/hisilicon,clocks.yaml
> new file mode 100644
> index 0000000000000..345c6d0e7a134
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/hisilicon,clocks.yaml
[ ... ]
> +required:
> + - compatible
> + - reg
> + - '#clock-cells'
> +
> +additionalProperties: false
[Severity: Low]
Were the device tree examples intentionally omitted during the conversion?
The original hi3660-clock.txt and hi3670-clock.txt bindings included example
nodes, but they have been dropped entirely here. Running make dt_binding_check
will only validate the schema syntax itself, but without an examples block, it
will not validate any real configurations. This circumvents the primary
self-testing mechanism of the schema conversion.
> diff --git a/Documentation/devicetree/bindings/clock/hisilicon,hi6220-stub-clk.yaml b/Documentation/devicetree/bindings/clock/hisilicon,hi6220-stub-clk.yaml
> new file mode 100644
> index 0000000000000..4dd6a01bfd9db
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/hisilicon,hi6220-stub-clk.yaml
[ ... ]
> +required:
> + - compatible
> + - '#clock-cells'
> + - mboxes
[Severity: Medium]
Should there be conditional (if-then) constraints here to enforce
hardware-specific requirements?
The schema groups hisilicon,hi3660-stub-clk and hisilicon,hi6220-stub-clk,
but lacks variant-specific checks. Without conditional constraints, schema
validation will silently pass incomplete configurations that will later
cause the drivers to fail during probe.
For instance, the hi3660 driver unequivocally requires the reg property:
drivers/clk/hisilicon/clk-hi3660-stub.c:hi3660_stub_clk_probe() {
...
freq_reg = devm_platform_ioremap_resource(pdev, 0);
if (IS_ERR(freq_reg))
return PTR_ERR(freq_reg);
...
}
Similarly, the hi6220 driver unequivocally requires the
hisilicon,hi6220-clk-sram property:
drivers/clk/hisilicon/clk-hi6220-stub.c:hi6220_stub_clk_probe() {
...
stub_clk->dfs_map = syscon_regmap_lookup_by_phandle(np,
"hisilicon,hi6220-clk-sram");
if (IS_ERR(stub_clk->dfs_map)) {
dev_err(dev, "failed to get sram regmap\n");
return PTR_ERR(stub_clk->dfs_map);
}
...
}
> +
> +additionalProperties: false
[Severity: Low]
Just as with the hisilicon,clocks.yaml file, the examples from the original
hi6220-clock.txt bindings were completely dropped here. Is it possible to
restore the stub_clock example to ensure make dt_binding_check tests a valid
hardware configuration?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261001212051.2227941-1-robh@kernel.org?part=1
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] dt-bindings: clock: Convert HiSilicon clocks to DT schema
2026-10-02 9:13 ` sashiko-bot
@ 2026-10-02 14:20 ` Rob Herring
0 siblings, 0 replies; 4+ messages in thread
From: Rob Herring @ 2026-10-02 14:20 UTC (permalink / raw)
To: sashiko-reviews; +Cc: linux-clk, conor+dt, devicetree
On Fri, Oct 02, 2026 at 09:13:50AM +0000, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
> - [Medium] dt-bindings: missing if-then constraints for stub clock properties
> - [Low] dt-bindings: YAML conversion dropped all DT examples
> --
>
> commit 9d6ccc9389906ef23ff428ed84de04603566232a
> Author: Rob Herring (Arm) <robh@kernel.org>
> Date: Thu Oct 1 21:20:48 2026 +0000
>
> dt-bindings: clock: Convert HiSilicon clocks to DT schema
>
> This commit converts the HiSilicon Hi6220, Hi3660, and Hi3670 clock
> bindings from legacy text format to YAML DT schema format. It also
> splits out the stub clock binding into its own standalone document.
>
> > diff --git a/Documentation/devicetree/bindings/clock/hisilicon,clocks.yaml b/Documentation/devicetree/bindings/clock/hisilicon,clocks.yaml
> > new file mode 100644
> > index 0000000000000..345c6d0e7a134
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/clock/hisilicon,clocks.yaml
>
> [ ... ]
>
> > +required:
> > + - compatible
> > + - reg
> > + - '#clock-cells'
> > +
> > +additionalProperties: false
>
> [Severity: Low]
> Were the device tree examples intentionally omitted during the conversion?
Yes. The binding is trivial.
> The original hi3660-clock.txt and hi3670-clock.txt bindings included example
> nodes, but they have been dropped entirely here. Running make dt_binding_check
> will only validate the schema syntax itself, but without an examples block, it
> will not validate any real configurations. This circumvents the primary
> self-testing mechanism of the schema conversion.
>
> > diff --git a/Documentation/devicetree/bindings/clock/hisilicon,hi6220-stub-clk.yaml b/Documentation/devicetree/bindings/clock/hisilicon,hi6220-stub-clk.yaml
> > new file mode 100644
> > index 0000000000000..4dd6a01bfd9db
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/clock/hisilicon,hi6220-stub-clk.yaml
>
> [ ... ]
>
> > +required:
> > + - compatible
> > + - '#clock-cells'
> > + - mboxes
>
> [Severity: Medium]
> Should there be conditional (if-then) constraints here to enforce
> hardware-specific requirements?
No. These are old, hardly maintained devices with no new platforms
being added. It just doesn't matter here.
Rob
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] dt-bindings: clock: Convert HiSilicon clocks to DT schema
2026-10-01 21:20 [PATCH] dt-bindings: clock: Convert HiSilicon clocks to DT schema Rob Herring (Arm)
2026-10-02 9:13 ` sashiko-bot
@ 2026-10-08 11:54 ` Wei Xu
1 sibling, 0 replies; 4+ messages in thread
From: Wei Xu @ 2026-10-08 11:54 UTC (permalink / raw)
To: Rob Herring (Arm), Stephen Boyd, Brian Masney, Jerome Brunet,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-clk, devicetree, linux-kernel
Hi Rob,
On 2026/10/2 5:20, Rob Herring (Arm) wrote:
> Convert the HiSilicon Hi6220/Hi3660/Hi3670 clock bindings to DT schema
> format. Rearrange the binding documents splitting out the stub clock
> binding from everything else.
>
> Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Thanks!
Fine to add hardware-specific constraints later.
Acked-by: Wei Xu <xuwei5@hisilicon.com>
Best Regards,
Wei
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-10-08 11:54 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-01 21:20 [PATCH] dt-bindings: clock: Convert HiSilicon clocks to DT schema Rob Herring (Arm)
2026-10-02 9:13 ` sashiko-bot
2026-10-02 14:20 ` Rob Herring
2026-10-08 11:54 ` Wei Xu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox