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