lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250814184115.192930-2-biju.das.jz@bp.renesas.com>
Date: Thu, 14 Aug 2025 19:41:05 +0100
From: Biju <biju.das.au@...il.com>
To: Uwe Kleine-König <ukleinek@...nel.org>,
	Rob Herring <robh@...nel.org>,
	Krzysztof Kozlowski <krzk+dt@...nel.org>,
	Conor Dooley <conor+dt@...nel.org>,
	Geert Uytterhoeven <geert+renesas@...der.be>,
	Magnus Damm <magnus.damm@...il.com>
Cc: Biju Das <biju.das.jz@...renesas.com>,
	linux-pwm@...r.kernel.org,
	devicetree@...r.kernel.org,
	linux-kernel@...r.kernel.org,
	linux-renesas-soc@...r.kernel.org,
	Prabhakar Mahadev Lad <prabhakar.mahadev-lad.rj@...renesas.com>,
	Biju Das <biju.das.au@...il.com>
Subject: [PATCH 1/7] dt-bindings: pwm: renesas,rzg2l-gpt: Document RZ/G3E support

From: Biju Das <biju.das.jz@...renesas.com>

Document support for the GPT found on the Renesas RZ/G3E (R9A09G047)
SoC.

The GPT IP on these parts is similar to that on RZ/G2L but supports
only 8 interrupts per channel and has multiple clocks and resets.
Introduce a new compatible string `renesas,r9a09g047-gpt` for RZ/G3E.

Signed-off-by: Biju Das <biju.das.jz@...renesas.com>
---
 .../bindings/pwm/renesas,rzg2l-gpt.yaml       | 525 ++++++++++++------
 1 file changed, 356 insertions(+), 169 deletions(-)

diff --git a/Documentation/devicetree/bindings/pwm/renesas,rzg2l-gpt.yaml b/Documentation/devicetree/bindings/pwm/renesas,rzg2l-gpt.yaml
index 13b807765a30..6250dbb200e7 100644
--- a/Documentation/devicetree/bindings/pwm/renesas,rzg2l-gpt.yaml
+++ b/Documentation/devicetree/bindings/pwm/renesas,rzg2l-gpt.yaml
@@ -58,11 +58,14 @@ description: |
 
 properties:
   compatible:
-    items:
-      - enum:
-          - renesas,r9a07g044-gpt  # RZ/G2{L,LC}
-          - renesas,r9a07g054-gpt  # RZ/V2L
-      - const: renesas,rzg2l-gpt
+    oneOf:
+      - items:
+          - enum:
+              - renesas,r9a07g044-gpt  # RZ/G2{L,LC}
+              - renesas,r9a07g054-gpt  # RZ/V2L
+          - const: renesas,rzg2l-gpt
+
+      - const: renesas,r9a09g047-gpt  # RZ/G3E
 
   reg:
     maxItems: 1
@@ -71,179 +74,327 @@ properties:
     const: 3
 
   interrupts:
