On Mon, Aug 30, 2021 at 09:11:01AM +0800, Sugar Zhang wrote:
This patch converts pdm bindings to yaml.
Signed-off-by: Sugar Zhang sugar.zhang@rock-chips.com
Changes in v2:
- Fix yamllint errors.
.../devicetree/bindings/sound/rockchip,pdm.txt | 64 ------------ .../devicetree/bindings/sound/rockchip,pdm.yaml | 115 +++++++++++++++++++++ 2 files changed, 115 insertions(+), 64 deletions(-) delete mode 100644 Documentation/devicetree/bindings/sound/rockchip,pdm.txt create mode 100644 Documentation/devicetree/bindings/sound/rockchip,pdm.yaml
diff --git a/Documentation/devicetree/bindings/sound/rockchip,pdm.txt b/Documentation/devicetree/bindings/sound/rockchip,pdm.txt deleted file mode 100644 index b2d7e47..0000000 --- a/Documentation/devicetree/bindings/sound/rockchip,pdm.txt +++ /dev/null @@ -1,64 +0,0 @@ -* Rockchip PDM controller
-Required properties:
-- compatible: "rockchip,pdm"
- "rockchip,px30-pdm"
- "rockchip,rk1808-pdm"
- "rockchip,rk3308-pdm"
- "rockchip,rk3568-pdm"
- "rockchip,rv1126-pdm"
-- reg: physical base address of the controller and length of memory mapped
- region.
-- dmas: DMA specifiers for rx dma. See the DMA client binding,
- Documentation/devicetree/bindings/dma/dma.txt
-- dma-names: should include "rx". -- clocks: a list of phandle + clock-specifer pairs, one for each entry in clock-names. -- clock-names: should contain following:
- "pdm_hclk": clock for PDM BUS
- "pdm_clk" : clock for PDM controller
-- resets: a list of phandle + reset-specifer paris, one for each entry in reset-names. -- reset-names: reset names, should include "pdm-m". -- pinctrl-names: Must contain a "default" entry. -- pinctrl-N: One property must exist for each entry in
pinctrl-names. See ../pinctrl/pinctrl-bindings.txt
for details of the property values.
-Optional properties: -- rockchip,path-map: This is a variable length array, that shows the mapping
- of SDIx to PATHx. By default, they are one-to-one mapping as follows:
- path0 <-- sdi0
- path1 <-- sdi1
- path2 <-- sdi2
- path3 <-- sdi3
- e.g. "rockchip,path-map = <3 2 1 0>" means the mapping as follows:
- path0 <-- sdi3
- path1 <-- sdi2
- path2 <-- sdi1
- path3 <-- sdi0
-Example for rk3328 PDM controller:
-pdm: pdm@ff040000 {
- compatible = "rockchip,pdm";
- reg = <0x0 0xff040000 0x0 0x1000>;
- clocks = <&clk_pdm>, <&clk_gates28 0>;
- clock-names = "pdm_clk", "pdm_hclk";
- dmas = <&pdma 16>;
- #dma-cells = <1>;
- dma-names = "rx";
- pinctrl-names = "default", "sleep";
- pinctrl-0 = <&pdmm0_clk
&pdmm0_sdi0
&pdmm0_sdi1
&pdmm0_sdi2
&pdmm0_sdi3>;
- pinctrl-1 = <&pdmm0_clk_sleep
&pdmm0_sdi0_sleep
&pdmm0_sdi1_sleep
&pdmm0_sdi2_sleep
&pdmm0_sdi3_sleep>;
-}; diff --git a/Documentation/devicetree/bindings/sound/rockchip,pdm.yaml b/Documentation/devicetree/bindings/sound/rockchip,pdm.yaml new file mode 100644 index 0000000..fa24ddf --- /dev/null +++ b/Documentation/devicetree/bindings/sound/rockchip,pdm.yaml @@ -0,0 +1,115 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/sound/rockchip,pdm.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
+title: Rockchip PDM controller
+description:
- The Pulse Density Modulation Interface Controller (PDMC) is
- a PDM interface controller and decoder that support PDM format.
- It integrates a clock generator driving the PDM microphone
- and embeds filters which decimate the incoming bit stream to
- obtain most common audio rates.
+maintainers:
- Heiko Stuebner heiko@sntech.de
+properties:
- compatible:
- enum:
- rockchip,pdm
- rockchip,px30-pdm
- rockchip,rk1808-pdm
- rockchip,rk3308-pdm
- rockchip,rk3568-pdm
- rockchip,rv1126-pdm
- reg:
- maxItems: 1
- interrupts:
- maxItems: 1
- clocks:
- items:
- description: clock for PDM controller
- description: clock for PDM BUS
- clock-names:
- items:
- const: pdm_clk
- const: pdm_hclk
- dmas:
- maxItems: 1
- dma-names:
- items:
- const: rx
- power-domains:
- maxItems: 1
- resets:
- items:
- description: reset for PDM controller
- reset-names:
- items:
- const: pdm-m
- rockchip,path-map:
- $ref: /schemas/types.yaml#/definitions/uint32-array
- description:
Defines the mapping of PDM SDIx to PDM PATHx.
By default, they are mapped one-to-one.
- items:
- description: which sdi to connect to path 0
- description: which sdi to connect to path 1
- description: which sdi to connect to path 2
- description: which sdi to connect to path 3
This would be more specific in terms of allowed values:
maxItems: 4 uniqueItems: true items: enum: [ 0, 1, 2, 3 ]
- "#sound-dai-cells":
- const: 0
+required:
- compatible
- reg
- interrupts
- clocks
- clock-names
- dmas
- dma-names
- "#sound-dai-cells"
+additionalProperties: false
+examples:
- |
- #include <dt-bindings/clock/rk3328-cru.h>
- #include <dt-bindings/interrupt-controller/arm-gic.h>
- #include <dt-bindings/interrupt-controller/irq.h>
- #include <dt-bindings/pinctrl/rockchip.h>
- pdm@ff040000 {
compatible = "rockchip,pdm";
reg = <0x0 0xff040000 0x0 0x1000>;
interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cru SCLK_PDM>, <&cru HCLK_PDM>;
clock-names = "pdm_clk", "pdm_hclk";
dmas = <&dmac 16>;
dma-names = "rx";
#sound-dai-cells = <0>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&pdmm0_clk
&pdmm0_sdi0
&pdmm0_sdi1
&pdmm0_sdi2
&pdmm0_sdi3>;
pinctrl-1 = <&pdmm0_clk_sleep
&pdmm0_sdi0_sleep
&pdmm0_sdi1_sleep
&pdmm0_sdi2_sleep
&pdmm0_sdi3_sleep>;
- };
-- 2.7.4