# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/soundwire/qcom,soundwire.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm SoundWire Controller

maintainers:
  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
  - Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>

description:
  The Qualcomm SoundWire controller along with its board specific bus parameters.

properties:
  compatible:
    enum:
      - qcom,soundwire-v1.3.0
      - qcom,soundwire-v1.5.0
      - qcom,soundwire-v1.5.1
      - qcom,soundwire-v1.6.0
      - qcom,soundwire-v1.7.0
      - qcom,soundwire-v2.0.0

  reg:
    maxItems: 1

  interrupts:
    minItems: 1
    items:
      - description: specify the SoundWire controller core.
      - description: specify the Soundwire controller wake IRQ.

  interrupt-names:
    minItems: 1
    items:
      - const: core
      - const: wakeup

  clocks:
    items:
      - description: iface clock

  clock-names:
    items:
      - const: iface

  resets:
    items:
      - description: SWR_AUDIO_CGCR RESET

  reset-names:
    items:
      - const: swr_audio_cgcr

  '#sound-dai-cells':
    const: 1

  '#address-cells':
    const: 2

  '#size-cells':
    const: 0

  wakeup-source: true

  qcom,din-ports:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: count of data in ports

  qcom,dout-ports:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: count of data out ports

  qcom,ports-word-length:
    $ref: /schemas/types.yaml#/definitions/uint8-array
    description:
      Size of payload channel sample.
      Value of 0xff indicates that this option is not implemented
      or applicable for the respective data port.
      More info in MIPI Alliance SoundWire 1.0 Specifications.
    minItems: 3
    maxItems: 16

  qcom,ports-sinterval-low:
    $ref: /schemas/types.yaml#/definitions/uint8-array
    description:
      Sample interval (only lowest byte) of each data port.
      Out ports followed by In ports. Used for Sample Interval calculation.
      Value of 0xff indicates that this option is not implemented
      or applicable for the respective data port.
      More info in MIPI Alliance SoundWire 1.0 Specifications.
    minItems: 3
    maxItems: 16

  qcom,ports-sinterval:
    $ref: /schemas/types.yaml#/definitions/uint16-array
    description:
      Sample interval of each data port.
      Out ports followed by In ports. Used for Sample Interval calculation.
      Value of 0xffff indicates that this option is not implemented
      or applicable for the respective data port.
      More info in MIPI Alliance SoundWire 1.0 Specifications.
    minItems: 3
    maxItems: 16

  qcom,ports-offset1:
    $ref: /schemas/types.yaml#/definitions/uint8-array
    description:
      Payload transport window offset1 of each data port.
      Out ports followed by In ports.
      Value of 0xff indicates that this option is not implemented
      or applicable for the respective data port.
      More info in MIPI Alliance SoundWire 1.0 Specifications.
    minItems: 3
    maxItems: 16

  qcom,ports-offset2:
    $ref: /schemas/types.yaml#/definitions/uint8-array
    description:
      Payload transport window offset2 of each data port.
      Out ports followed by In ports.
      Value of 0xff indicates that this option is not implemented
      or applicable for the respective data port.
      More info in MIPI Alliance SoundWire 1.0 Specifications.
    minItems: 3
    maxItems: 16

  qcom,ports-lane-control:
    $ref: /schemas/types.yaml#/definitions/uint8-array
    description:
      Identify which data lane the data port uses.
      Out ports followed by In ports.
      Value of 0xff indicates that this option is not implemented
      or applicable for the respective data port.
      More info in MIPI Alliance SoundWire 1.0 Specifications.
    minItems: 3
    maxItems: 16

  qcom,ports-block-pack-mode:
    $ref: /schemas/types.yaml#/definitions/uint8-array
    description:
      Indicate the block packing mode.
      0 to indicate Blocks are per Channel
      1 to indicate Blocks are per Port.
      Out ports followed by In ports.
      Value of 0xff indicates that this option is not implemented
      or applicable for the respective data port.
      More info in MIPI Alliance SoundWire 1.0 Specifications.
    minItems: 3
    maxItems: 16
    items:
      oneOf:
        - minimum: 0
          maximum: 1
        - const: 0xff

  qcom,ports-hstart:
    $ref: /schemas/types.yaml#/definitions/uint8-array
    description:
      Identifying lowerst numbered column in SoundWire Frame,
      i.e. left edge of the Transport sub-frame for each port.
      Out ports followed by In ports.
      Value of 0xff indicates that this option is not implemented
      or applicable for the respective data port.
      More info in MIPI Alliance SoundWire 1.0 Specifications.
    minItems: 3
    maxItems: 16
    items:
      oneOf:
        - minimum: 0
          maximum: 15
        - const: 0xff

  qcom,ports-hstop:
    $ref: /schemas/types.yaml#/definitions/uint8-array
    description:
      Identifying highest numbered column in SoundWire Frame,
      i.e. the right edge of the Transport
      sub-frame for each port. Out ports followed by In ports.
      Value of 0xff indicates that this option is not implemented
      or applicable for the respective data port.
      More info in MIPI Alliance SoundWire 1.0 Specifications.
    minItems: 3
    maxItems: 16
    items:
      oneOf:
        - minimum: 0
          maximum: 15
        - const: 0xff

  qcom,ports-block-group-count:
    $ref: /schemas/types.yaml#/definitions/uint8-array
    description:
      In range 1 to 4 to indicate how many sample intervals are combined
      into a payload. Out ports followed by In ports.
      Value of 0xff indicates that this option is not implemented
      or applicable for the respective data port.
      More info in MIPI Alliance SoundWire 1.0 Specifications.
    minItems: 3
    maxItems: 16
    items:
      oneOf:
        - minimum: 0
          maximum: 4
        - const: 0xff

  label:
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - '#sound-dai-cells'
  - '#address-cells'
  - '#size-cells'
  - qcom,dout-ports
  - qcom,din-ports
  - qcom,ports-offset1
  - qcom,ports-offset2

