xref: /linux/Documentation/devicetree/bindings/sound/atmel,sama5d2-pdmic.yaml (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1*ca0e30b1SRyan Wanner# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*ca0e30b1SRyan Wanner# Copyright (C) 2022 Microchip Technology, Inc. and its subsidiaries
3*ca0e30b1SRyan Wanner%YAML 1.2
4*ca0e30b1SRyan Wanner---
5*ca0e30b1SRyan Wanner$id: http://devicetree.org/schemas/sound/atmel,sama5d2-pdmic.yaml#
6*ca0e30b1SRyan Wanner$schema: http://devicetree.org/meta-schemas/core.yaml#
7*ca0e30b1SRyan Wanner
8*ca0e30b1SRyan Wannertitle: Atmel PDMIC decoder
9*ca0e30b1SRyan Wanner
10*ca0e30b1SRyan Wannermaintainers:
11*ca0e30b1SRyan Wanner  - Claudiu Beznea <claudiu.beznea@microchip.com>
12*ca0e30b1SRyan Wanner
13*ca0e30b1SRyan Wannerdescription:
14*ca0e30b1SRyan Wanner  Atmel Pulse Density Modulation Interface Controller
15*ca0e30b1SRyan Wanner  (PDMIC) peripheral is a mono PDM decoder module
16*ca0e30b1SRyan Wanner  that decodes an incoming PDM sample stream.
17*ca0e30b1SRyan Wanner
18*ca0e30b1SRyan Wannerproperties:
19*ca0e30b1SRyan Wanner  compatible:
20*ca0e30b1SRyan Wanner    const: atmel,sama5d2-pdmic
21*ca0e30b1SRyan Wanner
22*ca0e30b1SRyan Wanner  reg:
23*ca0e30b1SRyan Wanner    maxItems: 1
24*ca0e30b1SRyan Wanner
25*ca0e30b1SRyan Wanner  interrupts:
26*ca0e30b1SRyan Wanner    maxItems: 1
27*ca0e30b1SRyan Wanner
28*ca0e30b1SRyan Wanner  clocks:
29*ca0e30b1SRyan Wanner    items:
30*ca0e30b1SRyan Wanner      - description: peripheral clock
31*ca0e30b1SRyan Wanner      - description: generated clock
32*ca0e30b1SRyan Wanner
33*ca0e30b1SRyan Wanner  clock-names:
34*ca0e30b1SRyan Wanner    items:
35*ca0e30b1SRyan Wanner      - const: pclk
36*ca0e30b1SRyan Wanner      - const: gclk
37*ca0e30b1SRyan Wanner
38*ca0e30b1SRyan Wanner  dmas:
39*ca0e30b1SRyan Wanner    maxItems: 1
40*ca0e30b1SRyan Wanner
41*ca0e30b1SRyan Wanner  dma-names:
42*ca0e30b1SRyan Wanner    const: rx
43*ca0e30b1SRyan Wanner
44*ca0e30b1SRyan Wanner  atmel,mic-min-freq:
45*ca0e30b1SRyan Wanner    $ref: /schemas/types.yaml#/definitions/uint32
46*ca0e30b1SRyan Wanner    description:
47*ca0e30b1SRyan Wanner      The minimal frequency that the microphone supports.
48*ca0e30b1SRyan Wanner
49*ca0e30b1SRyan Wanner  atmel,mic-max-freq:
50*ca0e30b1SRyan Wanner    $ref: /schemas/types.yaml#/definitions/uint32
51*ca0e30b1SRyan Wanner    description:
52*ca0e30b1SRyan Wanner      The maximal frequency that the microphone supports.
53*ca0e30b1SRyan Wanner
54*ca0e30b1SRyan Wanner  atmel,model:
55*ca0e30b1SRyan Wanner    $ref: /schemas/types.yaml#/definitions/string
56*ca0e30b1SRyan Wanner    default: PDMIC
57*ca0e30b1SRyan Wanner    description: The user-visible name of this sound card.
58*ca0e30b1SRyan Wanner
59*ca0e30b1SRyan Wanner  atmel,mic-offset:
60*ca0e30b1SRyan Wanner    $ref: /schemas/types.yaml#/definitions/int32
61*ca0e30b1SRyan Wanner    default: 0
62*ca0e30b1SRyan Wanner    description: The offset that should be added.
63*ca0e30b1SRyan Wanner
64*ca0e30b1SRyan Wannerrequired:
65*ca0e30b1SRyan Wanner  - compatible
66*ca0e30b1SRyan Wanner  - reg
67*ca0e30b1SRyan Wanner  - interrupts
68*ca0e30b1SRyan Wanner  - dmas
69*ca0e30b1SRyan Wanner  - dma-names
70*ca0e30b1SRyan Wanner  - clock-names
71*ca0e30b1SRyan Wanner  - clocks
72*ca0e30b1SRyan Wanner  - atmel,mic-min-freq
73*ca0e30b1SRyan Wanner  - atmel,mic-max-freq
74*ca0e30b1SRyan Wanner
75*ca0e30b1SRyan WanneradditionalProperties: false
76*ca0e30b1SRyan Wanner
77*ca0e30b1SRyan Wannerexamples:
78*ca0e30b1SRyan Wanner  - |
79*ca0e30b1SRyan Wanner    #include <dt-bindings/dma/at91.h>
80*ca0e30b1SRyan Wanner    #include <dt-bindings/interrupt-controller/arm-gic.h>
81*ca0e30b1SRyan Wanner
82*ca0e30b1SRyan Wanner    pdmic: sound@f8018000 {
83*ca0e30b1SRyan Wanner        compatible = "atmel,sama5d2-pdmic";
84*ca0e30b1SRyan Wanner        reg = <0xf8018000 0x124>;
85*ca0e30b1SRyan Wanner        interrupts = <48 IRQ_TYPE_LEVEL_HIGH 7>;
86*ca0e30b1SRyan Wanner        dmas = <&dma0
87*ca0e30b1SRyan Wanner                (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
88*ca0e30b1SRyan Wanner                | AT91_XDMAC_DT_PERID(50))>;
89*ca0e30b1SRyan Wanner        dma-names = "rx";
90*ca0e30b1SRyan Wanner        clocks = <&pdmic_clk>, <&pdmic_gclk>;
91*ca0e30b1SRyan Wanner        clock-names = "pclk", "gclk";
92*ca0e30b1SRyan Wanner        pinctrl-names = "default";
93*ca0e30b1SRyan Wanner        pinctrl-0 = <&pinctrl_pdmic_default>;
94*ca0e30b1SRyan Wanner        atmel,model = "PDMIC@sama5d2_xplained";
95*ca0e30b1SRyan Wanner        atmel,mic-min-freq = <1000000>;
96*ca0e30b1SRyan Wanner        atmel,mic-max-freq = <3246000>;
97*ca0e30b1SRyan Wanner        atmel,mic-offset = <0x0>;
98*ca0e30b1SRyan Wanner    };
99