156fb34d8SBenjamin Gaignard# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 256fb34d8SBenjamin Gaignard%YAML 1.2 356fb34d8SBenjamin Gaignard--- 456fb34d8SBenjamin Gaignard$id: http://devicetree.org/schemas/mfd/st,stm32-timers.yaml# 556fb34d8SBenjamin Gaignard$schema: http://devicetree.org/meta-schemas/core.yaml# 656fb34d8SBenjamin Gaignard 7*84e85359SKrzysztof Kozlowskititle: STMicroelectronics STM32 Timers 856fb34d8SBenjamin Gaignard 956fb34d8SBenjamin Gaignarddescription: | 1056fb34d8SBenjamin Gaignard This hardware block provides 3 types of timer along with PWM functionality: 1156fb34d8SBenjamin Gaignard - advanced-control timers consist of a 16-bit auto-reload counter driven 1256fb34d8SBenjamin Gaignard by a programmable prescaler, break input feature, PWM outputs and 1356fb34d8SBenjamin Gaignard complementary PWM outputs channels. 1456fb34d8SBenjamin Gaignard - general-purpose timers consist of a 16-bit or 32-bit auto-reload counter 1556fb34d8SBenjamin Gaignard driven by a programmable prescaler and PWM outputs. 1656fb34d8SBenjamin Gaignard - basic timers consist of a 16-bit auto-reload counter driven by a 1756fb34d8SBenjamin Gaignard programmable prescaler. 1856fb34d8SBenjamin Gaignard 1956fb34d8SBenjamin Gaignardmaintainers: 20f4eedebdSPatrice Chotard - Fabrice Gasnier <fabrice.gasnier@foss.st.com> 2156fb34d8SBenjamin Gaignard 2256fb34d8SBenjamin Gaignardproperties: 2356fb34d8SBenjamin Gaignard compatible: 2456fb34d8SBenjamin Gaignard const: st,stm32-timers 2556fb34d8SBenjamin Gaignard 2656fb34d8SBenjamin Gaignard reg: 2756fb34d8SBenjamin Gaignard maxItems: 1 2856fb34d8SBenjamin Gaignard 2956fb34d8SBenjamin Gaignard clocks: 3056fb34d8SBenjamin Gaignard maxItems: 1 3156fb34d8SBenjamin Gaignard 3256fb34d8SBenjamin Gaignard clock-names: 3356fb34d8SBenjamin Gaignard items: 3456fb34d8SBenjamin Gaignard - const: int 3556fb34d8SBenjamin Gaignard 36596f2d31SRob Herring resets: 3756fb34d8SBenjamin Gaignard maxItems: 1 3856fb34d8SBenjamin Gaignard 3956fb34d8SBenjamin Gaignard dmas: 4056fb34d8SBenjamin Gaignard minItems: 1 4156fb34d8SBenjamin Gaignard maxItems: 7 4256fb34d8SBenjamin Gaignard 4356fb34d8SBenjamin Gaignard dma-names: 4456fb34d8SBenjamin Gaignard items: 4556fb34d8SBenjamin Gaignard enum: [ ch1, ch2, ch3, ch4, up, trig, com ] 4656fb34d8SBenjamin Gaignard minItems: 1 4756fb34d8SBenjamin Gaignard maxItems: 7 4856fb34d8SBenjamin Gaignard 499875ab53SUwe Kleine-König interrupts: 509875ab53SUwe Kleine-König oneOf: 519875ab53SUwe Kleine-König - maxItems: 1 529875ab53SUwe Kleine-König - maxItems: 4 539875ab53SUwe Kleine-König 549875ab53SUwe Kleine-König interrupt-names: 559875ab53SUwe Kleine-König oneOf: 569875ab53SUwe Kleine-König - items: 579875ab53SUwe Kleine-König - const: global 589875ab53SUwe Kleine-König - items: 599875ab53SUwe Kleine-König - const: brk 609875ab53SUwe Kleine-König - const: up 619875ab53SUwe Kleine-König - const: trg-com 629875ab53SUwe Kleine-König - const: cc 639875ab53SUwe Kleine-König 6456fb34d8SBenjamin Gaignard "#address-cells": 6556fb34d8SBenjamin Gaignard const: 1 6656fb34d8SBenjamin Gaignard 6756fb34d8SBenjamin Gaignard "#size-cells": 6856fb34d8SBenjamin Gaignard const: 0 6956fb34d8SBenjamin Gaignard 7056fb34d8SBenjamin Gaignard pwm: 7156fb34d8SBenjamin Gaignard type: object 7242839dcaSRob Herring additionalProperties: false 7356fb34d8SBenjamin Gaignard 7456fb34d8SBenjamin Gaignard properties: 7556fb34d8SBenjamin Gaignard compatible: 7656fb34d8SBenjamin Gaignard const: st,stm32-pwm 7756fb34d8SBenjamin Gaignard 7856fb34d8SBenjamin Gaignard "#pwm-cells": 7956fb34d8SBenjamin Gaignard const: 3 8056fb34d8SBenjamin Gaignard 8156fb34d8SBenjamin Gaignard st,breakinput: 8256fb34d8SBenjamin Gaignard description: 8356fb34d8SBenjamin Gaignard One or two <index level filter> to describe break input 8456fb34d8SBenjamin Gaignard configurations. 853d21a460SRob Herring $ref: /schemas/types.yaml#/definitions/uint32-matrix 863d21a460SRob Herring items: 8756fb34d8SBenjamin Gaignard items: 8856fb34d8SBenjamin Gaignard - description: | 8956fb34d8SBenjamin Gaignard "index" indicates on which break input (0 or 1) the 9056fb34d8SBenjamin Gaignard configuration should be applied. 9156fb34d8SBenjamin Gaignard enum: [0, 1] 9256fb34d8SBenjamin Gaignard - description: | 9356fb34d8SBenjamin Gaignard "level" gives the active level (0=low or 1=high) of the 9456fb34d8SBenjamin Gaignard input signal for this configuration 9556fb34d8SBenjamin Gaignard enum: [0, 1] 9656fb34d8SBenjamin Gaignard - description: | 9756fb34d8SBenjamin Gaignard "filter" gives the filtering value (up to 15) to be applied. 9856fb34d8SBenjamin Gaignard maximum: 15 9956fb34d8SBenjamin Gaignard minItems: 1 10056fb34d8SBenjamin Gaignard maxItems: 2 10156fb34d8SBenjamin Gaignard 10256fb34d8SBenjamin Gaignard required: 10356fb34d8SBenjamin Gaignard - "#pwm-cells" 10456fb34d8SBenjamin Gaignard - compatible 10556fb34d8SBenjamin Gaignard 106ae4ccaedSRob Herring counter: 107ae4ccaedSRob Herring type: object 10842839dcaSRob Herring additionalProperties: false 109ae4ccaedSRob Herring 110ae4ccaedSRob Herring properties: 111ae4ccaedSRob Herring compatible: 112ae4ccaedSRob Herring const: st,stm32-timer-counter 113ae4ccaedSRob Herring 114ae4ccaedSRob Herring required: 115ae4ccaedSRob Herring - compatible 116ae4ccaedSRob Herring 11756fb34d8SBenjamin GaignardpatternProperties: 11856fb34d8SBenjamin Gaignard "^timer@[0-9]+$": 11956fb34d8SBenjamin Gaignard type: object 12042839dcaSRob Herring additionalProperties: false 12156fb34d8SBenjamin Gaignard 12256fb34d8SBenjamin Gaignard properties: 12356fb34d8SBenjamin Gaignard compatible: 12456fb34d8SBenjamin Gaignard enum: 12556fb34d8SBenjamin Gaignard - st,stm32-timer-trigger 12656fb34d8SBenjamin Gaignard - st,stm32h7-timer-trigger 12756fb34d8SBenjamin Gaignard 12856fb34d8SBenjamin Gaignard reg: 12956fb34d8SBenjamin Gaignard description: Identify trigger hardware block. 13056fb34d8SBenjamin Gaignard items: 13156fb34d8SBenjamin Gaignard minimum: 0 13256fb34d8SBenjamin Gaignard maximum: 16 13356fb34d8SBenjamin Gaignard 13456fb34d8SBenjamin Gaignard required: 13556fb34d8SBenjamin Gaignard - compatible 13656fb34d8SBenjamin Gaignard - reg 13756fb34d8SBenjamin Gaignard 13856fb34d8SBenjamin Gaignardrequired: 13956fb34d8SBenjamin Gaignard - compatible 14056fb34d8SBenjamin Gaignard - reg 14156fb34d8SBenjamin Gaignard - clocks 14256fb34d8SBenjamin Gaignard - clock-names 14356fb34d8SBenjamin Gaignard 14456fb34d8SBenjamin GaignardadditionalProperties: false 14556fb34d8SBenjamin Gaignard 14656fb34d8SBenjamin Gaignardexamples: 14756fb34d8SBenjamin Gaignard - | 14856fb34d8SBenjamin Gaignard #include <dt-bindings/clock/stm32mp1-clks.h> 1498f7e68bbSFabrice Gasnier timers2: timer@40000000 { 15056fb34d8SBenjamin Gaignard #address-cells = <1>; 15156fb34d8SBenjamin Gaignard #size-cells = <0>; 15256fb34d8SBenjamin Gaignard compatible = "st,stm32-timers"; 15356fb34d8SBenjamin Gaignard reg = <0x40000000 0x400>; 15456fb34d8SBenjamin Gaignard clocks = <&rcc TIM2_K>; 15556fb34d8SBenjamin Gaignard clock-names = "int"; 15656fb34d8SBenjamin Gaignard dmas = <&dmamux1 18 0x400 0x1>, 15756fb34d8SBenjamin Gaignard <&dmamux1 19 0x400 0x1>, 15856fb34d8SBenjamin Gaignard <&dmamux1 20 0x400 0x1>, 15956fb34d8SBenjamin Gaignard <&dmamux1 21 0x400 0x1>, 16056fb34d8SBenjamin Gaignard <&dmamux1 22 0x400 0x1>; 16156fb34d8SBenjamin Gaignard dma-names = "ch1", "ch2", "ch3", "ch4", "up"; 16256fb34d8SBenjamin Gaignard pwm { 16356fb34d8SBenjamin Gaignard compatible = "st,stm32-pwm"; 16456fb34d8SBenjamin Gaignard #pwm-cells = <3>; 16556fb34d8SBenjamin Gaignard st,breakinput = <0 1 5>; 16656fb34d8SBenjamin Gaignard }; 1678f7e68bbSFabrice Gasnier timer@1 { 16856fb34d8SBenjamin Gaignard compatible = "st,stm32-timer-trigger"; 1698f7e68bbSFabrice Gasnier reg = <1>; 17056fb34d8SBenjamin Gaignard }; 17156fb34d8SBenjamin Gaignard counter { 17256fb34d8SBenjamin Gaignard compatible = "st,stm32-timer-counter"; 17356fb34d8SBenjamin Gaignard }; 17456fb34d8SBenjamin Gaignard }; 17556fb34d8SBenjamin Gaignard 17656fb34d8SBenjamin Gaignard... 177