From: Biju Das <biju.das.jz@xxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxx> --- .../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