# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- $id: "http://devicetree.org/schemas/soc/microchip/atmel,at91rm9200-tcb.yaml#" $schema: "http://devicetree.org/meta-schemas/core.yaml#" title: Atmel Timer Counter Block maintainers: - Alexandre Belloni description: | The Atmel (now Microchip) SoCs have timers named Timer Counter Block. Each timer has three channels with two counters each. properties: compatible: items: - enum: - atmel,at91rm9200-tcb - atmel,at91sam9x5-tcb - atmel,sama5d2-tcb - const: simple-mfd - const: syscon reg: maxItems: 1 interrupts: description: List of interrupts. One interrupt per TCB channel if available or one interrupt for the TC block minItems: 1 maxItems: 3 clock-names: description: List of clock names. Always includes t0_clk and slow clk. Also includes t1_clk and t2_clk if a clock per channel is available. minItems: 2 maxItems: 4 clocks: minItems: 2 maxItems: 4 '#address-cells': const: 1 '#size-cells': const: 0 patternProperties: "^timer@[0-2]$": description: The timer block channels that are used as timers. type: object properties: compatible: const: atmel,tcb-timer reg: description: List of channels to use for this particular timer. minItems: 1 maxItems: 3 required: - compatible - reg allOf: - if: properties: compatible: contains: const: atmel,sama5d2-tcb then: properties: clocks: minItems: 3 maxItems: 3 clock-names: items: - const: t0_clk - const: gclk - const: slow_clk else: properties: clocks: minItems: 2 maxItems: 4 clock-names: oneOf: - items: - const: t0_clk - const: slow_clk - items: - const: t0_clk - const: t1_clk - const: t2_clk - const: slow_clk required: - compatible - reg - interrupts - clocks - clock-names - '#address-cells' - '#size-cells' additionalProperties: false examples: - | /* One interrupt per TC block: */ tcb0: timer@fff7c000 { compatible = "atmel,at91rm9200-tcb", "simple-mfd", "syscon"; #address-cells = <1>; #size-cells = <0>; reg = <0xfff7c000 0x100>; interrupts = <18 4>; clocks = <&tcb0_clk>, <&clk32k>; clock-names = "t0_clk", "slow_clk"; timer@0 { compatible = "atmel,tcb-timer"; reg = <0>, <1>; }; timer@2 { compatible = "atmel,tcb-timer"; reg = <2>; }; }; /* One interrupt per TC channel in a TC block: */ tcb1: timer@fffdc000 { compatible = "atmel,at91rm9200-tcb", "simple-mfd", "syscon"; #address-cells = <1>; #size-cells = <0>; reg = <0xfffdc000 0x100>; interrupts = <26 4>, <27 4>, <28 4>; clocks = <&tcb1_clk>, <&clk32k>; clock-names = "t0_clk", "slow_clk"; timer@0 { compatible = "atmel,tcb-timer"; reg = <0>; }; timer@1 { compatible = "atmel,tcb-timer"; reg = <1>; }; };