gpio-ep9301.yaml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/gpio/gpio-ep9301.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: EP93xx GPIO controller
  7. maintainers:
  8. - Linus Walleij <linus.walleij@linaro.org>
  9. - Bartosz Golaszewski <brgl@bgdev.pl>
  10. - Nikita Shubin <nikita.shubin@maquefel.me>
  11. properties:
  12. compatible:
  13. oneOf:
  14. - const: cirrus,ep9301-gpio
  15. - items:
  16. - enum:
  17. - cirrus,ep9302-gpio
  18. - cirrus,ep9307-gpio
  19. - cirrus,ep9312-gpio
  20. - cirrus,ep9315-gpio
  21. - const: cirrus,ep9301-gpio
  22. reg:
  23. minItems: 2
  24. items:
  25. - description: data register
  26. - description: direction register
  27. - description: interrupt registers base
  28. reg-names:
  29. minItems: 2
  30. items:
  31. - const: data
  32. - const: dir
  33. - const: intr
  34. gpio-controller: true
  35. gpio-ranges: true
  36. "#gpio-cells":
  37. const: 2
  38. interrupt-controller: true
  39. "#interrupt-cells":
  40. const: 2
  41. interrupts:
  42. oneOf:
  43. - maxItems: 1
  44. - description: port F has dedicated irq line for each gpio line
  45. maxItems: 8
  46. required:
  47. - compatible
  48. - reg
  49. - gpio-controller
  50. - "#gpio-cells"
  51. additionalProperties: false
  52. examples:
  53. - |
  54. gpio@80840000 {
  55. compatible = "cirrus,ep9301-gpio";
  56. reg = <0x80840000 0x04>,
  57. <0x80840010 0x04>,
  58. <0x80840090 0x1c>;
  59. reg-names = "data", "dir", "intr";
  60. gpio-controller;
  61. #gpio-cells = <2>;
  62. interrupt-controller;
  63. #interrupt-cells = <2>;
  64. interrupt-parent = <&vic1>;
  65. interrupts = <27>;
  66. };
  67. gpio@80840004 {
  68. compatible = "cirrus,ep9301-gpio";
  69. reg = <0x80840004 0x04>,
  70. <0x80840014 0x04>,
  71. <0x808400ac 0x1c>;
  72. reg-names = "data", "dir", "intr";
  73. gpio-controller;
  74. #gpio-cells = <2>;
  75. interrupt-controller;
  76. #interrupt-cells = <2>;
  77. interrupt-parent = <&vic1>;
  78. interrupts = <27>;
  79. };
  80. gpio@80840008 {
  81. compatible = "cirrus,ep9301-gpio";
  82. reg = <0x80840008 0x04>,
  83. <0x80840018 0x04>;
  84. reg-names = "data", "dir";
  85. gpio-controller;
  86. #gpio-cells = <2>;
  87. };
  88. gpio@8084000c {
  89. compatible = "cirrus,ep9301-gpio";
  90. reg = <0x8084000c 0x04>,
  91. <0x8084001c 0x04>;
  92. reg-names = "data", "dir";
  93. gpio-controller;
  94. #gpio-cells = <2>;
  95. };
  96. gpio@80840020 {
  97. compatible = "cirrus,ep9301-gpio";
  98. reg = <0x80840020 0x04>,
  99. <0x80840024 0x04>;
  100. reg-names = "data", "dir";
  101. gpio-controller;
  102. #gpio-cells = <2>;
  103. };
  104. gpio@80840030 {
  105. compatible = "cirrus,ep9301-gpio";
  106. reg = <0x80840030 0x04>,
  107. <0x80840034 0x04>,
  108. <0x8084004c 0x1c>;
  109. reg-names = "data", "dir", "intr";
  110. gpio-controller;
  111. #gpio-cells = <2>;
  112. interrupt-controller;
  113. #interrupt-cells = <2>;
  114. interrupts-extended = <&vic0 19>, <&vic0 20>,
  115. <&vic0 21>, <&vic0 22>,
  116. <&vic1 15>, <&vic1 16>,
  117. <&vic1 17>, <&vic1 18>;
  118. };
  119. gpio@80840038 {
  120. compatible = "cirrus,ep9301-gpio";
  121. reg = <0x80840038 0x04>,
  122. <0x8084003c 0x04>;
  123. reg-names = "data", "dir";
  124. gpio-controller;
  125. #gpio-cells = <2>;
  126. };
  127. gpio@80840040 {
  128. compatible = "cirrus,ep9301-gpio";
  129. reg = <0x80840040 0x04>,
  130. <0x80840044 0x04>;
  131. reg-names = "data", "dir";
  132. gpio-controller;
  133. #gpio-cells = <2>;
  134. };
  135. ...