On 20/10/2022 09:06, Srinivasa Rao Mandadapu wrote: > Convert soundwire text bindings to DT Schema format. > > Update interrupt property items as per device tree, > as it is not appropriately described in text file. > > Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@xxxxxxxxxxx> > Co-developed-by: Ratna Deepthi Kudaravalli <quic_rkudarav@xxxxxxxxxxx> > Signed-off-by: Ratna Deepthi Kudaravalli <quic_rkudarav@xxxxxxxxxxx> > --- Thank you for your patch. There is something to discuss/improve. > -}; > diff --git a/Documentation/devicetree/bindings/soundwire/qcom,soundwire.yaml b/Documentation/devicetree/bindings/soundwire/qcom,soundwire.yaml > new file mode 100644 > index 0000000..12cd3c1 > --- /dev/null > +++ b/Documentation/devicetree/bindings/soundwire/qcom,soundwire.yaml > @@ -0,0 +1,184 @@ > +# 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@xxxxxxxxxx> > + - Srinivasa Rao Mandadapu <quic_srivasam@xxxxxxxxxxx> > + > +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 > + > + reg: > + maxItems: 1 > + > + interrupts: > + items: > + - description: specify the SoundWire controller core. > + - description: specify the Soundwire controller wake IRQ. The second property was optional. You need to test DTS before sending the bindings. Please run `make dtbs_check` (see Documentation/devicetree/bindings/writing-schema.rst for instructions). IOW, you need here: minItems: 1 > + > + interrupt-names: minItems: 1 > + items: > + - const: wakeup > + - const: core That's definitely wrong order and should not pass any tests... > + > + 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. > + maxItems: 5 > + > + qcom,ports-sinterval-low: > + $ref: /schemas/types.yaml#/definitions/uint8-array > + description: sample interval low of each data port. > + maxItems: 5 > + > + qcom,ports-offset1: > + $ref: /schemas/types.yaml#/definitions/uint8-array > + description: payload transport window offset1 of each data port. You miss here some pieces of original description, > + maxItems: 5 > + > + qcom,ports-offset2: > + $ref: /schemas/types.yaml#/definitions/uint8-array > + description: payload transport window offset2 of each data port. Ditto - and in other places. > + maxItems: 5 > + > + qcom,ports-lane-control: > + $ref: /schemas/types.yaml#/definitions/uint8-array > + description: identify which data lane the data port uses. > + maxItems: 5 > + > + qcom,ports-block-pack-mode: > + $ref: /schemas/types.yaml#/definitions/uint8-array > + description: indicate the block packing mode. > + maxItems: 5 > + > + qcom,ports-hstart: > + $ref: /schemas/types.yaml#/definitions/uint8-array > + description: identifying lowerst numbered coloum in SoundWire frame. > + maxItems: 5 > + > + qcom,ports-hstop: > + $ref: /schemas/types.yaml#/definitions/uint8-array > + description: identifying highest numbered coloum in SoundWire frame. > + maxItems: 5 > + > + qcom,ports-block-group-count: > + $ref: /schemas/types.yaml#/definitions/uint8-array > + description: indicate how many sample intervals are combined into a payload. > + maxItems: 5 > + > + codec@4: It's too specific. What if different device uses different address? You need patternProperties "^codec@[0-9a-f]+$" > + $ref: ../sound/qcom,wcd938x-sdw.yaml# Full path, so /schemas/sound/qcom,wcd..... Cannot we have other codecs attached? For example check SC7280 IDP, SM8250 MTP, RB5. > + description: > + Qualcomm WCD9380/WCD9385 Codec is a standalone Hi-Fi audio codec IC. > + It has RX and TX Soundwire slave devices. This bindings is for the > + slave devices. > + type: object > + > +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>; > + Missing interrupt names. Best regards, Krzysztof