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