oneOf:
  - required:
      - qcom,ports-sinterval-low
  - required:
      - qcom,ports-sinterval

allOf:
  - $ref: soundwire-controller.yaml#

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/clock/qcom,lpassaudiocc-sc7280.h>

    soundwire@3210000 {
        compatible = "qcom,soundwire-v1.6.0";
        reg = <0x03210000 0x2000>;

        interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
                     <&pdc 130 IRQ_TYPE_LEVEL_HIGH>;

        interrupt-names = "core", "wakeup";

        clocks = <&lpass_rx_macro>;
        clock-names = "iface";

        qcom,din-ports = <0>;
        qcom,dout-ports = <5>;

        resets = <&lpass_audiocc LPASS_AUDIO_SWR_RX_CGCR>;
        reset-names = "swr_audio_cgcr";

        qcom,ports-word-length =        /bits/ 8 <0x01 0x07 0x04 0xff 0xff>;
        qcom,ports-sinterval-low =      /bits/ 8 <0x03 0x3f 0x1f 0x03 0x03>;
        qcom,ports-offset1 =            /bits/ 8 <0x00 0x00 0x0b 0x01 0x01>;
        qcom,ports-offset2 =            /bits/ 8 <0x00 0x00 0x0b 0x00 0x00>;
        qcom,ports-lane-control =       /bits/ 8 <0x01 0x00 0x00 0x00 0x00>;
        qcom,ports-block-pack-mode =    /bits/ 8 <0xff 0x00 0x01 0xff 0xff>;
        qcom,ports-hstart =             /bits/ 8 <0xff 0x03 0xff 0xff 0xff>;
        qcom,ports-hstop =              /bits/ 8 <0xff 0x06 0xff 0xff 0xff>;
        qcom,ports-block-group-count =  /bits/ 8 <0xff 0xff 0xff 0xff 0x00>;

        #sound-dai-cells = <1>;
        #address-cells = <2>;
        #size-cells = <0>;

        codec@0,4 {
            compatible = "sdw20217010d00";
            reg = <0 4>;
            qcom,rx-port-mapping = <1 2 3 4 5>;
        };
    };
