1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/sound/rockchip,pdm.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Rockchip PDM controller 8 9description: 10 The Pulse Density Modulation Interface Controller (PDMC) is 11 a PDM interface controller and decoder that support PDM format. 12 It integrates a clock generator driving the PDM microphone 13 and embeds filters which decimate the incoming bit stream to 14 obtain most common audio rates. 15 16maintainers: 17 - Heiko Stuebner <heiko@sntech.de> 18 19allOf: 20 - $ref: dai-common.yaml# 21 22properties: 23 compatible: 24 enum: 25 - rockchip,pdm 26 - rockchip,px30-pdm 27 - rockchip,rk1808-pdm 28 - rockchip,rk3308-pdm 29 - rockchip,rk3568-pdm 30 - rockchip,rv1126-pdm 31 32 reg: 33 maxItems: 1 34 35 interrupts: 36 maxItems: 1 37 38 clocks: 39 items: 40 - description: clock for PDM controller 41 - description: clock for PDM BUS 42 43 clock-names: 44 items: 45 - const: pdm_clk 46 - const: pdm_hclk 47 48 dmas: 49 maxItems: 1 50 51 dma-names: 52 items: 53 - const: rx 54 55 power-domains: 56 maxItems: 1 57 58 resets: 59 items: 60 - description: reset for PDM controller 61 62 reset-names: 63 items: 64 - const: pdm-m 65 66 rockchip,path-map: 67 $ref: /schemas/types.yaml#/definitions/uint32-array 68 description: 69 Defines the mapping of PDM SDIx to PDM PATHx. 70 By default, they are mapped one-to-one. 71 maxItems: 4 72 uniqueItems: true 73 items: 74 enum: [ 0, 1, 2, 3 ] 75 76 "#sound-dai-cells": 77 const: 0 78 79required: 80 - compatible 81 - reg 82 - interrupts 83 - clocks 84 - clock-names 85 - dmas 86 - dma-names 87 - "#sound-dai-cells" 88 89unevaluatedProperties: false 90 91examples: 92 - | 93 #include <dt-bindings/clock/rk3328-cru.h> 94 #include <dt-bindings/interrupt-controller/arm-gic.h> 95 #include <dt-bindings/interrupt-controller/irq.h> 96 #include <dt-bindings/pinctrl/rockchip.h> 97 98 bus { 99 #address-cells = <2>; 100 #size-cells = <2>; 101 102 pdm@ff040000 { 103 compatible = "rockchip,pdm"; 104 reg = <0x0 0xff040000 0x0 0x1000>; 105 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 106 clocks = <&cru SCLK_PDM>, <&cru HCLK_PDM>; 107 clock-names = "pdm_clk", "pdm_hclk"; 108 dmas = <&dmac 16>; 109 dma-names = "rx"; 110 #sound-dai-cells = <0>; 111 pinctrl-names = "default", "sleep"; 112 pinctrl-0 = <&pdmm0_clk 113 &pdmm0_sdi0 114 &pdmm0_sdi1 115 &pdmm0_sdi2 116 &pdmm0_sdi3>; 117 pinctrl-1 = <&pdmm0_clk_sleep 118 &pdmm0_sdi0_sleep 119 &pdmm0_sdi1_sleep 120 &pdmm0_sdi2_sleep 121 &pdmm0_sdi3_sleep>; 122 }; 123 }; 124