Just as unevaluatedProperties or additionalProperties are required at the top level of schemas, they should (and will) also be required for child node schemas. That ensures only documented properties are present. Add unevaluatedProperties or additionalProperties as appropriate, and then add any missing properties flagged by the addition. Acked-by: Sebastian Reichel <sebastian.reichel@collabora.com> Acked-by: Guenter Roeck <linux@roeck-us.net> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Acked-by: Mark Brown <broonie@kernel.org> Acked-by: Lee Jones <lee@kernel.org> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20230124230228.372305-1-robh@kernel.org Signed-off-by: Rob Herring <robh@kernel.org>
272 lines
7.8 KiB
YAML
272 lines
7.8 KiB
YAML
# 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
|
|
|
|
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: 8
|
|
|
|
qcom,ports-sinterval-low:
|
|
$ref: /schemas/types.yaml#/definitions/uint8-array
|
|
description:
|
|
Sample interval low 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: 8
|
|
|
|
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: 8
|
|
|
|
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: 8
|
|
|
|
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: 8
|
|
|
|
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: 8
|
|
items:
|
|
oneOf:
|
|
- minimum: 0
|
|
maximum: 1
|
|
- const: 0xff
|
|
|
|
qcom,ports-hstart:
|
|
$ref: /schemas/types.yaml#/definitions/uint8-array
|
|
description:
|
|
Identifying lowerst numbered coloum 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: 8
|
|
items:
|
|
oneOf:
|
|
- minimum: 0
|
|
maximum: 15
|
|
- const: 0xff
|
|
|
|
qcom,ports-hstop:
|
|
$ref: /schemas/types.yaml#/definitions/uint8-array
|
|
description:
|
|
Identifying highest numbered coloum 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: 8
|
|
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: 8
|
|
items:
|
|
oneOf:
|
|
- minimum: 0
|
|
maximum: 4
|
|
- const: 0xff
|
|
|
|
label:
|
|
maxItems: 1
|
|
|
|
patternProperties:
|
|
"^.*@[0-9a-f],[0-9a-f]$":
|
|
type: object
|
|
additionalProperties: true
|
|
description:
|
|
Child nodes for a standalone audio codec or speaker amplifier IC.
|
|
It has RX and TX Soundwire secondary devices.
|
|
properties:
|
|
compatible:
|
|
pattern: "^sdw[0-9a-f]{1}[0-9a-f]{4}[0-9a-f]{4}[0-9a-f]{2}$"
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- interrupts
|
|
- clocks
|
|
- clock-names
|
|
- '#sound-dai-cells'
|
|
- '#address-cells'
|
|
- '#size-cells'
|
|
- qcom,dout-ports
|
|
- qcom,din-ports
|
|
- qcom,ports-sinterval-low
|
|
- qcom,ports-offset1
|
|
- qcom,ports-offset2
|
|
|
|
additionalProperties: 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>;
|
|
};
|
|
};
|