162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/st,stm32-timers.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: STMicroelectronics STM32 Timers 862306a36Sopenharmony_ci 962306a36Sopenharmony_cidescription: | 1062306a36Sopenharmony_ci This hardware block provides 3 types of timer along with PWM functionality: 1162306a36Sopenharmony_ci - advanced-control timers consist of a 16-bit auto-reload counter driven 1262306a36Sopenharmony_ci by a programmable prescaler, break input feature, PWM outputs and 1362306a36Sopenharmony_ci complementary PWM outputs channels. 1462306a36Sopenharmony_ci - general-purpose timers consist of a 16-bit or 32-bit auto-reload counter 1562306a36Sopenharmony_ci driven by a programmable prescaler and PWM outputs. 1662306a36Sopenharmony_ci - basic timers consist of a 16-bit auto-reload counter driven by a 1762306a36Sopenharmony_ci programmable prescaler. 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_cimaintainers: 2062306a36Sopenharmony_ci - Fabrice Gasnier <fabrice.gasnier@foss.st.com> 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciproperties: 2362306a36Sopenharmony_ci compatible: 2462306a36Sopenharmony_ci const: st,stm32-timers 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci reg: 2762306a36Sopenharmony_ci maxItems: 1 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci clocks: 3062306a36Sopenharmony_ci maxItems: 1 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci clock-names: 3362306a36Sopenharmony_ci items: 3462306a36Sopenharmony_ci - const: int 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci resets: 3762306a36Sopenharmony_ci maxItems: 1 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci dmas: 4062306a36Sopenharmony_ci minItems: 1 4162306a36Sopenharmony_ci maxItems: 7 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci dma-names: 4462306a36Sopenharmony_ci items: 4562306a36Sopenharmony_ci enum: [ ch1, ch2, ch3, ch4, up, trig, com ] 4662306a36Sopenharmony_ci minItems: 1 4762306a36Sopenharmony_ci maxItems: 7 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci interrupts: 5062306a36Sopenharmony_ci oneOf: 5162306a36Sopenharmony_ci - maxItems: 1 5262306a36Sopenharmony_ci - maxItems: 4 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci interrupt-names: 5562306a36Sopenharmony_ci oneOf: 5662306a36Sopenharmony_ci - items: 5762306a36Sopenharmony_ci - const: global 5862306a36Sopenharmony_ci - items: 5962306a36Sopenharmony_ci - const: brk 6062306a36Sopenharmony_ci - const: up 6162306a36Sopenharmony_ci - const: trg-com 6262306a36Sopenharmony_ci - const: cc 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci "#address-cells": 6562306a36Sopenharmony_ci const: 1 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci "#size-cells": 6862306a36Sopenharmony_ci const: 0 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci pwm: 7162306a36Sopenharmony_ci type: object 7262306a36Sopenharmony_ci additionalProperties: false 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci properties: 7562306a36Sopenharmony_ci compatible: 7662306a36Sopenharmony_ci const: st,stm32-pwm 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci "#pwm-cells": 7962306a36Sopenharmony_ci const: 3 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci st,breakinput: 8262306a36Sopenharmony_ci description: 8362306a36Sopenharmony_ci One or two <index level filter> to describe break input 8462306a36Sopenharmony_ci configurations. 8562306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-matrix 8662306a36Sopenharmony_ci items: 8762306a36Sopenharmony_ci items: 8862306a36Sopenharmony_ci - description: | 8962306a36Sopenharmony_ci "index" indicates on which break input (0 or 1) the 9062306a36Sopenharmony_ci configuration should be applied. 9162306a36Sopenharmony_ci enum: [0, 1] 9262306a36Sopenharmony_ci - description: | 9362306a36Sopenharmony_ci "level" gives the active level (0=low or 1=high) of the 9462306a36Sopenharmony_ci input signal for this configuration 9562306a36Sopenharmony_ci enum: [0, 1] 9662306a36Sopenharmony_ci - description: | 9762306a36Sopenharmony_ci "filter" gives the filtering value (up to 15) to be applied. 9862306a36Sopenharmony_ci maximum: 15 9962306a36Sopenharmony_ci minItems: 1 10062306a36Sopenharmony_ci maxItems: 2 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ci required: 10362306a36Sopenharmony_ci - "#pwm-cells" 10462306a36Sopenharmony_ci - compatible 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ci counter: 10762306a36Sopenharmony_ci type: object 10862306a36Sopenharmony_ci additionalProperties: false 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ci properties: 11162306a36Sopenharmony_ci compatible: 11262306a36Sopenharmony_ci const: st,stm32-timer-counter 11362306a36Sopenharmony_ci 11462306a36Sopenharmony_ci required: 11562306a36Sopenharmony_ci - compatible 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_cipatternProperties: 11862306a36Sopenharmony_ci "^timer@[0-9]+$": 11962306a36Sopenharmony_ci type: object 12062306a36Sopenharmony_ci additionalProperties: false 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci properties: 12362306a36Sopenharmony_ci compatible: 12462306a36Sopenharmony_ci enum: 12562306a36Sopenharmony_ci - st,stm32-timer-trigger 12662306a36Sopenharmony_ci - st,stm32h7-timer-trigger 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ci reg: 12962306a36Sopenharmony_ci description: Identify trigger hardware block. 13062306a36Sopenharmony_ci items: 13162306a36Sopenharmony_ci minimum: 0 13262306a36Sopenharmony_ci maximum: 16 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ci required: 13562306a36Sopenharmony_ci - compatible 13662306a36Sopenharmony_ci - reg 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_cirequired: 13962306a36Sopenharmony_ci - compatible 14062306a36Sopenharmony_ci - reg 14162306a36Sopenharmony_ci - clocks 14262306a36Sopenharmony_ci - clock-names 14362306a36Sopenharmony_ci 14462306a36Sopenharmony_ciadditionalProperties: false 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ciexamples: 14762306a36Sopenharmony_ci - | 14862306a36Sopenharmony_ci #include <dt-bindings/clock/stm32mp1-clks.h> 14962306a36Sopenharmony_ci timers2: timer@40000000 { 15062306a36Sopenharmony_ci #address-cells = <1>; 15162306a36Sopenharmony_ci #size-cells = <0>; 15262306a36Sopenharmony_ci compatible = "st,stm32-timers"; 15362306a36Sopenharmony_ci reg = <0x40000000 0x400>; 15462306a36Sopenharmony_ci clocks = <&rcc TIM2_K>; 15562306a36Sopenharmony_ci clock-names = "int"; 15662306a36Sopenharmony_ci dmas = <&dmamux1 18 0x400 0x1>, 15762306a36Sopenharmony_ci <&dmamux1 19 0x400 0x1>, 15862306a36Sopenharmony_ci <&dmamux1 20 0x400 0x1>, 15962306a36Sopenharmony_ci <&dmamux1 21 0x400 0x1>, 16062306a36Sopenharmony_ci <&dmamux1 22 0x400 0x1>; 16162306a36Sopenharmony_ci dma-names = "ch1", "ch2", "ch3", "ch4", "up"; 16262306a36Sopenharmony_ci pwm { 16362306a36Sopenharmony_ci compatible = "st,stm32-pwm"; 16462306a36Sopenharmony_ci #pwm-cells = <3>; 16562306a36Sopenharmony_ci st,breakinput = <0 1 5>; 16662306a36Sopenharmony_ci }; 16762306a36Sopenharmony_ci timer@1 { 16862306a36Sopenharmony_ci compatible = "st,stm32-timer-trigger"; 16962306a36Sopenharmony_ci reg = <1>; 17062306a36Sopenharmony_ci }; 17162306a36Sopenharmony_ci counter { 17262306a36Sopenharmony_ci compatible = "st,stm32-timer-counter"; 17362306a36Sopenharmony_ci }; 17462306a36Sopenharmony_ci }; 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_ci... 177