# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/pwm/renesas,rzg2l-gpt.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Renesas RZ/G2L General PWM Timer (GPT) maintainers: - Biju Das description: | RZ/G2L General PWM Timer (GPT) composed of 8 channels with 32-bit timer (GPT32E). It supports the following functions * 32 bits x 8 channels. * Up-counting or down-counting (saw waves) or up/down-counting (triangle waves) for each counter. * Clock sources independently selectable for each channel. * Two I/O pins per channel. * Two output compare/input capture registers per channel. * For the two output compare/input capture registers of each channel, four registers are provided as buffer registers and are capable of operating as comparison registers when buffering is not in use. * In output compare operation, buffer switching can be at crests or troughs, enabling the generation of laterally asymmetric PWM waveforms. * Registers for setting up frame cycles in each channel (with capability for generating interrupts at overflow or underflow) * Generation of dead times in PWM operation. * Synchronous starting, stopping and clearing counters for arbitrary channels. * Starting, stopping, clearing and up/down counters in response to input level comparison. * Starting, clearing, stopping and up/down counters in response to a maximum of four external triggers. * Output pin disable function by dead time error and detected short-circuits between output pins. * A/D converter start triggers can be generated (GPT32E0 to GPT32E3) * Enables the noise filter for input capture and external trigger operation. The below pwm channels are supported. pwm0 - GPT32E0.GTIOC0A channel pwm1 - GPT32E0.GTIOC0B channel pwm2 - GPT32E1.GTIOC1A channel pwm3 - GPT32E1.GTIOC1B channel pwm4 - GPT32E2.GTIOC2A channel pwm5 - GPT32E2.GTIOC2B channel pwm6 - GPT32E3.GTIOC3A channel pwm7 - GPT32E3.GTIOC3B channel pwm8 - GPT32E4.GTIOC4A channel pwm9 - GPT32E4.GTIOC4B channel pwm10 - GPT32E5.GTIOC5A channel pwm11 - GPT32E5.GTIOC5B channel pwm12 - GPT32E6.GTIOC6A channel pwm13 - GPT32E6.GTIOC6B channel pwm14 - GPT32E7.GTIOC7A channel pwm15 - GPT32E7.GTIOC7B channel properties: compatible: items: - enum: - renesas,r9a07g044-gpt # RZ/G2{L,LC} - renesas,r9a07g054-gpt # RZ/V2L - const: renesas,rzg2l-gpt reg: maxItems: 1 '#pwm-cells': 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 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 clocks: maxItems: 1 power-domains: maxItems: 1 resets: maxItems: 1 required: - compatible - reg - interrupts - interrupt-names - clocks - power-domains - resets allOf: - $ref: pwm.yaml# additionalProperties: false examples: - | #include #include gpt: pwm@10048000 { compatible = "renesas,r9a07g044-gpt", "renesas,rzg2l-gpt"; reg = <0x10048000 0x800>; interrupts = , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ; interrupt-names = "ccmpa0", "ccmpb0", "cmpc0", "cmpd0", "cmpe0", "cmpf0", "adtrga0", "adtrgb0", "ovf0", "unf0", "ccmpa1", "ccmpb1", "cmpc1", "cmpd1", "cmpe1", "cmpf1", "adtrga1", "adtrgb1", "ovf1", "unf1", "ccmpa2", "ccmpb2", "cmpc2", "cmpd2", "cmpe2", "cmpf2", "adtrga2", "adtrgb2", "ovf2", "unf2", "ccmpa3", "ccmpb3", "cmpc3", "cmpd3", "cmpe3", "cmpf3", "adtrga3", "adtrgb3", "ovf3", "unf3", "ccmpa4", "ccmpb4", "cmpc4", "cmpd4", "cmpe4", "cmpf4", "adtrga4", "adtrgb4", "ovf4", "unf4", "ccmpa5", "ccmpb5", "cmpc5", "cmpd5", "cmpe5", "cmpf5", "adtrga5", "adtrgb5", "ovf5", "unf5", "ccmpa6", "ccmpb6", "cmpc6", "cmpd6", "cmpe6", "cmpf6", "adtrga6", "adtrgb6", "ovf6", "unf6", "ccmpa7", "ccmpb7", "cmpc7", "cmpd7", "cmpe7", "cmpf7", "adtrga7", "adtrgb7", "ovf7", "unf7"; clocks = <&cpg CPG_MOD R9A07G044_GPT_PCLK>; power-domains = <&cpg>; resets = <&cpg R9A07G044_GPT_RST_C>; #pwm-cells = <3>; };