snps-dw-apb-uart.yaml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. # SPDX-License-Identifier: GPL-2.0
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/serial/snps-dw-apb-uart.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Synopsys DesignWare ABP UART
  7. maintainers:
  8. - Rob Herring <robh@kernel.org>
  9. allOf:
  10. - $ref: serial.yaml#
  11. - $ref: rs485.yaml#
  12. - if:
  13. properties:
  14. compatible:
  15. items:
  16. - {}
  17. - const: renesas,rzn1-uart
  18. - const: snps,dw-apb-uart
  19. then:
  20. properties:
  21. dmas: false
  22. dma-names: false
  23. - if:
  24. properties:
  25. compatible:
  26. contains:
  27. const: starfive,jh7110-uart
  28. then:
  29. properties:
  30. resets:
  31. minItems: 2
  32. else:
  33. properties:
  34. resets:
  35. maxItems: 1
  36. properties:
  37. compatible:
  38. oneOf:
  39. - items:
  40. - const: renesas,r9a06g032-uart
  41. - const: renesas,rzn1-uart
  42. - const: snps,dw-apb-uart
  43. - items:
  44. - const: renesas,r9a06g032-uart
  45. - const: renesas,rzn1-uart
  46. - items:
  47. - enum:
  48. - anlogic,dr1v90-uart
  49. - brcm,bcm11351-dw-apb-uart
  50. - brcm,bcm21664-dw-apb-uart
  51. - rockchip,px30-uart
  52. - rockchip,rk1808-uart
  53. - rockchip,rk3036-uart
  54. - rockchip,rk3066-uart
  55. - rockchip,rk3128-uart
  56. - rockchip,rk3188-uart
  57. - rockchip,rk3288-uart
  58. - rockchip,rk3308-uart
  59. - rockchip,rk3328-uart
  60. - rockchip,rk3368-uart
  61. - rockchip,rk3399-uart
  62. - rockchip,rk3506-uart
  63. - rockchip,rk3528-uart
  64. - rockchip,rk3562-uart
  65. - rockchip,rk3568-uart
  66. - rockchip,rk3576-uart
  67. - rockchip,rk3588-uart
  68. - rockchip,rv1108-uart
  69. - rockchip,rv1126-uart
  70. - sophgo,sg2044-uart
  71. - starfive,jh7100-hsuart
  72. - starfive,jh7100-uart
  73. - starfive,jh7110-uart
  74. - const: snps,dw-apb-uart
  75. - const: snps,dw-apb-uart
  76. reg:
  77. maxItems: 1
  78. interrupts:
  79. maxItems: 1
  80. clock-frequency: true
  81. clocks:
  82. minItems: 1
  83. maxItems: 2
  84. clock-names:
  85. items:
  86. - const: baudclk
  87. - const: apb_pclk
  88. dmas:
  89. maxItems: 2
  90. dma-names:
  91. items:
  92. - const: tx
  93. - const: rx
  94. snps,uart-16550-compatible:
  95. description: reflects the value of UART_16550_COMPATIBLE configuration
  96. parameter. Define this if your UART does not implement the busy functionality.
  97. type: boolean
  98. power-domains:
  99. maxItems: 1
  100. resets:
  101. minItems: 1
  102. maxItems: 2
  103. reg-shift: true
  104. reg-io-width: true
  105. dcd-override:
  106. description: Override the DCD modem status signal. This signal will
  107. always be reported as active instead of being obtained from the modem
  108. status register. Define this if your serial port does not use this
  109. pin.
  110. type: boolean
  111. dsr-override:
  112. description: Override the DTS modem status signal. This signal will
  113. always be reported as active instead of being obtained from the modem
  114. status register. Define this if your serial port does not use this
  115. pin.
  116. type: boolean
  117. cts-override:
  118. description: Override the CTS modem status signal. This signal will
  119. always be reported as active instead of being obtained from the modem
  120. status register. Define this if your serial port does not use this
  121. pin.
  122. type: boolean
  123. ri-override:
  124. description: Override the RI modem status signal. This signal will always
  125. be reported as inactive instead of being obtained from the modem status
  126. register. Define this if your serial port does not use this pin.
  127. type: boolean
  128. required:
  129. - compatible
  130. - reg
  131. unevaluatedProperties: false
  132. examples:
  133. - |
  134. serial@80230000 {
  135. compatible = "snps,dw-apb-uart";
  136. reg = <0x80230000 0x100>;
  137. clock-frequency = <3686400>;
  138. interrupts = <10>;
  139. reg-shift = <2>;
  140. reg-io-width = <4>;
  141. dcd-override;
  142. dsr-override;
  143. cts-override;
  144. ri-override;
  145. };
  146. - |
  147. // Example with one clock:
  148. serial@80230000 {
  149. compatible = "snps,dw-apb-uart";
  150. reg = <0x80230000 0x100>;
  151. clocks = <&baudclk>;
  152. interrupts = <10>;
  153. reg-shift = <2>;
  154. reg-io-width = <4>;
  155. };
  156. - |
  157. // Example with two clocks:
  158. serial@80230000 {
  159. compatible = "snps,dw-apb-uart";
  160. reg = <0x80230000 0x100>;
  161. clocks = <&baudclk>, <&apb_pclk>;
  162. clock-names = "baudclk", "apb_pclk";
  163. interrupts = <10>;
  164. reg-shift = <2>;
  165. reg-io-width = <4>;
  166. };
  167. ...