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