-    items:
-      - description: GPT32E0.GTCCRA input capture/compare match
-      - description: GPT32E0.GTCCRB input capture/compare
-      - description: GPT32E0.GTCCRC compare match
-      - description: GPT32E0.GTCCRD compare match
-      - description: GPT32E0.GTCCRE compare match
-      - description: GPT32E0.GTCCRF compare match
-      - description: GPT32E0.GTADTRA compare match
-      - description: GPT32E0.GTADTRB compare match
-      - description: GPT32E0.GTCNT overflow/GTPR compare match
-      - description: GPT32E0.GTCNT underflow
-      - description: GPT32E1.GTCCRA input capture/compare match
-      - description: GPT32E1.GTCCRB input capture/compare
-      - description: GPT32E1.GTCCRC compare match
-      - description: GPT32E1.GTCCRD compare match
-      - description: GPT32E1.GTCCRE compare match
-      - description: GPT32E1.GTCCRF compare match
-      - description: GPT32E1.GTADTRA compare match
-      - description: GPT32E1.GTADTRB compare match
-      - description: GPT32E1.GTCNT overflow/GTPR compare match
-      - description: GPT32E1.GTCNT underflow
-      - description: GPT32E2.GTCCRA input capture/compare match
-      - description: GPT32E2.GTCCRB input capture/compare
-      - description: GPT32E2.GTCCRC compare match
-      - description: GPT32E2.GTCCRD compare match
-      - description: GPT32E2.GTCCRE compare match
-      - description: GPT32E2.GTCCRF compare match
-      - description: GPT32E2.GTADTRA compare match
-      - description: GPT32E2.GTADTRB compare match
-      - description: GPT32E2.GTCNT overflow/GTPR compare match
-      - description: GPT32E2.GTCNT underflow
-      - description: GPT32E3.GTCCRA input capture/compare match
-      - description: GPT32E3.GTCCRB input capture/compare
-      - description: GPT32E3.GTCCRC compare match
-      - description: GPT32E3.GTCCRD compare match
-      - description: GPT32E3.GTCCRE compare match
-      - description: GPT32E3.GTCCRF compare match
-      - description: GPT32E3.GTADTRA compare match
-      - description: GPT32E3.GTADTRB compare match
-      - description: GPT32E3.GTCNT overflow/GTPR compare match
-      - description: GPT32E3.GTCNT underflow
-      - description: GPT32E4.GTCCRA input capture/compare match
-      - description: GPT32E4.GTCCRB input capture/compare
-      - description: GPT32E4.GTCCRC compare match
-      - description: GPT32E4.GTCCRD compare match
-      - description: GPT32E4.GTCCRE compare match
-      - description: GPT32E4.GTCCRF compare match
-      - description: GPT32E4.GTADTRA compare match
-      - description: GPT32E4.GTADTRB compare match
-      - description: GPT32E4.GTCNT overflow/GTPR compare match
-      - description: GPT32E4.GTCNT underflow
-      - description: GPT32E5.GTCCRA input capture/compare match
-      - description: GPT32E5.GTCCRB input capture/compare
-      - description: GPT32E5.GTCCRC compare match
-      - description: GPT32E5.GTCCRD compare match
-      - description: GPT32E5.GTCCRE compare match
-      - description: GPT32E5.GTCCRF compare match
-      - description: GPT32E5.GTADTRA compare match
-      - description: GPT32E5.GTADTRB compare match
-      - description: GPT32E5.GTCNT overflow/GTPR compare match
-      - description: GPT32E5.GTCNT underflow
-      - description: GPT32E6.GTCCRA input capture/compare match
-      - description: GPT32E6.GTCCRB input capture/compare
-      - description: GPT32E6.GTCCRC compare match
-      - description: GPT32E6.GTCCRD compare match
-      - description: GPT32E6.GTCCRE compare match
-      - description: GPT32E6.GTCCRF compare match
-      - description: GPT32E6.GTADTRA compare match
-      - description: GPT32E6.GTADTRB compare match
-      - description: GPT32E6.GTCNT overflow/GTPR compare match
-      - description: GPT32E6.GTCNT underflow
-      - description: GPT32E7.GTCCRA input capture/compare match
-      - description: GPT32E7.GTCCRB input capture/compare
-      - description: GPT32E7.GTCCRC compare match
-      - description: GPT32E7.GTCCRD compare match
-      - description: GPT32E7.GTCCRE compare match
-      - description: GPT32E7.GTCCRF compare match
-      - description: GPT32E7.GTADTRA compare match
-      - description: GPT32E7.GTADTRB compare match
-      - description: GPT32E7.GTCNT overflow/GTPR compare match
-      - description: GPT32E7.GTCNT underflow
+    oneOf:
+      - items:
+          - description: GPT32E0.GTCCRA input capture/compare match
+          - description: GPT32E0.GTCCRB input capture/compare
+          - description: GPT32E0.GTCCRC compare match
+          - description: GPT32E0.GTCCRD compare match
+          - description: GPT32E0.GTCCRE compare match
+          - description: GPT32E0.GTCCRF compare match
+          - description: GPT32E0.GTADTRA compare match
+          - description: GPT32E0.GTADTRB compare match
+          - description: GPT32E0.GTCNT overflow/GTPR compare match
+          - description: GPT32E0.GTCNT underflow
+          - description: GPT32E1.GTCCRA input capture/compare match
+          - description: GPT32E1.GTCCRB input capture/compare
+          - description: GPT32E1.GTCCRC compare match
+          - description: GPT32E1.GTCCRD compare match
+          - description: GPT32E1.GTCCRE compare match
+          - description: GPT32E1.GTCCRF compare match
+          - description: GPT32E1.GTADTRA compare match
+          - description: GPT32E1.GTADTRB compare match
+          - description: GPT32E1.GTCNT overflow/GTPR compare match
+          - description: GPT32E1.GTCNT underflow
+          - description: GPT32E2.GTCCRA input capture/compare match
+          - description: GPT32E2.GTCCRB input capture/compare
+          - description: GPT32E2.GTCCRC compare match
+          - description: GPT32E2.GTCCRD compare match
+          - description: GPT32E2.GTCCRE compare match
+          - description: GPT32E2.GTCCRF compare match
+          - description: GPT32E2.GTADTRA compare match
+          - description: GPT32E2.GTADTRB compare match
+          - description: GPT32E2.GTCNT overflow/GTPR compare match
+          - description: GPT32E2.GTCNT underflow
+          - description: GPT32E3.GTCCRA input capture/compare match
+          - description: GPT32E3.GTCCRB input capture/compare
+          - description: GPT32E3.GTCCRC compare match
+          - description: GPT32E3.GTCCRD compare match
+          - description: GPT32E3.GTCCRE compare match
+          - description: GPT32E3.GTCCRF compare match
+          - description: GPT32E3.GTADTRA compare match
+          - description: GPT32E3.GTADTRB compare match
+          - description: GPT32E3.GTCNT overflow/GTPR compare match
+          - description: GPT32E3.GTCNT underflow
+          - description: GPT32E4.GTCCRA input capture/compare match
+          - description: GPT32E4.GTCCRB input capture/compare
+          - description: GPT32E4.GTCCRC compare match
+          - description: GPT32E4.GTCCRD compare match
+          - description: GPT32E4.GTCCRE compare match
+          - description: GPT32E4.GTCCRF compare match
+          - description: GPT32E4.GTADTRA compare match
+          - description: GPT32E4.GTADTRB compare match
+          - description: GPT32E4.GTCNT overflow/GTPR compare match
+          - description: GPT32E4.GTCNT underflow
+          - description: GPT32E5.GTCCRA input capture/compare match
+          - description: GPT32E5.GTCCRB input capture/compare
+          - description: GPT32E5.GTCCRC compare match
+          - description: GPT32E5.GTCCRD compare match
+          - description: GPT32E5.GTCCRE compare match
+          - description: GPT32E5.GTCCRF compare match
+          - description: GPT32E5.GTADTRA compare match
+          - description: GPT32E5.GTADTRB compare match
+          - description: GPT32E5.GTCNT overflow/GTPR compare match
+          - description: GPT32E5.GTCNT underflow
+          - description: GPT32E6.GTCCRA input capture/compare match
+          - description: GPT32E6.GTCCRB input capture/compare
+          - description: GPT32E6.GTCCRC compare match
+          - description: GPT32E6.GTCCRD compare match
+          - description: GPT32E6.GTCCRE compare match
+          - description: GPT32E6.GTCCRF compare match
+          - description: GPT32E6.GTADTRA compare match
+          - description: GPT32E6.GTADTRB compare match
+          - description: GPT32E6.GTCNT overflow/GTPR compare match
+          - description: GPT32E6.GTCNT underflow
+          - description: GPT32E7.GTCCRA input capture/compare match
+          - description: GPT32E7.GTCCRB input capture/compare
+          - description: GPT32E7.GTCCRC compare match
+          - description: GPT32E7.GTCCRD compare match
+          - description: GPT32E7.GTCCRE compare match
+          - description: GPT32E7.GTCCRF compare match
+          - description: GPT32E7.GTADTRA compare match
+          - description: GPT32E7.GTADTRB compare match
+          - description: GPT32E7.GTCNT overflow/GTPR compare match
+          - description: GPT32E7.GTCNT underflow
+      - items:
+          - description: Input capture/compare match of the GTCCRA for channel 0 and 8
+          - description: Input capture/compare match of the GTCCRB for channel 0 and 8
+          - description: Compare match with the GTCCRC for channel 0 and 8
+          - description: Compare match with the GTCCRD for channel 0 and 8
+          - description: Compare match with the GTCCRE for channel 0 and 8
+          - description: Compare match with the GTCCRF for channel 0 and 8
+          - description: A and B both high interrupt for channel 0 and 8
+          - description: A and B both low interrupt for channel 0 and 8
+          - description: Input capture/compare match of the GTCCRA for channel 1 and 9
+          - description: Input capture/compare match of the GTCCRB for channel 1 and 9
+          - description: Compare match with the GTCCRC for channel 1 and 9
+          - description: Compare match with the GTCCRD for channel 1 and 9
+          - description: Compare match with the GTCCRE for channel 1 and 9
+          - description: Compare match with the GTCCRF for channel 1 and 9
+          - description: A and B both high interrupt for channel 1 and 9
+          - description: A and B both low interrupt for channel 1 and 9
+          - description: Input capture/compare match of the GTCCRA for channel 2 and 10
+          - description: Input capture/compare match of the GTCCRB for channel 2 and 10
+          - description: Compare match with the GTCCRC for channel 2 and 10
+          - description: Compare match with the GTCCRD for channel 2 and 10
+          - description: Compare match with the GTCCRE for channel 2 and 10
+          - description: Compare match with the GTCCRF for channel 2 and 10
+          - description: A and B both high interrupt for channel 2 and 10
+          - description: A and B both low interrupt for channel 2 and 10
+          - description: Input capture/compare match of the GTCCRA for channel 3 and 11
+          - description: Input capture/compare match of the GTCCRB for channel 3 and 11
+          - description: Compare match with the GTCCRC for channel 3 and 11
+          - description: Compare match with the GTCCRD for channel 3 and 11
+          - description: Compare match with the GTCCRE for channel 3 and 11
+          - description: Compare match with the GTCCRF for channel 3 and 11
+          - description: A and B both high interrupt for channel 3 and 11
+          - description: A and B both low interrupt for channel 3 and 11
+          - description: Input capture/compare match of the GTCCRA for channel 4 and 12
+          - description: Input capture/compare match of the GTCCRB for channel 4 and 12
+          - description: Compare match with the GTCCRC for channel 4 and 12
+          - description: Compare match with the GTCCRD for channel 4 and 12
+          - description: Compare match with the GTCCRE for channel 4 and 12
+          - description: Compare match with the GTCCRF for channel 4 and 12
+          - description: A and B both high interrupt for channel 4 and 12
+          - description: A and B both low interrupt for channel 4 and 12
+          - description: Input capture/compare match of the GTCCRA for channel 5 and 13
+          - description: Input capture/compare match of the GTCCRB for channel 5 and 13
+          - description: Compare match with the GTCCRC for channel 5 and 13
+          - description: Compare match with the GTCCRD for channel 5 and 13
+          - description: Compare match with the GTCCRE for channel 5 and 13
+          - description: Compare match with the GTCCRF for channel 5 and 13
+          - description: A and B both high interrupt for channel 5 and 13
+          - description: A and B both low interrupt for channel 5 and 13
+          - description: Input capture/compare match of the GTCCRA for channel 6 and 14
+          - description: Input capture/compare match of the GTCCRB for channel 6 and 14
+          - description: Compare match with the GTCCRC for channel 6 and 14
+          - description: Compare match with the GTCCRD for channel 6 and 14
+          - description: Compare match with the GTCCRE for channel 6 and 14
+          - description: Compare match with the GTCCRF for channel 6 and 14
+          - description: A and B both high interrupt for channel 6 and 14
+          - description: A and B both low interrupt for channel 6 and 14
+          - description: Input capture/compare match of the GTCCRA for channel 7 and 15
+          - description: Input capture/compare match of the GTCCRB for channel 7 and 15
+          - description: Compare match with the GTCCRC for channel 7 and 15
+          - description: Compare match with the GTCCRD for channel 7 and 15
+          - description: Compare match with the GTCCRE for channel 7 and 15
+          - description: Compare match with the GTCCRF for channel 7 and 15
+          - description: A and B both high interrupt for channel 7 and 15
+          - description: A and B both low interrupt for channel 7 and 15
 
   interrupt-names:
