1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/sound/microchip,sama7g5-pdmc.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Microchip Pulse Density Microphone Controller 8 9maintainers: 10 - Codrin Ciubotariu <codrin.ciubotariu@microchip.com> 11 12description: 13 The Microchip Pulse Density Microphone Controller (PDMC) interfaces up to 4 14 digital microphones having Pulse Density Modulated (PDM) outputs. 15 16allOf: 17 - $ref: dai-common.yaml# 18 19properties: 20 compatible: 21 const: microchip,sama7g5-pdmc 22 23 reg: 24 maxItems: 1 25 26 "#sound-dai-cells": 27 const: 0 28 29 interrupts: 30 maxItems: 1 31 32 clocks: 33 items: 34 - description: Peripheral Bus Clock 35 - description: Generic Clock 36 37 clock-names: 38 items: 39 - const: pclk 40 - const: gclk 41 42 dmas: 43 description: RX DMA Channel 44 maxItems: 1 45 46 dma-names: 47 const: rx 48 49 microchip,mic-pos: 50 description: | 51 Position of PDM microphones on the DS line and the sampling edge (rising 52 or falling) of the CLK line. A microphone is represented as a pair of DS 53 line and the sampling edge. The first microphone is mapped to channel 0, 54 the second to channel 1, etc. 55 $ref: /schemas/types.yaml#/definitions/uint32-matrix 56 items: 57 items: 58 - description: value for DS line 59 - description: value for sampling edge 60 anyOf: 61 - enum: 62 - [0, 0] 63 - [0, 1] 64 - [1, 0] 65 - [1, 1] 66 minItems: 1 67 maxItems: 4 68 uniqueItems: true 69 70 microchip,startup-delay-us: 71 description: | 72 Specifies the delay in microseconds that needs to be applied after 73 enabling the PDMC microphones to avoid unwanted noise due to microphones 74 not being ready. 75 76required: 77 - compatible 78 - reg 79 - "#sound-dai-cells" 80 - interrupts 81 - clocks 82 - clock-names 83 - dmas 84 - dma-names 85 - microchip,mic-pos 86 87unevaluatedProperties: false 88 89examples: 90 - | 91 #include <dt-bindings/clock/at91.h> 92 #include <dt-bindings/dma/at91.h> 93 #include <dt-bindings/interrupt-controller/arm-gic.h> 94 #include <dt-bindings/sound/microchip,pdmc.h> 95 96 pdmc: sound@e1608000 { 97 compatible = "microchip,sama7g5-pdmc"; 98 reg = <0xe1608000 0x4000>; 99 #sound-dai-cells = <0>; 100 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; 101 dmas = <&dma0 AT91_XDMAC_DT_PERID(37)>; 102 dma-names = "rx"; 103 clocks = <&pmc PMC_TYPE_PERIPHERAL 68>, <&pmc PMC_TYPE_GCK 68>; 104 clock-names = "pclk", "gclk"; 105 microchip,mic-pos = <MCHP_PDMC_DS0 MCHP_PDMC_CLK_POSITIVE>, 106 <MCHP_PDMC_DS0 MCHP_PDMC_CLK_NEGATIVE>, 107 <MCHP_PDMC_DS1 MCHP_PDMC_CLK_POSITIVE>, 108 <MCHP_PDMC_DS1 MCHP_PDMC_CLK_NEGATIVE>; 109 }; 110