dt-bindings: arm: coresight: Allow funnel clocks
Subsystems (2)
Rob Herring (Arm)
maintainerPATCH 1/1 dt-bindings: arm: coresight: Allow funnel clocks
Some static funnel nodes have APB and AT clocks. Allow one or two clocks and the apb_pclk and atclk clock-names entries.
--- .../bindings/arm/arm,coresight-static-funnel.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+)
Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml +10 -0
@@ -30,6 +30,16 @@ properties: power-domains: maxItems: 1 + clocks: + minItems: 1 + maxItems: 2 + + clock-names: + minItems: 1 + items: + - const: apb_pclk + - const: atclk + label: description: Description of a coresight device.
Signature · 1 line
2.53.0
[email protected]
AI reviewThank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Low] dt-bindings: clock-names schema forbids valid single 'atclk' config --
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] dt-bindings: clock-names schema forbids valid single 'atclk' config --
commit 50eea7a4ef1f09b2ff4cd2b8b69396c108a1c74e
Author: Rob Herring (Arm) <[email protected]>
dt-bindings: arm: coresight: Allow funnel clocks
This commit modifies the arm,coresight-static-funnel schema to allow one or two clocks, adding support for the apb_pclk and atclk properties.
Quoted 6 lines
Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml +0
-0@@ -30,6 +30,16 @@ properties: power-domains: maxItems: 1
Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml properties: · line 41
Quoted 10 lines
Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml +9
-0+ clocks: + minItems: 1 + maxItems: 2 + + clock-names: + minItems: 1 + items: + - const: apb_pclk + - const: atclk
[Severity: Low]
Does this positional item list unintentionally forbid valid single-clock configurations where only atclk is present?
By specifying items as a rigid positional list, the dt-schema validation strictly enforces that if only one clock is provided, its name must exactly match apb_pclk.
If a device tree node for arm,coresight-static-funnel provides a single clock named atclk, it will fail make dtbs_check. This seems to conflict with hardware configurations where static funnels lack APB registers and may only require an ATB trace clock. The coresight driver itself appears to fully support this configuration, as coresight_get_enable_clocks() gracefully handles an absent apb_pclk.
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1
Rob Herring
maintainerQuoted 33 lines · On Mon, Sep 21, 2026 at 11:37:43PM +0000, [email protected] wrote:
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] dt-bindings: clock-names schema forbids valid single 'atclk' config --commit
50eea7a4ef1f09b2ff4cd2b8b69396c108a1c74e
Author: Rob Herring (Arm) <[email protected]>dt-bindings: arm: coresight: Allow funnel clocks
This commit modifies the arm,coresight-static-funnel schema to allow one or two clocks, adding support for the
apb_pclkand atclk properties.Quoted 6 lines
Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml +0
-0@@ -30,6 +30,16 @@ properties: power-domains: maxItems: 1Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml properties: · line 41
Quoted 10 lines
Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml +9
-0+ clocks: + minItems: 1 + maxItems: 2 + + clock-names: + minItems: 1 + items: + - const: apb_pclk + - const: atclk[Severity: Low]
Does this positional item list unintentionally forbid valid single-clock configurations where only atclk is present?
Quoted 3 lines
By specifying items as a rigid positional list, the dt-schema validation strictly enforces that if only one clock is provided, its name must exactly match
apb_pclk.
Or name should be omitted... 'minItems: 1' on clock-names can be dropped when applying.
Quoted 6 lines
If a device tree node for arm,coresight-static-funnel provides a single clock named atclk, it will fail make
dtbs_check. This seems to conflict with hardware configurations where static funnels lack APB registers and may only require an ATB trace clock. The coresight driver itself appears to fully support this configuration, ascoresight_get_enable_clocks()gracefully handles an absentapb_pclk.
There's no such case in tree. This patch is fixing a case we do have in tree.
Rob Herring
maintainerQuoted 34 lines · Rob Herring
Quoted 33 lines · On Mon, Sep 21, 2026 at 11:37:43PM +0000, [email protected] wrote:
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] dt-bindings: clock-names schema forbids valid single 'atclk' config --commit
50eea7a4ef1f09b2ff4cd2b8b69396c108a1c74e
Author: Rob Herring (Arm) <[email protected]>dt-bindings: arm: coresight: Allow funnel clocks
This commit modifies the arm,coresight-static-funnel schema to allow one or two clocks, adding support for the
apb_pclkand atclk properties.Quoted 6 lines
Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml +0
-0@@ -30,6 +30,16 @@ properties: power-domains: maxItems: 1Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml properties: · line 41
Quoted 10 lines
Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml +9
-0+ clocks: + minItems: 1 + maxItems: 2 + + clock-names: + minItems: 1 + items: + - const: apb_pclk + - const: atclk[Severity: Low]
Does this positional item list unintentionally forbid valid single-clock configurations where only atclk is present?
Quoted 6 lines
Quoted 3 lines
By specifying items as a rigid positional list, the dt-schema validation strictly enforces that if only one clock is provided, its name must exactly match
apb_pclk.Or name should be omitted... 'minItems: 1' on clock-names can be dropped when applying.
Actually, this matches all the other coresight bindings. So it should be kept as-is.
Rob
Quoted 9 lines · Rob Herring (Arm)
Some static funnel nodes have APB and AT clocks. Allow one or two clocks and the
apb_pclkand atclk clock-names entries.Assisted-by LLMSigned-off-by Rob Herring (Arm) <[email protected]>--- .../bindings/arm/arm,coresight-static-funnel.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+)
Applied, thanks!
Leo Yan
reviewerHi Rob,
Quoted 17 lines · Rob Herring (Arm)
Some static funnel nodes have APB and AT clocks. Allow one or two clocks and the
apb_pclkand atclk clock-names entries.Assisted-by LLMSigned-off-by Rob Herring (Arm) <[email protected]>--- .../bindings/arm/arm,coresight-static-funnel.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+)Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml +0
-0@@ -30,6 +30,16 @@ properties: power-domains: maxItems: 1
Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml properties: · line 41
Quoted 10 lines
Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml +9
-0+ clocks: + minItems: 1 + maxItems: 2 + + clock-names: + minItems: 1 + items: + - const: apb_pclk + - const: atclk
The question is that a static funnel does not need to program any registers, so in theory it should only need atclk as the module's core clock, but not the APB programming clock (apb_pclk).
Maybe I did not get this right when I initially enabled the static funnel in hi3660-coresight.dtsi. We should probably remove pclk from the static funnel node.
clocks:
minItems: 0
maxItems: 1
clock-names:
minItems: 0
items:
- const: atclk
Thanks,
Leo
Rob Herring
maintainerQuoted 35 lines · Leo Yan
Hi Rob,
Quoted 17 lines · Rob Herring (Arm)
Some static funnel nodes have APB and AT clocks. Allow one or two clocks and the
apb_pclkand atclk clock-names entries.Assisted-by LLMSigned-off-by Rob Herring (Arm) <[email protected]>--- .../bindings/arm/arm,coresight-static-funnel.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+)Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml +0
-0@@ -30,6 +30,16 @@ properties: power-domains: maxItems: 1Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml properties: · line 41
Quoted 10 lines
Documentation/devicetree/bindings/arm/arm,coresight-static-funnel.yaml +9
-0+ clocks: + minItems: 1 + maxItems: 2 + + clock-names: + minItems: 1 + items: + - const: apb_pclk + - const: atclkThe question is that a static funnel does not need to program any registers, so in theory it should only need atclk as the module's core clock, but not the APB programming clock (
apb_pclk).
Quoted 3 lines
Maybe I did not get this right when I initially enabled the static funnel in
hi3660-coresight.dtsi. We should probably remove pclk from the static funnel node.
Yes. I suppose in theory it has some clock, but if pclk needed to be enabled, it is shared with all the other coresight components and enabled anyways. And there's no atclk defined, so 'clocks' can just be removed. Can you send a patch to do that, and I'll drop this one.
zynq7000 is even more of a mess I just noticed...
Rob
Leo Yan
reviewerOn Thu, Oct 01, 2026 at 07:04:44AM -0500, Rob Herring wrote:
[...]
Quoted 4 lines
Quoted 4 lines
The question is that a static funnel does not need to program any registers, so in theory it should only need atclk as the module's core clock, but not the APB programming clock (
apb_pclk).
Quoted 8 lines
Quoted 3 lines
Maybe I did not get this right when I initially enabled the static funnel in
hi3660-coresight.dtsi. We should probably remove pclk from the static funnel node.Yes. I suppose in theory it has some clock, but if pclk needed to be enabled, it is shared with all the other coresight components and enabled anyways. And there's no atclk defined, so 'clocks' can just be removed. Can you send a patch to do that, and I'll drop this one.
Sure, I will prepare a patch for hi3660-coresight.dtsi.
Quoted 1 line
zynq7000 is even more of a mess I just noticed...
Agreed. It should bind to "arm,coresight-dynamic-funnel" instead.
However, I'm afraid the "dbg_trc" and "dbg_apb" clocks are never touched by either the CoreSight driver or the AMBA driver after switching to the dynamic funnel. These clocks should therefore be removed from all CoreSight nodes.
Thanks,
Leo