mbox series

[v2,0/7] Patches to update for rockchip pdm

Message ID 1630285788-28002-1-git-send-email-sugar.zhang@rock-chips.com
Headers show
Series Patches to update for rockchip pdm | expand

Message

sugar zhang Aug. 30, 2021, 1:09 a.m. UTC
These patches fixup or update for rockchip pdm.

Changes in v2:
- Fix yamllint errors.

Sugar Zhang (7):
  ASoC: rockchip: Add support for rv1126 pdm
  ASoC: dt-bindings: rockchip: Add binding for rv1126 pdm
  ASoC: rockchip: pdm: Add support for rk3568 pdm
  ASoC: dt-bindings: rockchip: Add binding for rk3568 pdm
  ASoC: rockchip: pdm: Add support for path map
  ASoC: dt-bindings: rockchip: pdm: Document property
    'rockchip,path-map'
  ASoC: dt-bindings: rockchip: Convert pdm bindings to yaml

 .../devicetree/bindings/sound/rockchip,pdm.txt     |  46 ---------
 .../devicetree/bindings/sound/rockchip,pdm.yaml    | 115 +++++++++++++++++++++
 sound/soc/rockchip/rockchip_pdm.c                  | 112 ++++++++++++++++++--
 sound/soc/rockchip/rockchip_pdm.h                  |   6 ++
 4 files changed, 227 insertions(+), 52 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/sound/rockchip,pdm.txt
 create mode 100644 Documentation/devicetree/bindings/sound/rockchip,pdm.yaml

Comments

Rob Herring (Arm) Aug. 30, 2021, 11:49 a.m. UTC | #1
On Mon, 30 Aug 2021 09:11:01 +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
> 

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/sound/rockchip,pdm.example.dt.yaml: example-0: pdm@ff040000:reg:0: [0, 4278452224, 0, 4096] is too long
	From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/reg.yaml

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/patch/1522032

This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit.
Rob Herring (Arm) Aug. 31, 2021, 10:29 p.m. UTC | #2
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

> 

> 

> 

>