qcom,msm-uartdm.yaml 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. # SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/serial/qcom,msm-uartdm.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Qualcomm MSM Serial UARTDM
  7. maintainers:
  8. - Andy Gross <agross@kernel.org>
  9. - Bjorn Andersson <bjorn.andersson@linaro.org>
  10. - Krzysztof Kozlowski <krzk@kernel.org>
  11. description: |
  12. The MSM serial UARTDM hardware is designed for high-speed use cases where the
  13. transmit and/or receive channels can be offloaded to a dma-engine. From a
  14. software perspective it's mostly compatible with the MSM serial UART except
  15. that it supports reading and writing multiple characters at a time.
  16. Note:: Aliases may be defined to ensure the correct ordering of the UARTs.
  17. The alias serialN will result in the UART being assigned port N. If any
  18. serialN alias exists, then an alias must exist for each enabled UART. The
  19. serialN aliases should be in a .dts file instead of in a .dtsi file.
  20. properties:
  21. compatible:
  22. items:
  23. - enum:
  24. - qcom,msm-uartdm-v1.1
  25. - qcom,msm-uartdm-v1.2
  26. - qcom,msm-uartdm-v1.3
  27. - qcom,msm-uartdm-v1.4
  28. - const: qcom,msm-uartdm
  29. clocks:
  30. maxItems: 2
  31. clock-names:
  32. items:
  33. - const: core
  34. - const: iface
  35. dmas:
  36. maxItems: 2
  37. dma-names:
  38. items:
  39. - const: tx
  40. - const: rx
  41. interconnects:
  42. maxItems: 1
  43. interrupts:
  44. maxItems: 1
  45. operating-points-v2: true
  46. power-domains:
  47. maxItems: 1
  48. qcom,rx-crci:
  49. $ref: /schemas/types.yaml#/definitions/uint32
  50. description:
  51. Identificator for Client Rate Control Interface to be used with RX DMA
  52. channel. Required when using DMA for reception with UARTDM v1.3 and
  53. below.
  54. qcom,tx-crci:
  55. $ref: /schemas/types.yaml#/definitions/uint32
  56. description:
  57. Identificator for Client Rate Control Interface to be used with TX DMA
  58. channel. Required when using DMA for transmission with UARTDM v1.3 and
  59. below.
  60. reg:
  61. minItems: 1
  62. items:
  63. - description: Main control registers
  64. - description: An optional second register location shall specify the GSBI control region.
  65. required:
  66. - compatible
  67. - clock-names
  68. - clocks
  69. - interrupts
  70. - reg
  71. allOf:
  72. - $ref: /schemas/serial/serial.yaml#
  73. - if:
  74. properties:
  75. compatible:
  76. contains:
  77. const: qcom,msm-uartdm-v1.3
  78. then:
  79. properties:
  80. reg:
  81. minItems: 2
  82. else:
  83. properties:
  84. reg:
  85. maxItems: 1
  86. unevaluatedProperties: false
  87. examples:
  88. - |
  89. #include <dt-bindings/interconnect/qcom,msm8996.h>
  90. #include <dt-bindings/interrupt-controller/arm-gic.h>
  91. #include <dt-bindings/power/qcom-rpmpd.h>
  92. serial@f991e000 {
  93. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  94. reg = <0xf991e000 0x1000>;
  95. interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
  96. clocks = <&blsp1_uart2_apps_cxc>, <&blsp1_ahb_cxc>;
  97. clock-names = "core", "iface";
  98. dmas = <&dma0 0>, <&dma0 1>;
  99. dma-names = "tx", "rx";
  100. power-domains = <&rpmpd MSM8996_VDDCX>;
  101. operating-points-v2 = <&uart_opp_table>;
  102. interconnects = <&pnoc MASTER_BLSP_1 &bimc SLAVE_EBI_CH0>;
  103. };