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