177 lines
3.8 KiB
YAML
177 lines
3.8 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/mfd/st,stm32-timers.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: STMicroelectronics STM32 Timers
|
|
|
|
description: |
|
|
This hardware block provides 3 types of timer along with PWM functionality:
|
|
- advanced-control timers consist of a 16-bit auto-reload counter driven
|
|
by a programmable prescaler, break input feature, PWM outputs and
|
|
complementary PWM outputs channels.
|
|
- general-purpose timers consist of a 16-bit or 32-bit auto-reload counter
|
|
driven by a programmable prescaler and PWM outputs.
|
|
- basic timers consist of a 16-bit auto-reload counter driven by a
|
|
programmable prescaler.
|
|
|
|
maintainers:
|
|
- Fabrice Gasnier <fabrice.gasnier@foss.st.com>
|
|
|
|
properties:
|
|
compatible:
|
|
const: st,stm32-timers
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
maxItems: 1
|
|
|
|
clock-names:
|
|
items:
|
|
- const: int
|
|
|
|
resets:
|
|
maxItems: 1
|
|
|
|
dmas:
|
|
minItems: 1
|
|
maxItems: 7
|
|
|
|
dma-names:
|
|
items:
|
|
enum: [ ch1, ch2, ch3, ch4, up, trig, com ]
|
|
minItems: 1
|
|
maxItems: 7
|
|
|
|
interrupts:
|
|
oneOf:
|
|
- maxItems: 1
|
|
- maxItems: 4
|
|
|
|
interrupt-names:
|
|
oneOf:
|
|
- items:
|
|
- const: global
|
|
- items:
|
|
- const: brk
|
|
- const: up
|
|
- const: trg-com
|
|
- const: cc
|
|
|
|
"#address-cells":
|
|
const: 1
|
|
|
|
"#size-cells":
|
|
const: 0
|
|
|
|
pwm:
|
|
type: object
|
|
additionalProperties: false
|
|
|
|
properties:
|
|
compatible:
|
|
const: st,stm32-pwm
|
|
|
|
"#pwm-cells":
|
|
const: 3
|
|
|
|
st,breakinput:
|
|
description:
|
|
One or two <index level filter> to describe break input
|
|
configurations.
|
|
$ref: /schemas/types.yaml#/definitions/uint32-matrix
|
|
items:
|
|
items:
|
|
- description: |
|
|
"index" indicates on which break input (0 or 1) the
|
|
configuration should be applied.
|
|
enum: [0, 1]
|
|
- description: |
|
|
"level" gives the active level (0=low or 1=high) of the
|
|
input signal for this configuration
|
|
enum: [0, 1]
|
|
- description: |
|
|
"filter" gives the filtering value (up to 15) to be applied.
|
|
maximum: 15
|
|
minItems: 1
|
|
maxItems: 2
|
|
|
|
required:
|
|
- "#pwm-cells"
|
|
- compatible
|
|
|
|
counter:
|
|
type: object
|
|
additionalProperties: false
|
|
|
|
properties:
|
|
compatible:
|
|
const: st,stm32-timer-counter
|
|
|
|
required:
|
|
- compatible
|
|
|
|
patternProperties:
|
|
"^timer@[0-9]+$":
|
|
type: object
|
|
additionalProperties: false
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- st,stm32-timer-trigger
|
|
- st,stm32h7-timer-trigger
|
|
|
|
reg:
|
|
description: Identify trigger hardware block.
|
|
items:
|
|
minimum: 0
|
|
maximum: 16
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- clocks
|
|
- clock-names
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/clock/stm32mp1-clks.h>
|
|
timers2: timer@40000000 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
compatible = "st,stm32-timers";
|
|
reg = <0x40000000 0x400>;
|
|
clocks = <&rcc TIM2_K>;
|
|
clock-names = "int";
|
|
dmas = <&dmamux1 18 0x400 0x1>,
|
|
<&dmamux1 19 0x400 0x1>,
|
|
<&dmamux1 20 0x400 0x1>,
|
|
<&dmamux1 21 0x400 0x1>,
|
|
<&dmamux1 22 0x400 0x1>;
|
|
dma-names = "ch1", "ch2", "ch3", "ch4", "up";
|
|
pwm {
|
|
compatible = "st,stm32-pwm";
|
|
#pwm-cells = <3>;
|
|
st,breakinput = <0 1 5>;
|
|
};
|
|
timer@1 {
|
|
compatible = "st,stm32-timer-trigger";
|
|
reg = <1>;
|
|
};
|
|
counter {
|
|
compatible = "st,stm32-timer-counter";
|
|
};
|
|
};
|
|
|
|
...
|