xref: /linux/Documentation/devicetree/bindings/sound/atmel,sama5d2-classd.yaml (revision 79790b6818e96c58fe2bffee1b418c16e64e7b80)
1a3b19e0cSRyan Wanner# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2a3b19e0cSRyan Wanner# Copyright (C) 2022 Microchip Technology, Inc. and its subsidiaries
3a3b19e0cSRyan Wanner%YAML 1.2
4a3b19e0cSRyan Wanner---
5a3b19e0cSRyan Wanner$id: http://devicetree.org/schemas/sound/atmel,sama5d2-classd.yaml#
6a3b19e0cSRyan Wanner$schema: http://devicetree.org/meta-schemas/core.yaml#
7a3b19e0cSRyan Wanner
8a3b19e0cSRyan Wannertitle: Atmel ClassD Amplifier
9a3b19e0cSRyan Wanner
10a3b19e0cSRyan Wannermaintainers:
11a3b19e0cSRyan Wanner  - Nicolas Ferre <nicolas.ferre@microchip.com>
12a3b19e0cSRyan Wanner  - Alexandre Belloni <alexandre.belloni@bootlin.com>
13a3b19e0cSRyan Wanner  - Claudiu Beznea <claudiu.beznea@microchip.com>
14a3b19e0cSRyan Wanner
15a3b19e0cSRyan Wannerdescription:
16a3b19e0cSRyan Wanner  The Audio Class D Amplifier (CLASSD) is a digital input, Pulse Width
17a3b19e0cSRyan Wanner  Modulated (PWM) output stereo Class D amplifier.
18a3b19e0cSRyan Wanner
19a3b19e0cSRyan Wannerproperties:
20a3b19e0cSRyan Wanner  compatible:
21*89f3180dSVarshini Rajendran    oneOf:
22*89f3180dSVarshini Rajendran      - items:
23*89f3180dSVarshini Rajendran          - const: atmel,sama5d2-classd
24*89f3180dSVarshini Rajendran      - items:
25*89f3180dSVarshini Rajendran          - const: microchip,sam9x7-classd
26*89f3180dSVarshini Rajendran          - const: atmel,sama5d2-classd
27a3b19e0cSRyan Wanner
28a3b19e0cSRyan Wanner  reg:
29a3b19e0cSRyan Wanner    maxItems: 1
30a3b19e0cSRyan Wanner
31a3b19e0cSRyan Wanner  interrupts:
32a3b19e0cSRyan Wanner    maxItems: 1
33a3b19e0cSRyan Wanner
34a3b19e0cSRyan Wanner  dmas:
35a3b19e0cSRyan Wanner    maxItems: 1
36a3b19e0cSRyan Wanner
37a3b19e0cSRyan Wanner  dma-names:
38a3b19e0cSRyan Wanner    const: tx
39a3b19e0cSRyan Wanner
40a3b19e0cSRyan Wanner  clocks:
41a3b19e0cSRyan Wanner    maxItems: 2
42a3b19e0cSRyan Wanner
43a3b19e0cSRyan Wanner  clock-names:
44a3b19e0cSRyan Wanner    items:
45a3b19e0cSRyan Wanner      - const: pclk
46a3b19e0cSRyan Wanner      - const: gclk
47a3b19e0cSRyan Wanner
48a3b19e0cSRyan Wanner  atmel,model:
49a3b19e0cSRyan Wanner    $ref: /schemas/types.yaml#/definitions/string
50a3b19e0cSRyan Wanner    default: CLASSD
51a3b19e0cSRyan Wanner    description: The user-visible name of this sound complex.
52a3b19e0cSRyan Wanner
53a3b19e0cSRyan Wanner  atmel,pwm-type:
54a3b19e0cSRyan Wanner    $ref: /schemas/types.yaml#/definitions/string
55a3b19e0cSRyan Wanner    enum:
56a3b19e0cSRyan Wanner      - single
57a3b19e0cSRyan Wanner      - diff
58a3b19e0cSRyan Wanner    default: single
59a3b19e0cSRyan Wanner    description: PWM modulation type.
60a3b19e0cSRyan Wanner
61a3b19e0cSRyan Wanner  atmel,non-overlap-time:
62a3b19e0cSRyan Wanner    $ref: /schemas/types.yaml#/definitions/uint32
63a3b19e0cSRyan Wanner    enum:
64a3b19e0cSRyan Wanner      - 5
65a3b19e0cSRyan Wanner      - 10
66a3b19e0cSRyan Wanner      - 15
67a3b19e0cSRyan Wanner      - 20
68a3b19e0cSRyan Wanner    default: 10
69a3b19e0cSRyan Wanner    description:
70a3b19e0cSRyan Wanner      Set non-overlapping time, the unit is nanosecond(ns).
71a3b19e0cSRyan Wanner      Non-overlapping will be disabled if not specified.
72a3b19e0cSRyan Wanner
73a3b19e0cSRyan Wannerrequired:
74a3b19e0cSRyan Wanner  - compatible
75a3b19e0cSRyan Wanner  - reg
76a3b19e0cSRyan Wanner  - interrupts
77a3b19e0cSRyan Wanner  - dmas
78a3b19e0cSRyan Wanner  - dma-names
79a3b19e0cSRyan Wanner  - clock-names
80a3b19e0cSRyan Wanner  - clocks
81a3b19e0cSRyan Wanner
82a3b19e0cSRyan WanneradditionalProperties: false
83a3b19e0cSRyan Wanner
84a3b19e0cSRyan Wannerexamples:
85a3b19e0cSRyan Wanner  - |
86a3b19e0cSRyan Wanner    #include <dt-bindings/dma/at91.h>
87a3b19e0cSRyan Wanner    #include <dt-bindings/interrupt-controller/arm-gic.h>
88a3b19e0cSRyan Wanner
89a3b19e0cSRyan Wanner    classd: sound@fc048000 {
90a3b19e0cSRyan Wanner        compatible = "atmel,sama5d2-classd";
91a3b19e0cSRyan Wanner        reg = <0xfc048000 0x100>;
92a3b19e0cSRyan Wanner        interrupts = <59 IRQ_TYPE_LEVEL_HIGH 7>;
93a3b19e0cSRyan Wanner        dmas = <&dma0
94a3b19e0cSRyan Wanner            (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
95a3b19e0cSRyan Wanner            | AT91_XDMAC_DT_PERID(47))>;
96a3b19e0cSRyan Wanner        dma-names = "tx";
97a3b19e0cSRyan Wanner        clocks = <&classd_clk>, <&classd_gclk>;
98a3b19e0cSRyan Wanner        clock-names = "pclk", "gclk";
99a3b19e0cSRyan Wanner        assigned-clocks = <&classd_gclk>;
100a3b19e0cSRyan Wanner        pinctrl-names = "default";
101a3b19e0cSRyan Wanner        pinctrl-0 = <&pinctrl_classd_default>;
102a3b19e0cSRyan Wanner        atmel,model = "classd @ SAMA5D2-Xplained";
103a3b19e0cSRyan Wanner        atmel,pwm-type = "diff";
104a3b19e0cSRyan Wanner        atmel,non-overlap-time = <10>;
105a3b19e0cSRyan Wanner    };
106