actions,atc260x.yaml 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/mfd/actions,atc260x.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Actions Semi ATC260x Power Management IC
  7. maintainers:
  8. - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
  9. - Cristian Ciocaltea <cristian.ciocaltea@gmail.com>
  10. description: |
  11. ATC260x series PMICs integrates Audio Codec, Power Management, RTC, IR
  12. and GPIO controller blocks. Currently only the PM related functionalities
  13. (i.e. regulators and system power-off/reboot) for the ATC2603C and ATC2609A
  14. chip variants are supported.
  15. ATC2603C includes 3 programmable DC-DC converters, 9 programmable LDO
  16. regulators and 1 fixed LDO regulator.
  17. ATC2609A includes 5 programmable DC-DC converters and 10 programmable LDO
  18. regulators.
  19. allOf:
  20. - $ref: /schemas/input/input.yaml
  21. properties:
  22. compatible:
  23. enum:
  24. - actions,atc2603c
  25. - actions,atc2609a
  26. reg:
  27. maxItems: 1
  28. interrupts:
  29. maxItems: 1
  30. reset-time-sec:
  31. description: |
  32. Duration in seconds which the key should be kept pressed for device
  33. to reset automatically. The hardware default is 8. Use 0 to disable
  34. this functionality.
  35. enum: [0, 6, 8, 10, 12]
  36. regulators:
  37. type: object
  38. description: |
  39. List of child nodes specifying the regulators, depending on chip variant:
  40. * ATC2603C: dcdc[1-3], ldo[1-3,5-8,11,12], switchldo1
  41. * ATC2609A: dcdc[0-4], ldo[0-9]
  42. properties:
  43. compatible:
  44. enum:
  45. - actions,atc2603c-regulator
  46. - actions,atc2609a-regulator
  47. switchldo1:
  48. type: object
  49. $ref: /schemas/regulator/regulator.yaml
  50. properties:
  51. regulator-name: true
  52. regulator-boot-on: true
  53. regulator-always-on: true
  54. regulator-min-microvolt: true
  55. regulator-max-microvolt: true
  56. regulator-allow-bypass: true
  57. regulator-active-discharge: true
  58. additionalProperties: false
  59. patternProperties:
  60. "^(dcdc[0-4]|ldo[0-9]|ldo1[1-2]|switchldo1)-supply$":
  61. description: ATC260x voltage regulators supplies
  62. "^(dcdc[0-4]|ldo[0-9]|ldo1[1-2])$":
  63. type: object
  64. $ref: /schemas/regulator/regulator.yaml
  65. properties:
  66. regulator-name: true
  67. regulator-boot-on: true
  68. regulator-always-on: true
  69. regulator-min-microvolt: true
  70. regulator-max-microvolt: true
  71. regulator-allow-bypass: true
  72. additionalProperties: false
  73. allOf:
  74. - if:
  75. properties:
  76. compatible:
  77. contains:
  78. const: actions,atc2603c-regulator
  79. then:
  80. patternProperties:
  81. "^(dcdc[0,4]|ldo[0,4,9])(-supply)?$": false
  82. "^(ldo|dcdc)":
  83. properties:
  84. regulator-allow-bypass: false
  85. - if:
  86. properties:
  87. compatible:
  88. contains:
  89. const: actions,atc2609a-regulator
  90. then:
  91. patternProperties:
  92. "^(ldo1[1-2]|switchldo1)(-supply)?$": false
  93. "^(dcdc|ldo[3-9])":
  94. properties:
  95. regulator-allow-bypass: false
  96. required:
  97. - compatible
  98. additionalProperties: false
  99. additionalProperties: false
  100. required:
  101. - compatible
  102. - reg
  103. - interrupts
  104. examples:
  105. - |
  106. #include <dt-bindings/interrupt-controller/arm-gic.h>
  107. i2c {
  108. #address-cells = <1>;
  109. #size-cells = <0>;
  110. pmic@65 {
  111. compatible = "actions,atc2603c";
  112. reg = <0x65>;
  113. interrupt-parent = <&sirq>;
  114. interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
  115. reset-time-sec = <6>;
  116. regulators {
  117. compatible = "actions,atc2603c-regulator";
  118. dcdc1-supply = <&reg_5v0>;
  119. dcdc3-supply = <&reg_5v0>;
  120. ldo5-supply = <&reg_5v0>;
  121. switchldo1-supply = <&vcc>;
  122. vdd_cpu: dcdc1 {
  123. regulator-name = "VDD_CPU";
  124. regulator-min-microvolt = <700000>;
  125. regulator-max-microvolt = <1400000>;
  126. regulator-always-on;
  127. };
  128. vcc: dcdc3 {
  129. regulator-name = "VCC";
  130. regulator-min-microvolt = <2600000>;
  131. regulator-max-microvolt = <3300000>;
  132. regulator-always-on;
  133. };
  134. vcc_3v1: ldo5 {
  135. regulator-name = "VCC_3V1";
  136. regulator-min-microvolt = <2600000>;
  137. regulator-max-microvolt = <3300000>;
  138. };
  139. sd_vcc: switchldo1 {
  140. regulator-name = "SD_VCC";
  141. regulator-min-microvolt = <3000000>;
  142. regulator-max-microvolt = <3300000>;
  143. regulator-always-on;
  144. regulator-boot-on;
  145. };
  146. };
  147. };
  148. };
  149. ...