[PATCH v2 7/7] ASoC: dt-bindings: rockchip: Convert pdm bindings to yaml
Rob Herring
robh at kernel.org
Tue Aug 31 15:29:02 PDT 2021
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 at 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 at 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 at 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 at 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
>
>
>
>
More information about the Linux-rockchip
mailing list