124 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---4$id: http://devicetree.org/schemas/sound/rockchip,pdm.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Rockchip PDM controller8 9description:10 The Pulse Density Modulation Interface Controller (PDMC) is11 a PDM interface controller and decoder that support PDM format.12 It integrates a clock generator driving the PDM microphone13 and embeds filters which decimate the incoming bit stream to14 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,pdm26 - rockchip,px30-pdm27 - rockchip,rk1808-pdm28 - rockchip,rk3308-pdm29 - rockchip,rk3568-pdm30 - rockchip,rv1126-pdm31 32 reg:33 maxItems: 134 35 interrupts:36 maxItems: 137 38 clocks:39 items:40 - description: clock for PDM controller41 - description: clock for PDM BUS42 43 clock-names:44 items:45 - const: pdm_clk46 - const: pdm_hclk47 48 dmas:49 maxItems: 150 51 dma-names:52 items:53 - const: rx54 55 power-domains:56 maxItems: 157 58 resets:59 items:60 - description: reset for PDM controller61 62 reset-names:63 items:64 - const: pdm-m65 66 rockchip,path-map:67 $ref: /schemas/types.yaml#/definitions/uint32-array68 description:69 Defines the mapping of PDM SDIx to PDM PATHx.70 By default, they are mapped one-to-one.71 maxItems: 472 uniqueItems: true73 items:74 enum: [ 0, 1, 2, 3 ]75 76 "#sound-dai-cells":77 const: 078 79required:80 - compatible81 - reg82 - interrupts83 - clocks84 - clock-names85 - dmas86 - dma-names87 - "#sound-dai-cells"88 89unevaluatedProperties: false90 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_clk113 &pdmm0_sdi0114 &pdmm0_sdi1115 &pdmm0_sdi2116 &pdmm0_sdi3>;117 pinctrl-1 = <&pdmm0_clk_sleep118 &pdmm0_sdi0_sleep119 &pdmm0_sdi1_sleep120 &pdmm0_sdi2_sleep121 &pdmm0_sdi3_sleep>;122 };123 };124