Commit 5f115bb9 authored by Krzysztof Kozlowski's avatar Krzysztof Kozlowski Committed by Greg Kroah-Hartman
Browse files

dt-bindings: slimbus: qcom,slim-ngd: convert to DT schema



Convert the Qualcomm SoC SLIMBus Non Generic Device (NGD) controller
bindings to DT Schema.

During conversion add iommus already present in DTS and extend the
example based on SDM845.

Signed-off-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20221118065246.6835-13-srinivas.kandagatla@linaro.org


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 717bd3df
Loading
Loading
Loading
Loading
+120 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/slimbus/qcom,slim-ngd.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm SoC SLIMBus Non Generic Device (NGD) Controller

maintainers:
  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

description:
  SLIMBus NGD controller is a light-weight driver responsible for communicating
  with SLIMBus slaves directly over the bus using messaging interface and
  communicating with master component residing on ADSP for bandwidth and
  data-channel management

properties:
  compatible:
    enum:
      - qcom,slim-ngd-v1.5.0        # for MSM8996
      - qcom,slim-ngd-v2.1.0        # for SDM845

  reg:
    maxItems: 1

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  dmas:
    maxItems: 2

  dma-names:
    items:
      - const: rx
      - const: tx

  interrupts:
    maxItems: 1

  iommus:
    maxItems: 1

patternProperties:
  "^slim@[0-9a-f]+$":
    type: object
    $ref: slimbus.yaml#
    description:
      Each subnode represents an instance of NGD

    properties:
      reg:
        maxItems: 1

    unevaluatedProperties: false

required:
  - compatible
  - reg
  - "#address-cells"
  - "#size-cells"
  - dmas
  - dma-names
  - interrupts

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    slim-ngd@171c0000 {
        compatible = "qcom,slim-ngd-v2.1.0";
        reg = <0x171c0000 0x2c000>;
        interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;

        dmas = <&slimbam 3>, <&slimbam 4>;
        dma-names = "rx", "tx";
        iommus = <&apps_smmu 0x1806 0x0>;
        #address-cells = <1>;
        #size-cells = <0>;

        slim@1 {
            reg = <1>;
            #address-cells = <2>;
            #size-cells = <0>;

            codec@1,0 {
                compatible = "slim217,250";
                reg = <1 0>;
                slim-ifc-dev = <&wcd9340_ifd>;

                #sound-dai-cells = <1>;

                interrupts-extended = <&tlmm 54 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-controller;
                #interrupt-cells = <1>;

                #clock-cells = <0>;
                clock-frequency = <9600000>;
                clock-output-names = "mclk";
                qcom,micbias1-microvolt = <1800000>;
                qcom,micbias2-microvolt = <1800000>;
                qcom,micbias3-microvolt = <1800000>;
                qcom,micbias4-microvolt = <1800000>;

                #address-cells = <1>;
                #size-cells = <1>;

                reset-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;

                /* Rest of the WCD9340 codec */
            };
        };
    };
+0 −82
Original line number Diff line number Diff line
Qualcomm SLIMBus Non Generic Device (NGD) Controller binding

SLIMBus NGD controller is a light-weight driver responsible for communicating
with SLIMBus slaves directly over the bus using messaging interface and
communicating with master component residing on ADSP for bandwidth and
data-channel management

- compatible:
	Usage: required
	Value type: <stringlist>
	Definition: must be "qcom,slim-ngd-v<MAJOR>.<MINOR>.<STEP>"
	must be one of the following.
	"qcom,slim-ngd-v1.5.0" for MSM8996
	"qcom,slim-ngd-v2.1.0" for SDM845

- reg:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: must specify the base address and size of the controller
		    register space.
- dmas
	Usage: required
	Value type: <array of phandles>
	Definition: List of rx and tx dma channels

- dma-names
	Usage: required
	Value type: <stringlist>
	Definition: must be "rx" and "tx".

- interrupts:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: must list controller IRQ.

#address-cells
	Usage: required
	Value type: <u32>
	Definition: Should be 1, reflecting the instance id of ngd.

#size-cells
	Usage: required
	Value type: <u32>
	Definition: Should be 0

= NGD Devices
Each subnode represents an instance of NGD, must contain the following
properties:

- reg:
	Usage: required
	Value type: <u32>
	Definition: Should be instance id of ngd.

#address-cells
	Usage: required
	Refer to slimbus/bus.txt for details of the common SLIMBus bindings.

#size-cells
	Usage: required
	Refer to slimbus/bus.txt for details of the common SLIMBus bindings.

= EXAMPLE

slim@91c0000 {
	compatible = "qcom,slim-ngd-v1.5.0";
	reg = <0x91c0000 0x2c000>;
	interrupts = <0 163 0>;
	dmas =	<&slimbam 3>, <&slimbam 4>;
	dma-names = "rx", "tx";
	#address-cells = <1>;
	#size-cells = <0>;
	ngd@1 {
		reg = <1>;
		#address-cells = <1>;
		#size-cells = <1>;
		codec@1 {
			compatible = "slim217,1a0";
			reg  = <1 0>;
		};
	};
};