-    items:
-      - const: ccmpa0
-      - const: ccmpb0
-      - const: cmpc0
-      - const: cmpd0
-      - const: cmpe0
-      - const: cmpf0
-      - const: adtrga0
-      - const: adtrgb0
-      - const: ovf0
-      - const: unf0
-      - const: ccmpa1
-      - const: ccmpb1
-      - const: cmpc1
-      - const: cmpd1
-      - const: cmpe1
-      - const: cmpf1
-      - const: adtrga1
-      - const: adtrgb1
-      - const: ovf1
-      - const: unf1
-      - const: ccmpa2
-      - const: ccmpb2
-      - const: cmpc2
-      - const: cmpd2
-      - const: cmpe2
-      - const: cmpf2
-      - const: adtrga2
-      - const: adtrgb2
-      - const: ovf2
-      - const: unf2
-      - const: ccmpa3
-      - const: ccmpb3
-      - const: cmpc3
-      - const: cmpd3
-      - const: cmpe3
-      - const: cmpf3
-      - const: adtrga3
-      - const: adtrgb3
-      - const: ovf3
-      - const: unf3
-      - const: ccmpa4
-      - const: ccmpb4
-      - const: cmpc4
-      - const: cmpd4
-      - const: cmpe4
-      - const: cmpf4
-      - const: adtrga4
-      - const: adtrgb4
-      - const: ovf4
-      - const: unf4
-      - const: ccmpa5
-      - const: ccmpb5
-      - const: cmpc5
-      - const: cmpd5
-      - const: cmpe5
-      - const: cmpf5
-      - const: adtrga5
-      - const: adtrgb5
-      - const: ovf5
-      - const: unf5
-      - const: ccmpa6
-      - const: ccmpb6
-      - const: cmpc6
-      - const: cmpd6
-      - const: cmpe6
-      - const: cmpf6
-      - const: adtrga6
-      - const: adtrgb6
-      - const: ovf6
-      - const: unf6
-      - const: ccmpa7
-      - const: ccmpb7
-      - const: cmpc7
-      - const: cmpd7
-      - const: cmpe7
-      - const: cmpf7
-      - const: adtrga7
-      - const: adtrgb7
-      - const: ovf7
-      - const: unf7
+    oneOf:
+      - items:
+          - const: ccmpa0
+          - const: ccmpb0
+          - const: cmpc0
+          - const: cmpd0
+          - const: cmpe0
+          - const: cmpf0
+          - const: adtrga0
+          - const: adtrgb0
+          - const: ovf0
+          - const: unf0
+          - const: ccmpa1
+          - const: ccmpb1
+          - const: cmpc1
+          - const: cmpd1
+          - const: cmpe1
+          - const: cmpf1
+          - const: adtrga1
+          - const: adtrgb1
+          - const: ovf1
+          - const: unf1
+          - const: ccmpa2
+          - const: ccmpb2
+          - const: cmpc2
+          - const: cmpd2
+          - const: cmpe2
+          - const: cmpf2
+          - const: adtrga2
+          - const: adtrgb2
+          - const: ovf2
+          - const: unf2
+          - const: ccmpa3
+          - const: ccmpb3
+          - const: cmpc3
+          - const: cmpd3
+          - const: cmpe3
+          - const: cmpf3
+          - const: adtrga3
+          - const: adtrgb3
+          - const: ovf3
+          - const: unf3
+          - const: ccmpa4
+          - const: ccmpb4
+          - const: cmpc4
+          - const: cmpd4
+          - const: cmpe4
+          - const: cmpf4
+          - const: adtrga4
+          - const: adtrgb4
+          - const: ovf4
+          - const: unf4
+          - const: ccmpa5
+          - const: ccmpb5
+          - const: cmpc5
+          - const: cmpd5
+          - const: cmpe5
+          - const: cmpf5
+          - const: adtrga5
+          - const: adtrgb5
+          - const: ovf5
+          - const: unf5
+          - const: ccmpa6
+          - const: ccmpb6
+          - const: cmpc6
+          - const: cmpd6
+          - const: cmpe6
+          - const: cmpf6
+          - const: adtrga6
+          - const: adtrgb6
+          - const: ovf6
+          - const: unf6
+          - const: ccmpa7
+          - const: ccmpb7
+          - const: cmpc7
+          - const: cmpd7
+          - const: cmpe7
+          - const: cmpf7
+          - const: adtrga7
+          - const: adtrgb7
+          - const: ovf7
+          - const: unf7
+      - items:
+          - const: gtcia0
+          - const: gtcib0
+          - const: gtcic0
+          - const: gtcid0
+          - const: gtcie0
+          - const: gtcif0
+          - const: gtcih0
+          - const: gtcil0
+          - const: gtcia1
+          - const: gtcib1
+          - const: gtcic1
+          - const: gtcid1
+          - const: gtcie1
+          - const: gtcif1
+          - const: gtcih1
+          - const: gtcil1
+          - const: gtcia2
+          - const: gtcib2
+          - const: gtcic2
+          - const: gtcid2
+          - const: gtcie2
+          - const: gtcif2
+          - const: gtcih2
+          - const: gtcil2
+          - const: gtcia3
+          - const: gtcib3
+          - const: gtcic3
+          - const: gtcid3
+          - const: gtcie3
+          - const: gtcif3
+          - const: gtcih3
+          - const: gtcil3
+          - const: gtcia4
+          - const: gtcib4
+          - const: gtcic4
+          - const: gtcid4
+          - const: gtcie4
+          - const: gtcif4
+          - const: gtcih4
+          - const: gtcil4
+          - const: gtcia5
+          - const: gtcib5
+          - const: gtcic5
+          - const: gtcid5
+          - const: gtcie5
+          - const: gtcif5
+          - const: gtcih5
+          - const: gtcil5
+          - const: gtcia6
+          - const: gtcib6
+          - const: gtcic6
+          - const: gtcid6
+          - const: gtcie6
+          - const: gtcif6
+          - const: gtcih6
+          - const: gtcil6
+          - const: gtcia7
+          - const: gtcib7
+          - const: gtcic7
+          - const: gtcid7
+          - const: gtcie7
+          - const: gtcif7
+          - const: gtcih7
+          - const: gtcil7
 
   clocks:
-    maxItems: 1
+    items:
+      - description: Core clock (PCLKD)
+      - description: Bus clock (PCLKA)
+    minItems: 1
+
+  clock-names:
+    items:
+      - const: core
+      - const: bus
 
   power-domains:
     maxItems: 1
 
   resets:
-    maxItems: 1
+    items:
+      - description: Reset for bus clock (PCLKA/PCLKD)
+      - description: Reset for core clock (PCLKD)
+    minItems: 1
+
+  reset-names:
+    items:
+      - const: rst_p
+      - const: rst_s
 
 required:
   - compatible
@@ -257,6 +408,42 @@ required:
 allOf:
   - $ref: pwm.yaml#
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,r9a09g047-gpt
+    then:
+      properties:
+        clocks:
+          minItems: 2
+        resets:
+          minItems: 2
+        interrupts:
+          maxItems: 64
+        interrupt-names:
+          maxItems: 64
+
+      required:
+        - clock-names
+        - reset-names
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,rzg2l-gpt
+    then:
+      properties:
+        clocks:
+          maxItems: 1
+        resets:
+          maxItems: 1
+        interrupts:
+          minItems: 80
+        interrupt-names:
+          minItems: 80
+
 additionalProperties: false
 
 examples:
-- 
2.43.0


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