mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-12 16:54:42 +08:00
e62fc18213
Just as unevaluatedProperties or additionalProperties are required at the top level of schemas, they should (and will) also be required for child node schemas. That ensures only documented properties are present. Add unevaluatedProperties or additionalProperties as appropriate, and then add any missing properties flagged by the addition. Acked-by: Sebastian Reichel <sebastian.reichel@collabora.com> Acked-by: Guenter Roeck <linux@roeck-us.net> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Acked-by: Mark Brown <broonie@kernel.org> Acked-by: Lee Jones <lee@kernel.org> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20230124230228.372305-1-robh@kernel.org Signed-off-by: Rob Herring <robh@kernel.org>
215 lines
5.4 KiB
YAML
215 lines
5.4 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/soc/microchip/atmel,at91rm9200-tcb.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Atmel Timer Counter Block
|
|
|
|
maintainers:
|
|
- Alexandre Belloni <alexandre.belloni@bootlin.com>
|
|
|
|
description: |
|
|
The Atmel (now Microchip) SoCs have timers named Timer Counter Block. Each
|
|
timer has three channels with two counters each.
|
|
|
|
properties:
|
|
compatible:
|
|
items:
|
|
- enum:
|
|
- atmel,at91rm9200-tcb
|
|
- atmel,at91sam9x5-tcb
|
|
- atmel,sama5d2-tcb
|
|
- const: simple-mfd
|
|
- const: syscon
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
interrupts:
|
|
description:
|
|
List of interrupts. One interrupt per TCB channel if available or one
|
|
interrupt for the TC block
|
|
minItems: 1
|
|
maxItems: 3
|
|
|
|
clock-names:
|
|
description:
|
|
List of clock names. Always includes t0_clk and slow clk. Also includes
|
|
t1_clk and t2_clk if a clock per channel is available.
|
|
minItems: 2
|
|
maxItems: 4
|
|
|
|
clocks:
|
|
minItems: 2
|
|
maxItems: 4
|
|
|
|
'#address-cells':
|
|
const: 1
|
|
|
|
'#size-cells':
|
|
const: 0
|
|
|
|
patternProperties:
|
|
"^timer@[0-2]$":
|
|
description: The timer block channels that are used as timers or counters.
|
|
type: object
|
|
additionalProperties: false
|
|
properties:
|
|
compatible:
|
|
items:
|
|
- enum:
|
|
- atmel,tcb-timer
|
|
- atmel,tcb-pwm
|
|
- microchip,tcb-capture
|
|
reg:
|
|
description:
|
|
List of channels to use for this particular timer. In Microchip TCB capture
|
|
mode channels are registered as a counter devices, for the qdec mode TCB0's
|
|
channel <0> and <1> are required.
|
|
|
|
minItems: 1
|
|
maxItems: 3
|
|
required:
|
|
- compatible
|
|
- reg
|
|
|
|
"^pwm@[0-2]$":
|
|
description: The timer block channels that are used as PWMs.
|
|
$ref: /schemas/pwm/pwm.yaml#
|
|
type: object
|
|
properties:
|
|
compatible:
|
|
const: atmel,tcb-pwm
|
|
reg:
|
|
description:
|
|
TCB channel to use for this PWM.
|
|
enum: [ 0, 1, 2 ]
|
|
|
|
"#pwm-cells":
|
|
description:
|
|
The only third cell flag supported by this binding is
|
|
PWM_POLARITY_INVERTED.
|
|
const: 3
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- "#pwm-cells"
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
allOf:
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: atmel,sama5d2-tcb
|
|
then:
|
|
properties:
|
|
clocks:
|
|
minItems: 3
|
|
maxItems: 3
|
|
clock-names:
|
|
items:
|
|
- const: t0_clk
|
|
- const: gclk
|
|
- const: slow_clk
|
|
else:
|
|
properties:
|
|
clocks:
|
|
minItems: 2
|
|
maxItems: 4
|
|
clock-names:
|
|
oneOf:
|
|
- items:
|
|
- const: t0_clk
|
|
- const: slow_clk
|
|
- items:
|
|
- const: t0_clk
|
|
- const: t1_clk
|
|
- const: t2_clk
|
|
- const: slow_clk
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- interrupts
|
|
- clocks
|
|
- clock-names
|
|
- '#address-cells'
|
|
- '#size-cells'
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
/* One interrupt per TC block: */
|
|
tcb0: timer@fff7c000 {
|
|
compatible = "atmel,at91rm9200-tcb", "simple-mfd", "syscon";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <0xfff7c000 0x100>;
|
|
interrupts = <18 4>;
|
|
clocks = <&tcb0_clk>, <&clk32k>;
|
|
clock-names = "t0_clk", "slow_clk";
|
|
|
|
timer@0 {
|
|
compatible = "atmel,tcb-timer";
|
|
reg = <0>, <1>;
|
|
};
|
|
|
|
timer@2 {
|
|
compatible = "atmel,tcb-timer";
|
|
reg = <2>;
|
|
};
|
|
};
|
|
|
|
/* One interrupt per TC channel in a TC block: */
|
|
tcb1: timer@fffdc000 {
|
|
compatible = "atmel,at91rm9200-tcb", "simple-mfd", "syscon";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <0xfffdc000 0x100>;
|
|
interrupts = <26 4>, <27 4>, <28 4>;
|
|
clocks = <&tcb1_clk>, <&clk32k>;
|
|
clock-names = "t0_clk", "slow_clk";
|
|
|
|
timer@0 {
|
|
compatible = "atmel,tcb-timer";
|
|
reg = <0>;
|
|
};
|
|
|
|
timer@1 {
|
|
compatible = "atmel,tcb-timer";
|
|
reg = <1>;
|
|
};
|
|
|
|
pwm@2 {
|
|
compatible = "atmel,tcb-pwm";
|
|
reg = <2>;
|
|
#pwm-cells = <3>;
|
|
};
|
|
};
|
|
/* TCB0 Capture with QDEC: */
|
|
timer@f800c000 {
|
|
compatible = "atmel,at91rm9200-tcb", "simple-mfd", "syscon";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <0xfff7c000 0x100>;
|
|
interrupts = <18 4>;
|
|
clocks = <&tcb0_clk>, <&clk32k>;
|
|
clock-names = "t0_clk", "slow_clk";
|
|
|
|
timer@0 {
|
|
compatible = "microchip,tcb-capture";
|
|
reg = <0>, <1>;
|
|
};
|
|
|
|
timer@2 {
|
|
compatible = "atmel,tcb-timer";
|
|
reg = <2>;
|
|
};
|
|
};
|