blob: a5c30880161933605bfbe3617dfa8d32286dcc7b [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/pwm/mediatek,mt2712-pwm.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: MediaTek PWM Controller
8
9maintainers:
10 - John Crispin <john@phrozen.org>
11
12allOf:
13 - $ref: pwm.yaml#
14
15properties:
16 compatible:
17 oneOf:
18 - enum:
19 - mediatek,mt2712-pwm
20 - mediatek,mt6795-pwm
21 - mediatek,mt7622-pwm
22 - mediatek,mt7623-pwm
23 - mediatek,mt7628-pwm
24 - mediatek,mt7629-pwm
25 - mediatek,mt7981-pwm
26 - mediatek,mt7986-pwm
Tom Rini6bb92fc2024-05-20 09:54:58 -060027 - mediatek,mt7988-pwm
Tom Rini53633a82024-02-29 12:33:36 -050028 - mediatek,mt8183-pwm
29 - mediatek,mt8365-pwm
30 - mediatek,mt8516-pwm
31 - items:
32 - enum:
33 - mediatek,mt8195-pwm
34 - const: mediatek,mt8183-pwm
35
36 reg:
37 maxItems: 1
38
39 "#pwm-cells":
40 const: 2
41
42 interrupts:
43 maxItems: 1
44
45 clocks:
46 minItems: 2
47 maxItems: 10
48
49 clock-names:
50 description:
51 This controller needs two input clocks for its core and one
52 clock for each PWM output.
53 minItems: 2
54 items:
55 - const: top
56 - const: main
57 - const: pwm1
58 - const: pwm2
59 - const: pwm3
60 - const: pwm4
61 - const: pwm5
62 - const: pwm6
63 - const: pwm7
64 - const: pwm8
65
66required:
67 - compatible
68 - reg
69 - "#pwm-cells"
70 - clocks
71 - clock-names
72
73additionalProperties: false
74
75examples:
76 - |
77 #include <dt-bindings/interrupt-controller/arm-gic.h>
78 #include <dt-bindings/clock/mt2712-clk.h>
79 #include <dt-bindings/interrupt-controller/irq.h>
80
81 pwm0: pwm@11006000 {
82 compatible = "mediatek,mt2712-pwm";
83 reg = <0x11006000 0x1000>;
84 #pwm-cells = <2>;
85 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>;
86 clocks = <&topckgen CLK_TOP_PWM_SEL>, <&pericfg CLK_PERI_PWM>,
87 <&pericfg CLK_PERI_PWM0>, <&pericfg CLK_PERI_PWM1>,
88 <&pericfg CLK_PERI_PWM2>, <&pericfg CLK_PERI_PWM3>,
89 <&pericfg CLK_PERI_PWM4>, <&pericfg CLK_PERI_PWM5>,
90 <&pericfg CLK_PERI_PWM6>, <&pericfg CLK_PERI_PWM7>;
91 clock-names = "top", "main",
92 "pwm1", "pwm2",
93 "pwm3", "pwm4",
94 "pwm5", "pwm6",
95 "pwm7", "pwm8";
96 };