qcom,slim-ngd.yaml 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. # SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/slimbus/qcom,slim-ngd.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Qualcomm SoC SLIMBus Non Generic Device (NGD) Controller
  7. maintainers:
  8. - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
  9. - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
  10. description:
  11. SLIMBus NGD controller is a light-weight driver responsible for communicating
  12. with SLIMBus slaves directly over the bus using messaging interface and
  13. communicating with master component residing on ADSP for bandwidth and
  14. data-channel management
  15. properties:
  16. compatible:
  17. enum:
  18. - qcom,slim-ngd-v1.5.0 # for MSM8996
  19. - qcom,slim-ngd-v2.1.0 # for SDM845
  20. reg:
  21. maxItems: 1
  22. "#address-cells":
  23. const: 1
  24. "#size-cells":
  25. const: 0
  26. dmas:
  27. maxItems: 2
  28. dma-names:
  29. items:
  30. - const: rx
  31. - const: tx
  32. interrupts:
  33. maxItems: 1
  34. iommus:
  35. maxItems: 1
  36. patternProperties:
  37. "^slim@[0-9a-f]+$":
  38. type: object
  39. $ref: slimbus.yaml#
  40. description:
  41. Each subnode represents an instance of NGD
  42. properties:
  43. reg:
  44. maxItems: 1
  45. unevaluatedProperties: false
  46. required:
  47. - compatible
  48. - reg
  49. - "#address-cells"
  50. - "#size-cells"
  51. - dmas
  52. - dma-names
  53. - interrupts
  54. additionalProperties: false
  55. examples:
  56. - |
  57. #include <dt-bindings/gpio/gpio.h>
  58. #include <dt-bindings/interrupt-controller/arm-gic.h>
  59. slim-ngd@171c0000 {
  60. compatible = "qcom,slim-ngd-v2.1.0";
  61. reg = <0x171c0000 0x2c000>;
  62. interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
  63. dmas = <&slimbam 3>, <&slimbam 4>;
  64. dma-names = "rx", "tx";
  65. iommus = <&apps_smmu 0x1806 0x0>;
  66. #address-cells = <1>;
  67. #size-cells = <0>;
  68. slim@1 {
  69. reg = <1>;
  70. #address-cells = <2>;
  71. #size-cells = <0>;
  72. codec@1,0 {
  73. compatible = "slim217,250";
  74. reg = <1 0>;
  75. slim-ifc-dev = <&wcd9340_ifd>;
  76. #sound-dai-cells = <1>;
  77. interrupts-extended = <&tlmm 54 IRQ_TYPE_LEVEL_HIGH>;
  78. interrupt-controller;
  79. #interrupt-cells = <1>;
  80. #clock-cells = <0>;
  81. clock-frequency = <9600000>;
  82. clock-output-names = "mclk";
  83. qcom,micbias1-microvolt = <1800000>;
  84. qcom,micbias2-microvolt = <1800000>;
  85. qcom,micbias3-microvolt = <1800000>;
  86. qcom,micbias4-microvolt = <1800000>;
  87. #address-cells = <1>;
  88. #size-cells = <1>;
  89. reset-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
  90. /* Rest of the WCD9340 codec */
  91. };
  92. };
  93. };