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 19properties: 20 compatible: 21 enum: 22 - rockchip,pdm 23 - rockchip,px30-pdm 24 - rockchip,rk1808-pdm 25 - rockchip,rk3308-pdm 26 - rockchip,rk3568-pdm 27 - rockchip,rk3588-pdm 28 - rockchip,rv1126-pdm 29 30 reg: 31 maxItems: 1 32 33 interrupts: 34 maxItems: 1 35 36 clocks: 37 items: 38 - description: clock for PDM controller 39 - description: clock for PDM BUS 40 41 clock-names: 42 items: 43 - const: pdm_clk 44 - const: pdm_hclk 45 46 dmas: 47 maxItems: 1 48 49 dma-names: 50 items: 51 - const: rx 52 53 power-domains: 54 maxItems: 1 55 56 resets: 57 items: 58 - description: reset for PDM controller 59 60 reset-names: 61 items: 62 - const: pdm-m 63 64 rockchip,path-map: 65 $ref: /schemas/types.yaml#/definitions/uint32-array 66 description: 67 Defines the mapping of PDM SDIx to PDM PATHx. 68 By default, they are mapped one-to-one. 69 maxItems: 4 70 uniqueItems: true 71 items: 72 enum: [ 0, 1, 2, 3 ] 73 74 "#sound-dai-cells": 75 const: 0 76 77required: 78 - compatible 79 - reg 80 - interrupts 81 - clocks 82 - clock-names 83 - dmas 84 - dma-names 85 - "#sound-dai-cells" 86 87additionalProperties: false 88 89examples: 90 - | 91 #include <dt-bindings/clock/rk3328-cru.h> 92 #include <dt-bindings/interrupt-controller/arm-gic.h> 93 #include <dt-bindings/interrupt-controller/irq.h> 94 #include <dt-bindings/pinctrl/rockchip.h> 95 96 bus { 97 #address-cells = <2>; 98 #size-cells = <2>; 99 100 pdm@ff040000 { 101 compatible = "rockchip,pdm"; 102 reg = <0x0 0xff040000 0x0 0x1000>; 103 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 104 clocks = <&cru SCLK_PDM>, <&cru HCLK_PDM>; 105 clock-names = "pdm_clk", "pdm_hclk"; 106 dmas = <&dmac 16>; 107 dma-names = "rx"; 108 #sound-dai-cells = <0>; 109 pinctrl-names = "default", "sleep"; 110 pinctrl-0 = <&pdmm0_clk 111 &pdmm0_sdi0 112 &pdmm0_sdi1 113 &pdmm0_sdi2 114 &pdmm0_sdi3>; 115 pinctrl-1 = <&pdmm0_clk_sleep 116 &pdmm0_sdi0_sleep 117 &pdmm0_sdi1_sleep 118 &pdmm0_sdi2_sleep 119 &pdmm0_sdi3_sleep>; 120 }; 121 }; 122