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