1 # SPDX-License-Identifier: (GPL-2.0-only OR BS 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 %YAML 1.2 2 %YAML 1.2 3 --- 3 --- 4 $id: http://devicetree.org/schemas/mfd/st,stm3 4 $id: http://devicetree.org/schemas/mfd/st,stm32-timers.yaml# 5 $schema: http://devicetree.org/meta-schemas/co 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 title: STMicroelectronics STM32 Timers !! 7 title: STMicroelectronics STM32 Timers bindings 8 8 9 description: | 9 description: | 10 This hardware block provides 3 types of time 10 This hardware block provides 3 types of timer along with PWM functionality: 11 - advanced-control timers consist of a 16- 11 - advanced-control timers consist of a 16-bit auto-reload counter driven 12 by a programmable prescaler, break input 12 by a programmable prescaler, break input feature, PWM outputs and 13 complementary PWM outputs channels. 13 complementary PWM outputs channels. 14 - general-purpose timers consist of a 16-b 14 - general-purpose timers consist of a 16-bit or 32-bit auto-reload counter 15 driven by a programmable prescaler and P 15 driven by a programmable prescaler and PWM outputs. 16 - basic timers consist of a 16-bit auto-re 16 - basic timers consist of a 16-bit auto-reload counter driven by a 17 programmable prescaler. 17 programmable prescaler. 18 18 19 maintainers: 19 maintainers: 20 - Fabrice Gasnier <fabrice.gasnier@foss.st.co !! 20 - Benjamin Gaignard <benjamin.gaignard@st.com> >> 21 - Fabrice Gasnier <fabrice.gasnier@st.com> 21 22 22 properties: 23 properties: 23 compatible: 24 compatible: 24 const: st,stm32-timers 25 const: st,stm32-timers 25 26 26 reg: 27 reg: 27 maxItems: 1 28 maxItems: 1 28 29 29 clocks: 30 clocks: 30 maxItems: 1 31 maxItems: 1 31 32 32 clock-names: 33 clock-names: 33 items: 34 items: 34 - const: int 35 - const: int 35 36 36 resets: !! 37 reset: 37 maxItems: 1 38 maxItems: 1 38 39 39 dmas: 40 dmas: 40 minItems: 1 41 minItems: 1 41 maxItems: 7 42 maxItems: 7 42 43 43 dma-names: 44 dma-names: 44 items: 45 items: 45 enum: [ ch1, ch2, ch3, ch4, up, trig, co 46 enum: [ ch1, ch2, ch3, ch4, up, trig, com ] 46 minItems: 1 47 minItems: 1 47 maxItems: 7 48 maxItems: 7 48 49 49 interrupts: << 50 oneOf: << 51 - maxItems: 1 << 52 - maxItems: 4 << 53 << 54 interrupt-names: << 55 oneOf: << 56 - items: << 57 - const: global << 58 - items: << 59 - const: brk << 60 - const: up << 61 - const: trg-com << 62 - const: cc << 63 << 64 "#address-cells": 50 "#address-cells": 65 const: 1 51 const: 1 66 52 67 "#size-cells": 53 "#size-cells": 68 const: 0 54 const: 0 69 55 70 access-controllers: << 71 minItems: 1 << 72 maxItems: 2 << 73 << 74 pwm: 56 pwm: 75 type: object 57 type: object 76 additionalProperties: false << 77 58 78 properties: 59 properties: 79 compatible: 60 compatible: 80 const: st,stm32-pwm 61 const: st,stm32-pwm 81 62 82 "#pwm-cells": 63 "#pwm-cells": 83 const: 3 64 const: 3 84 65 85 st,breakinput: 66 st,breakinput: 86 description: 67 description: 87 One or two <index level filter> to d 68 One or two <index level filter> to describe break input 88 configurations. 69 configurations. 89 $ref: /schemas/types.yaml#/definitions !! 70 allOf: 90 items: !! 71 - $ref: /schemas/types.yaml#/definitions/uint32-matrix 91 items: !! 72 - items: 92 - description: | !! 73 items: 93 "index" indicates on which bre !! 74 - description: | 94 configuration should be applie !! 75 "index" indicates on which break input (0 or 1) the 95 enum: [0, 1] !! 76 configuration should be applied. 96 - description: | !! 77 enum: [ 0 , 1] 97 "level" gives the active level !! 78 - description: | 98 input signal for this configur !! 79 "level" gives the active level (0=low or 1=high) of the 99 enum: [0, 1] !! 80 input signal for this configuration 100 - description: | !! 81 enum: [ 0, 1 ] 101 "filter" gives the filtering v !! 82 - description: | 102 maximum: 15 !! 83 "filter" gives the filtering value (up to 15) to be applied. 103 minItems: 1 !! 84 maximum: 15 104 maxItems: 2 !! 85 minItems: 1 >> 86 maxItems: 2 105 87 106 required: 88 required: 107 - "#pwm-cells" 89 - "#pwm-cells" 108 - compatible 90 - compatible 109 91 110 counter: << 111 type: object << 112 additionalProperties: false << 113 << 114 properties: << 115 compatible: << 116 const: st,stm32-timer-counter << 117 << 118 required: << 119 - compatible << 120 << 121 patternProperties: 92 patternProperties: 122 "^timer@[0-9]+$": 93 "^timer@[0-9]+$": 123 type: object 94 type: object 124 additionalProperties: false << 125 95 126 properties: 96 properties: 127 compatible: 97 compatible: 128 enum: 98 enum: 129 - st,stm32-timer-trigger 99 - st,stm32-timer-trigger 130 - st,stm32h7-timer-trigger 100 - st,stm32h7-timer-trigger 131 101 132 reg: 102 reg: 133 description: Identify trigger hardware 103 description: Identify trigger hardware block. 134 items: 104 items: 135 minimum: 0 !! 105 minimum: 0 136 maximum: 16 !! 106 maximum: 16 137 107 138 required: 108 required: 139 - compatible 109 - compatible 140 - reg 110 - reg 141 111 >> 112 counter: >> 113 type: object >> 114 >> 115 properties: >> 116 compatible: >> 117 const: st,stm32-timer-counter >> 118 >> 119 required: >> 120 - compatible >> 121 142 required: 122 required: >> 123 - "#address-cells" >> 124 - "#size-cells" 143 - compatible 125 - compatible 144 - reg 126 - reg 145 - clocks 127 - clocks 146 - clock-names 128 - clock-names 147 129 148 additionalProperties: false 130 additionalProperties: false 149 131 150 examples: 132 examples: 151 - | 133 - | 152 #include <dt-bindings/clock/stm32mp1-clks. 134 #include <dt-bindings/clock/stm32mp1-clks.h> 153 timers2: timer@40000000 { !! 135 timers2: timers@40000000 { 154 #address-cells = <1>; 136 #address-cells = <1>; 155 #size-cells = <0>; 137 #size-cells = <0>; 156 compatible = "st,stm32-timers"; 138 compatible = "st,stm32-timers"; 157 reg = <0x40000000 0x400>; 139 reg = <0x40000000 0x400>; 158 clocks = <&rcc TIM2_K>; 140 clocks = <&rcc TIM2_K>; 159 clock-names = "int"; 141 clock-names = "int"; 160 dmas = <&dmamux1 18 0x400 0x1>, 142 dmas = <&dmamux1 18 0x400 0x1>, 161 <&dmamux1 19 0x400 0x1>, 143 <&dmamux1 19 0x400 0x1>, 162 <&dmamux1 20 0x400 0x1>, 144 <&dmamux1 20 0x400 0x1>, 163 <&dmamux1 21 0x400 0x1>, 145 <&dmamux1 21 0x400 0x1>, 164 <&dmamux1 22 0x400 0x1>; 146 <&dmamux1 22 0x400 0x1>; 165 dma-names = "ch1", "ch2", "ch3", "ch4", 147 dma-names = "ch1", "ch2", "ch3", "ch4", "up"; 166 pwm { 148 pwm { 167 compatible = "st,stm32-pwm"; 149 compatible = "st,stm32-pwm"; 168 #pwm-cells = <3>; 150 #pwm-cells = <3>; 169 st,breakinput = <0 1 5>; 151 st,breakinput = <0 1 5>; 170 }; 152 }; 171 timer@1 { !! 153 timer@0 { 172 compatible = "st,stm32-timer-trigger"; 154 compatible = "st,stm32-timer-trigger"; 173 reg = <1>; !! 155 reg = <0>; 174 }; 156 }; 175 counter { 157 counter { 176 compatible = "st,stm32-timer-counter"; 158 compatible = "st,stm32-timer-counter"; 177 }; 159 }; 178 }; 160 }; 179 161 180 ... 162 ...
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.