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