18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/st,stm32-timers.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: STMicroelectronics STM32 Timers bindings 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cidescription: | 108c2ecf20Sopenharmony_ci This hardware block provides 3 types of timer along with PWM functionality: 118c2ecf20Sopenharmony_ci - advanced-control timers consist of a 16-bit auto-reload counter driven 128c2ecf20Sopenharmony_ci by a programmable prescaler, break input feature, PWM outputs and 138c2ecf20Sopenharmony_ci complementary PWM outputs channels. 148c2ecf20Sopenharmony_ci - general-purpose timers consist of a 16-bit or 32-bit auto-reload counter 158c2ecf20Sopenharmony_ci driven by a programmable prescaler and PWM outputs. 168c2ecf20Sopenharmony_ci - basic timers consist of a 16-bit auto-reload counter driven by a 178c2ecf20Sopenharmony_ci programmable prescaler. 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_cimaintainers: 208c2ecf20Sopenharmony_ci - Benjamin Gaignard <benjamin.gaignard@st.com> 218c2ecf20Sopenharmony_ci - Fabrice Gasnier <fabrice.gasnier@st.com> 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ciproperties: 248c2ecf20Sopenharmony_ci compatible: 258c2ecf20Sopenharmony_ci const: st,stm32-timers 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci reg: 288c2ecf20Sopenharmony_ci maxItems: 1 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci clocks: 318c2ecf20Sopenharmony_ci maxItems: 1 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci clock-names: 348c2ecf20Sopenharmony_ci items: 358c2ecf20Sopenharmony_ci - const: int 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci reset: 388c2ecf20Sopenharmony_ci maxItems: 1 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci dmas: 418c2ecf20Sopenharmony_ci minItems: 1 428c2ecf20Sopenharmony_ci maxItems: 7 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci dma-names: 458c2ecf20Sopenharmony_ci items: 468c2ecf20Sopenharmony_ci enum: [ ch1, ch2, ch3, ch4, up, trig, com ] 478c2ecf20Sopenharmony_ci minItems: 1 488c2ecf20Sopenharmony_ci maxItems: 7 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci "#address-cells": 518c2ecf20Sopenharmony_ci const: 1 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci "#size-cells": 548c2ecf20Sopenharmony_ci const: 0 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci pwm: 578c2ecf20Sopenharmony_ci type: object 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci properties: 608c2ecf20Sopenharmony_ci compatible: 618c2ecf20Sopenharmony_ci const: st,stm32-pwm 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci "#pwm-cells": 648c2ecf20Sopenharmony_ci const: 3 658c2ecf20Sopenharmony_ci 668c2ecf20Sopenharmony_ci st,breakinput: 678c2ecf20Sopenharmony_ci description: 688c2ecf20Sopenharmony_ci One or two <index level filter> to describe break input 698c2ecf20Sopenharmony_ci configurations. 708c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-matrix 718c2ecf20Sopenharmony_ci items: 728c2ecf20Sopenharmony_ci items: 738c2ecf20Sopenharmony_ci - description: | 748c2ecf20Sopenharmony_ci "index" indicates on which break input (0 or 1) the 758c2ecf20Sopenharmony_ci configuration should be applied. 768c2ecf20Sopenharmony_ci enum: [0, 1] 778c2ecf20Sopenharmony_ci - description: | 788c2ecf20Sopenharmony_ci "level" gives the active level (0=low or 1=high) of the 798c2ecf20Sopenharmony_ci input signal for this configuration 808c2ecf20Sopenharmony_ci enum: [0, 1] 818c2ecf20Sopenharmony_ci - description: | 828c2ecf20Sopenharmony_ci "filter" gives the filtering value (up to 15) to be applied. 838c2ecf20Sopenharmony_ci maximum: 15 848c2ecf20Sopenharmony_ci minItems: 1 858c2ecf20Sopenharmony_ci maxItems: 2 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ci required: 888c2ecf20Sopenharmony_ci - "#pwm-cells" 898c2ecf20Sopenharmony_ci - compatible 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_cipatternProperties: 928c2ecf20Sopenharmony_ci "^timer@[0-9]+$": 938c2ecf20Sopenharmony_ci type: object 948c2ecf20Sopenharmony_ci 958c2ecf20Sopenharmony_ci properties: 968c2ecf20Sopenharmony_ci compatible: 978c2ecf20Sopenharmony_ci enum: 988c2ecf20Sopenharmony_ci - st,stm32-timer-trigger 998c2ecf20Sopenharmony_ci - st,stm32h7-timer-trigger 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_ci reg: 1028c2ecf20Sopenharmony_ci description: Identify trigger hardware block. 1038c2ecf20Sopenharmony_ci items: 1048c2ecf20Sopenharmony_ci minimum: 0 1058c2ecf20Sopenharmony_ci maximum: 16 1068c2ecf20Sopenharmony_ci 1078c2ecf20Sopenharmony_ci required: 1088c2ecf20Sopenharmony_ci - compatible 1098c2ecf20Sopenharmony_ci - reg 1108c2ecf20Sopenharmony_ci 1118c2ecf20Sopenharmony_ci counter: 1128c2ecf20Sopenharmony_ci type: object 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ci properties: 1158c2ecf20Sopenharmony_ci compatible: 1168c2ecf20Sopenharmony_ci const: st,stm32-timer-counter 1178c2ecf20Sopenharmony_ci 1188c2ecf20Sopenharmony_ci required: 1198c2ecf20Sopenharmony_ci - compatible 1208c2ecf20Sopenharmony_ci 1218c2ecf20Sopenharmony_cirequired: 1228c2ecf20Sopenharmony_ci - "#address-cells" 1238c2ecf20Sopenharmony_ci - "#size-cells" 1248c2ecf20Sopenharmony_ci - compatible 1258c2ecf20Sopenharmony_ci - reg 1268c2ecf20Sopenharmony_ci - clocks 1278c2ecf20Sopenharmony_ci - clock-names 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_ciadditionalProperties: false 1308c2ecf20Sopenharmony_ci 1318c2ecf20Sopenharmony_ciexamples: 1328c2ecf20Sopenharmony_ci - | 1338c2ecf20Sopenharmony_ci #include <dt-bindings/clock/stm32mp1-clks.h> 1348c2ecf20Sopenharmony_ci timers2: timers@40000000 { 1358c2ecf20Sopenharmony_ci #address-cells = <1>; 1368c2ecf20Sopenharmony_ci #size-cells = <0>; 1378c2ecf20Sopenharmony_ci compatible = "st,stm32-timers"; 1388c2ecf20Sopenharmony_ci reg = <0x40000000 0x400>; 1398c2ecf20Sopenharmony_ci clocks = <&rcc TIM2_K>; 1408c2ecf20Sopenharmony_ci clock-names = "int"; 1418c2ecf20Sopenharmony_ci dmas = <&dmamux1 18 0x400 0x1>, 1428c2ecf20Sopenharmony_ci <&dmamux1 19 0x400 0x1>, 1438c2ecf20Sopenharmony_ci <&dmamux1 20 0x400 0x1>, 1448c2ecf20Sopenharmony_ci <&dmamux1 21 0x400 0x1>, 1458c2ecf20Sopenharmony_ci <&dmamux1 22 0x400 0x1>; 1468c2ecf20Sopenharmony_ci dma-names = "ch1", "ch2", "ch3", "ch4", "up"; 1478c2ecf20Sopenharmony_ci pwm { 1488c2ecf20Sopenharmony_ci compatible = "st,stm32-pwm"; 1498c2ecf20Sopenharmony_ci #pwm-cells = <3>; 1508c2ecf20Sopenharmony_ci st,breakinput = <0 1 5>; 1518c2ecf20Sopenharmony_ci }; 1528c2ecf20Sopenharmony_ci timer@0 { 1538c2ecf20Sopenharmony_ci compatible = "st,stm32-timer-trigger"; 1548c2ecf20Sopenharmony_ci reg = <0>; 1558c2ecf20Sopenharmony_ci }; 1568c2ecf20Sopenharmony_ci counter { 1578c2ecf20Sopenharmony_ci compatible = "st,stm32-timer-counter"; 1588c2ecf20Sopenharmony_ci }; 1598c2ecf20Sopenharmony_ci }; 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ci... 162