* [PATCH 0/7] Add RZ/G3E support @ 2025-08-14 18:41 Biju 2025-08-14 18:41 ` [PATCH 1/7] dt-bindings: pwm: renesas,rzg2l-gpt: Document " Biju ` (2 more replies) 0 siblings, 3 replies; 9+ messages in thread From: Biju @ 2025-08-14 18:41 UTC (permalink / raw) To: Uwe Kleine-König, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven, Magnus Damm Cc: Biju Das, linux-pwm, devicetree, linux-kernel, linux-renesas-soc, Prabhakar Mahadev Lad, Biju Das From: Biju Das <biju.das.jz@bp.renesas.com> Add RZ/G3E GPT support. It has multiple clocks and resets compared to RZ/G2L. Also prescale field width and factor for calculating prescale are different. This patch has dependency on [1] [1] https://lore.kernel.org/all/20250814115022.73732-1-biju.das.jz@bp.renesas.com/ Biju Das (7): dt-bindings: pwm: renesas,rzg2l-gpt: Document RZ/G3E support pwm: rzg2l-gpt: Add info variable to struct rzg2l_gpt_chip pwm: rzg2l-gpt: Add prescale_pow_of_two_mult_factor variable to struct rzg2l_gpt_info pwm: rzg2l-gpt: Add calculate_prescale() callback to struct rzg2l_gpt_info pwm: rzg2l-gpt: Add RZ/G3E support arm64: dts: renesas: r9a09g047: Add GPT nodes arm64: dts: renesas: r9a09g047e57-smarc: Enable GPT on carrier board .../bindings/pwm/renesas,rzg2l-gpt.yaml | 525 ++++++++++++------ arch/arm64/boot/dts/renesas/r9a09g047.dtsi | 184 ++++++ .../boot/dts/renesas/r9a09g047e57-smarc.dts | 13 + drivers/pwm/pwm-rzg2l-gpt.c | 93 +++- 4 files changed, 633 insertions(+), 182 deletions(-) -- 2.43.0 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/7] dt-bindings: pwm: renesas,rzg2l-gpt: Document RZ/G3E support 2025-08-14 18:41 [PATCH 0/7] Add RZ/G3E support Biju @ 2025-08-14 18:41 ` Biju 2025-08-19 16:18 ` Tommaso Merciai 2025-08-20 20:29 ` Rob Herring 2025-08-14 18:41 ` [PATCH 6/7] arm64: dts: renesas: r9a09g047: Add GPT nodes Biju 2025-08-14 18:41 ` [PATCH 7/7] arm64: dts: renesas: r9a09g047e57-smarc: Enable GPT on carrier board Biju 2 siblings, 2 replies; 9+ messages in thread From: Biju @ 2025-08-14 18:41 UTC (permalink / raw) To: Uwe Kleine-König, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven, Magnus Damm Cc: Biju Das, linux-pwm, devicetree, linux-kernel, linux-renesas-soc, Prabhakar Mahadev Lad, Biju Das From: Biju Das <biju.das.jz@bp.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@bp.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 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/7] dt-bindings: pwm: renesas,rzg2l-gpt: Document RZ/G3E support 2025-08-14 18:41 ` [PATCH 1/7] dt-bindings: pwm: renesas,rzg2l-gpt: Document " Biju @ 2025-08-19 16:18 ` Tommaso Merciai 2025-08-20 20:29 ` Rob Herring 1 sibling, 0 replies; 9+ messages in thread From: Tommaso Merciai @ 2025-08-19 16:18 UTC (permalink / raw) To: Biju Cc: Uwe Kleine-König, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven, Magnus Damm, Biju Das, linux-pwm, devicetree, linux-kernel, linux-renesas-soc, Prabhakar Mahadev Lad Hi Biju, Thank you for the patch. On Thu, Aug 14, 2025 at 07:41:05PM +0100, Biju wrote: > From: Biju Das <biju.das.jz@bp.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@bp.renesas.com> Reviewed-by: Tommaso Merciai <tommaso.merciai.xr@bp.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 > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/7] dt-bindings: pwm: renesas,rzg2l-gpt: Document RZ/G3E support 2025-08-14 18:41 ` [PATCH 1/7] dt-bindings: pwm: renesas,rzg2l-gpt: Document " Biju 2025-08-19 16:18 ` Tommaso Merciai @ 2025-08-20 20:29 ` Rob Herring 2025-08-21 7:04 ` Biju Das 1 sibling, 1 reply; 9+ messages in thread From: Rob Herring @ 2025-08-20 20:29 UTC (permalink / raw) To: Biju Cc: Uwe Kleine-König, Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven, Magnus Damm, Biju Das, linux-pwm, devicetree, linux-kernel, linux-renesas-soc, Prabhakar Mahadev Lad On Thu, Aug 14, 2025 at 07:41:05PM +0100, Biju wrote: > From: Biju Das <biju.das.jz@bp.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. Doesn't look like a lot in common to me. I think this should be a separate document. > > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> > --- > .../bindings/pwm/renesas,rzg2l-gpt.yaml | 525 ++++++++++++------ > 1 file changed, 356 insertions(+), 169 deletions(-) ^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [PATCH 1/7] dt-bindings: pwm: renesas,rzg2l-gpt: Document RZ/G3E support 2025-08-20 20:29 ` Rob Herring @ 2025-08-21 7:04 ` Biju Das 0 siblings, 0 replies; 9+ messages in thread From: Biju Das @ 2025-08-21 7:04 UTC (permalink / raw) To: Rob Herring, biju.das.au Cc: Uwe Kleine-König, Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven, magnus.damm, linux-pwm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Prabhakar Mahadev Lad Hi Rob, Thanks for the feedback. > -----Original Message----- > From: Rob Herring <robh@kernel.org> > Sent: 20 August 2025 21:29 > Subject: Re: [PATCH 1/7] dt-bindings: pwm: renesas,rzg2l-gpt: Document RZ/G3E support > > On Thu, Aug 14, 2025 at 07:41:05PM +0100, Biju wrote: > > From: Biju Das <biju.das.jz@bp.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. > > Doesn't look like a lot in common to me. I think this should be a separate document. OK, I will describe it in a separate document. Cheers, Biju ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 6/7] arm64: dts: renesas: r9a09g047: Add GPT nodes 2025-08-14 18:41 [PATCH 0/7] Add RZ/G3E support Biju 2025-08-14 18:41 ` [PATCH 1/7] dt-bindings: pwm: renesas,rzg2l-gpt: Document " Biju @ 2025-08-14 18:41 ` Biju 2025-08-19 16:24 ` Tommaso Merciai 2025-08-14 18:41 ` [PATCH 7/7] arm64: dts: renesas: r9a09g047e57-smarc: Enable GPT on carrier board Biju 2 siblings, 1 reply; 9+ messages in thread From: Biju @ 2025-08-14 18:41 UTC (permalink / raw) To: Geert Uytterhoeven, Magnus Damm, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: Biju Das, linux-renesas-soc, devicetree, linux-kernel, Prabhakar Mahadev Lad, Biju Das From: Biju Das <biju.das.jz@bp.renesas.com> The RZ/G3E SoC has 2 GPT's. Add GPT nodes to RZ/G3E ("R9A09G047") SoC DTSI. Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> --- arch/arm64/boot/dts/renesas/r9a09g047.dtsi | 184 +++++++++++++++++++++ 1 file changed, 184 insertions(+) diff --git a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi index eeccd1345f71..0e6867ad112a 100644 --- a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi +++ b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi @@ -552,6 +552,190 @@ channel5 { }; }; + gpt0: pwm@13010000 { + compatible = "renesas,r9a09g047-gpt"; + reg = <0 0x13010000 0 0x10000>; + #pwm-cells = <3>; + interrupts = <GIC_SPI 538 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 546 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 554 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 562 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 570 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 578 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 586 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 594 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 539 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 547 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 555 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 563 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 571 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 579 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 587 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 595 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 540 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 548 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 556 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 564 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 572 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 580 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 588 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 596 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 541 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 549 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 557 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 565 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 573 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 581 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 589 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 597 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 542 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 550 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 558 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 566 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 574 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 582 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 590 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 598 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 543 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 551 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 559 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 567 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 575 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 583 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 591 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 599 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 544 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 552 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 560 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 568 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 576 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 584 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 592 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 600 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 545 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 553 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 561 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 569 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 577 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 585 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 593 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 601 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "gtcia0", "gtcib0", "gtcic0", "gtcid0", + "gtcie0", "gtcif0", "gtcih0", "gtcil0", + "gtcia1", "gtcib1", "gtcic1", "gtcid1", + "gtcie1", "gtcif1", "gtcih1", "gtcil1", + "gtcia2", "gtcib2", "gtcic2", "gtcid2", + "gtcie2", "gtcif2", "gtcih2", "gtcil2", + "gtcia3", "gtcib3", "gtcic3", "gtcid3", + "gtcie3", "gtcif3", "gtcih3", "gtcil3", + "gtcia4", "gtcib4", "gtcic4", "gtcid4", + "gtcie4", "gtcif4", "gtcih4", "gtcil4", + "gtcia5", "gtcib5", "gtcic5", "gtcid5", + "gtcie5", "gtcif5", "gtcih5", "gtcil5", + "gtcia6", "gtcib6", "gtcic6", "gtcid6", + "gtcie6", "gtcif6", "gtcih6", "gtcil6", + "gtcia7", "gtcib7", "gtcic7", "gtcid7", + "gtcie7", "gtcif7", "gtcih7", "gtcil7"; + clocks = <&cpg CPG_CORE R9A09G047_GPT_0_CLKS_GPT>, <&cpg CPG_MOD 0x31>; + clock-names = "core", "bus"; + resets = <&cpg 0x59>, <&cpg 0x5a>; + reset-names = "rst_p", "rst_s"; + power-domains = <&cpg>; + status = "disabled"; + }; + + gpt1: pwm@13020000 { + compatible = "renesas,r9a09g047-gpt"; + reg = <0 0x13020000 0 0x10000>; + #pwm-cells = <3>; + interrupts = <GIC_SPI 602 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 610 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 618 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 626 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 634 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 642 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 650 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 658 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 603 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 611 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 619 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 627 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 635 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 643 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 651 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 659 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 604 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 612 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 620 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 628 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 636 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 644 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 652 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 660 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 605 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 613 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 621 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 629 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 637 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 645 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 653 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 661 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 606 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 614 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 622 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 630 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 638 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 646 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 654 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 662 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 607 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 615 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 623 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 631 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 639 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 647 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 655 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 663 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 608 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 616 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 624 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 632 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 640 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 648 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 656 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 664 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 609 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 617 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 625 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 633 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 641 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 649 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 657 IRQ_TYPE_EDGE_RISING>, + <GIC_SPI 665 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "gtcia0", "gtcib0", "gtcic0", "gtcid0", + "gtcie0", "gtcif0", "gtcih0", "gtcil0", + "gtcia1", "gtcib1", "gtcic1", "gtcid1", + "gtcie1", "gtcif1", "gtcih1", "gtcil1", + "gtcia2", "gtcib2", "gtcic2", "gtcid2", + "gtcie2", "gtcif2", "gtcih2", "gtcil2", + "gtcia3", "gtcib3", "gtcic3", "gtcid3", + "gtcie3", "gtcif3", "gtcih3", "gtcil3", + "gtcia4", "gtcib4", "gtcic4", "gtcid4", + "gtcie4", "gtcif4", "gtcih4", "gtcil4", + "gtcia5", "gtcib5", "gtcic5", "gtcid5", + "gtcie5", "gtcif5", "gtcih5", "gtcil5", + "gtcia6", "gtcib6", "gtcic6", "gtcid6", + "gtcie6", "gtcif6", "gtcih6", "gtcil6", + "gtcia7", "gtcib7", "gtcic7", "gtcid7", + "gtcie7", "gtcif7", "gtcih7", "gtcil7"; + clocks = <&cpg CPG_CORE R9A09G047_GPT_1_CLKS_GPT>, <&cpg CPG_MOD 0x32>; + clock-names = "core", "bus"; + resets = <&cpg 0x5b>, <&cpg 0x5c>; + reset-names = "rst_p", "rst_s"; + power-domains = <&cpg>; + status = "disabled"; + }; + wdt1: watchdog@14400000 { compatible = "renesas,r9a09g047-wdt", "renesas,r9a09g057-wdt"; reg = <0 0x14400000 0 0x400>; -- 2.43.0 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 6/7] arm64: dts: renesas: r9a09g047: Add GPT nodes 2025-08-14 18:41 ` [PATCH 6/7] arm64: dts: renesas: r9a09g047: Add GPT nodes Biju @ 2025-08-19 16:24 ` Tommaso Merciai 0 siblings, 0 replies; 9+ messages in thread From: Tommaso Merciai @ 2025-08-19 16:24 UTC (permalink / raw) To: Biju Cc: Geert Uytterhoeven, Magnus Damm, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Biju Das, linux-renesas-soc, devicetree, linux-kernel, Prabhakar Mahadev Lad Hi Biju, Thank you for your patch. On Thu, Aug 14, 2025 at 07:41:10PM +0100, Biju wrote: > From: Biju Das <biju.das.jz@bp.renesas.com> > > The RZ/G3E SoC has 2 GPT's. Add GPT nodes to RZ/G3E ("R9A09G047") SoC > DTSI. > Reviewed-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> > --- > arch/arm64/boot/dts/renesas/r9a09g047.dtsi | 184 +++++++++++++++++++++ > 1 file changed, 184 insertions(+) > > diff --git a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi > index eeccd1345f71..0e6867ad112a 100644 > --- a/arch/arm64/boot/dts/renesas/r9a09g047.dtsi > +++ b/arch/arm64/boot/dts/renesas/r9a09g047.dtsi > @@ -552,6 +552,190 @@ channel5 { > }; > }; > > + gpt0: pwm@13010000 { > + compatible = "renesas,r9a09g047-gpt"; > + reg = <0 0x13010000 0 0x10000>; > + #pwm-cells = <3>; > + interrupts = <GIC_SPI 538 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 546 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 554 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 562 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 570 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 578 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 586 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 594 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 539 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 547 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 555 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 563 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 571 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 579 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 587 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 595 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 540 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 548 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 556 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 564 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 572 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 580 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 588 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 596 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 541 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 549 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 557 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 565 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 573 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 581 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 589 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 597 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 542 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 550 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 558 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 566 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 574 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 582 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 590 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 598 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 543 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 551 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 559 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 567 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 575 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 583 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 591 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 599 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 544 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 552 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 560 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 568 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 576 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 584 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 592 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 600 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 545 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 553 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 561 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 569 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 577 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 585 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 593 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 601 IRQ_TYPE_EDGE_RISING>; > + interrupt-names = "gtcia0", "gtcib0", "gtcic0", "gtcid0", > + "gtcie0", "gtcif0", "gtcih0", "gtcil0", > + "gtcia1", "gtcib1", "gtcic1", "gtcid1", > + "gtcie1", "gtcif1", "gtcih1", "gtcil1", > + "gtcia2", "gtcib2", "gtcic2", "gtcid2", > + "gtcie2", "gtcif2", "gtcih2", "gtcil2", > + "gtcia3", "gtcib3", "gtcic3", "gtcid3", > + "gtcie3", "gtcif3", "gtcih3", "gtcil3", > + "gtcia4", "gtcib4", "gtcic4", "gtcid4", > + "gtcie4", "gtcif4", "gtcih4", "gtcil4", > + "gtcia5", "gtcib5", "gtcic5", "gtcid5", > + "gtcie5", "gtcif5", "gtcih5", "gtcil5", > + "gtcia6", "gtcib6", "gtcic6", "gtcid6", > + "gtcie6", "gtcif6", "gtcih6", "gtcil6", > + "gtcia7", "gtcib7", "gtcic7", "gtcid7", > + "gtcie7", "gtcif7", "gtcih7", "gtcil7"; > + clocks = <&cpg CPG_CORE R9A09G047_GPT_0_CLKS_GPT>, <&cpg CPG_MOD 0x31>; > + clock-names = "core", "bus"; > + resets = <&cpg 0x59>, <&cpg 0x5a>; > + reset-names = "rst_p", "rst_s"; > + power-domains = <&cpg>; > + status = "disabled"; > + }; > + > + gpt1: pwm@13020000 { > + compatible = "renesas,r9a09g047-gpt"; > + reg = <0 0x13020000 0 0x10000>; > + #pwm-cells = <3>; > + interrupts = <GIC_SPI 602 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 610 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 618 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 626 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 634 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 642 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 650 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 658 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 603 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 611 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 619 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 627 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 635 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 643 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 651 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 659 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 604 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 612 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 620 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 628 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 636 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 644 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 652 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 660 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 605 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 613 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 621 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 629 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 637 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 645 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 653 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 661 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 606 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 614 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 622 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 630 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 638 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 646 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 654 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 662 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 607 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 615 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 623 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 631 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 639 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 647 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 655 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 663 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 608 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 616 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 624 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 632 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 640 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 648 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 656 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 664 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 609 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 617 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 625 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 633 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 641 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 649 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 657 IRQ_TYPE_EDGE_RISING>, > + <GIC_SPI 665 IRQ_TYPE_EDGE_RISING>; > + interrupt-names = "gtcia0", "gtcib0", "gtcic0", "gtcid0", > + "gtcie0", "gtcif0", "gtcih0", "gtcil0", > + "gtcia1", "gtcib1", "gtcic1", "gtcid1", > + "gtcie1", "gtcif1", "gtcih1", "gtcil1", > + "gtcia2", "gtcib2", "gtcic2", "gtcid2", > + "gtcie2", "gtcif2", "gtcih2", "gtcil2", > + "gtcia3", "gtcib3", "gtcic3", "gtcid3", > + "gtcie3", "gtcif3", "gtcih3", "gtcil3", > + "gtcia4", "gtcib4", "gtcic4", "gtcid4", > + "gtcie4", "gtcif4", "gtcih4", "gtcil4", > + "gtcia5", "gtcib5", "gtcic5", "gtcid5", > + "gtcie5", "gtcif5", "gtcih5", "gtcil5", > + "gtcia6", "gtcib6", "gtcic6", "gtcid6", > + "gtcie6", "gtcif6", "gtcih6", "gtcil6", > + "gtcia7", "gtcib7", "gtcic7", "gtcid7", > + "gtcie7", "gtcif7", "gtcih7", "gtcil7"; > + clocks = <&cpg CPG_CORE R9A09G047_GPT_1_CLKS_GPT>, <&cpg CPG_MOD 0x32>; > + clock-names = "core", "bus"; > + resets = <&cpg 0x5b>, <&cpg 0x5c>; > + reset-names = "rst_p", "rst_s"; > + power-domains = <&cpg>; > + status = "disabled"; > + }; > + > wdt1: watchdog@14400000 { > compatible = "renesas,r9a09g047-wdt", "renesas,r9a09g057-wdt"; > reg = <0 0x14400000 0 0x400>; > -- > 2.43.0 > Thanks & Regards, Tommaso ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 7/7] arm64: dts: renesas: r9a09g047e57-smarc: Enable GPT on carrier board 2025-08-14 18:41 [PATCH 0/7] Add RZ/G3E support Biju 2025-08-14 18:41 ` [PATCH 1/7] dt-bindings: pwm: renesas,rzg2l-gpt: Document " Biju 2025-08-14 18:41 ` [PATCH 6/7] arm64: dts: renesas: r9a09g047: Add GPT nodes Biju @ 2025-08-14 18:41 ` Biju 2025-08-19 16:25 ` Tommaso Merciai 2 siblings, 1 reply; 9+ messages in thread From: Biju @ 2025-08-14 18:41 UTC (permalink / raw) To: Geert Uytterhoeven, Magnus Damm, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: Biju Das, linux-renesas-soc, devicetree, linux-kernel, Prabhakar Mahadev Lad, Biju Das From: Biju Das <biju.das.jz@bp.renesas.com> The GTIOC4{A,B} IOs are available on the carrier board's PMOD1_6A connector. Enable the GPT on the carrier board by adding the GPT pinmux and node on the carrier board dtsi file. Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> --- arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts b/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts index 1e67f0a2a945..093c0202b4f9 100644 --- a/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts +++ b/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts @@ -84,6 +84,14 @@ &can_transceiver1 { }; #endif +#if (!SW_LCD_EN) && (!SW_GPIO8_CAN0_STB) +&gpt0 { + pinctrl-0 = <&gpt0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; +#endif + &i2c0 { pinctrl-0 = <&i2c0_pins>; pinctrl-names = "default"; @@ -125,6 +133,11 @@ can4_pins: can4 { }; }; + gpt0_pins: gpt0 { + pinmux = <RZG3E_PORT_PINMUX(5, 4, 10)>, /* GTIOC4A */ + <RZG3E_PORT_PINMUX(5, 5, 10)>; /* GTIOC4B */ + }; + i2c0_pins: i2c0 { pinmux = <RZG3E_PORT_PINMUX(D, 4, 4)>, /* SCL0 */ <RZG3E_PORT_PINMUX(D, 5, 4)>; /* SDA0 */ -- 2.43.0 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 7/7] arm64: dts: renesas: r9a09g047e57-smarc: Enable GPT on carrier board 2025-08-14 18:41 ` [PATCH 7/7] arm64: dts: renesas: r9a09g047e57-smarc: Enable GPT on carrier board Biju @ 2025-08-19 16:25 ` Tommaso Merciai 0 siblings, 0 replies; 9+ messages in thread From: Tommaso Merciai @ 2025-08-19 16:25 UTC (permalink / raw) To: Biju Cc: Geert Uytterhoeven, Magnus Damm, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Biju Das, linux-renesas-soc, devicetree, linux-kernel, Prabhakar Mahadev Lad Hi Biju, Thank you for your patch. On Thu, Aug 14, 2025 at 07:41:11PM +0100, Biju wrote: > From: Biju Das <biju.das.jz@bp.renesas.com> > > The GTIOC4{A,B} IOs are available on the carrier board's PMOD1_6A > connector. Enable the GPT on the carrier board by adding the GPT pinmux > and node on the carrier board dtsi file. > Reviewed-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> > --- > arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts b/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts > index 1e67f0a2a945..093c0202b4f9 100644 > --- a/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts > +++ b/arch/arm64/boot/dts/renesas/r9a09g047e57-smarc.dts > @@ -84,6 +84,14 @@ &can_transceiver1 { > }; > #endif > > +#if (!SW_LCD_EN) && (!SW_GPIO8_CAN0_STB) > +&gpt0 { > + pinctrl-0 = <&gpt0_pins>; > + pinctrl-names = "default"; > + status = "okay"; > +}; > +#endif > + > &i2c0 { > pinctrl-0 = <&i2c0_pins>; > pinctrl-names = "default"; > @@ -125,6 +133,11 @@ can4_pins: can4 { > }; > }; > > + gpt0_pins: gpt0 { > + pinmux = <RZG3E_PORT_PINMUX(5, 4, 10)>, /* GTIOC4A */ > + <RZG3E_PORT_PINMUX(5, 5, 10)>; /* GTIOC4B */ > + }; > + > i2c0_pins: i2c0 { > pinmux = <RZG3E_PORT_PINMUX(D, 4, 4)>, /* SCL0 */ > <RZG3E_PORT_PINMUX(D, 5, 4)>; /* SDA0 */ > -- > 2.43.0 > Thanks & Regards, Tommaso ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-08-21 7:04 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-08-14 18:41 [PATCH 0/7] Add RZ/G3E support Biju 2025-08-14 18:41 ` [PATCH 1/7] dt-bindings: pwm: renesas,rzg2l-gpt: Document " Biju 2025-08-19 16:18 ` Tommaso Merciai 2025-08-20 20:29 ` Rob Herring 2025-08-21 7:04 ` Biju Das 2025-08-14 18:41 ` [PATCH 6/7] arm64: dts: renesas: r9a09g047: Add GPT nodes Biju 2025-08-19 16:24 ` Tommaso Merciai 2025-08-14 18:41 ` [PATCH 7/7] arm64: dts: renesas: r9a09g047e57-smarc: Enable GPT on carrier board Biju 2025-08-19 16:25 ` Tommaso Merciai
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).