# 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.
    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>

    bus {
        #address-cells = <2>;
        #size-cells = <2>;

        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>;
        };
    };
