sprd,sc2731.yaml 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/mfd/sprd,sc2731.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Spreadtrum SC27xx PMIC
  7. maintainers:
  8. - Orson Zhai <orsonzhai@gmail.com>
  9. - Baolin Wang <baolin.wang7@gmail.com>
  10. - Chunyan Zhang <zhang.lyra@gmail.com>
  11. description: |
  12. Spreadtrum PMICs belonging to the SC27xx series integrate all mobile handset
  13. power management, audio codec, battery management and user interface support
  14. functions in a single chip. They have 6 major functional blocks:
  15. - DCDCs to support CPU, memory
  16. - LDOs to support both internal and external requirements
  17. - Battery management system, such as charger, fuel gauge
  18. - Audio codec
  19. - User interface functions, such as indicator, flash LED and so on
  20. - IC level interface, such as power on/off control, RTC, typec and so on
  21. properties:
  22. $nodename:
  23. pattern: '^pmic@[0-9a-f]+$'
  24. compatible:
  25. enum:
  26. - sprd,sc2720
  27. - sprd,sc2721
  28. - sprd,sc2723
  29. - sprd,sc2730
  30. - sprd,sc2731
  31. reg:
  32. maxItems: 1
  33. interrupts:
  34. maxItems: 1
  35. interrupt-controller: true
  36. spi-max-frequency: true
  37. '#address-cells':
  38. const: 1
  39. '#interrupt-cells':
  40. const: 1
  41. '#size-cells':
  42. const: 0
  43. regulators:
  44. type: object
  45. $ref: /schemas/regulator/sprd,sc2731-regulator.yaml#
  46. patternProperties:
  47. "^adc@[0-9a-f]+$":
  48. type: object
  49. $ref: /schemas/iio/adc/sprd,sc2720-adc.yaml#
  50. "^charger@[0-9a-f]+$":
  51. type: object
  52. $ref: /schemas/power/supply/sc2731-charger.yaml#
  53. "^efuse@[0-9a-f]+$":
  54. type: object
  55. $ref: /schemas/nvmem/sprd,sc2731-efuse.yaml#
  56. "^fuel-gauge@[0-9a-f]+$":
  57. type: object
  58. $ref: /schemas/power/supply/sc27xx-fg.yaml#
  59. "^gpio@[0-9a-f]+$":
  60. type: object
  61. $ref: /schemas/gpio/sprd,gpio-eic.yaml#
  62. "^led-controller@[0-9a-f]+$":
  63. type: object
  64. $ref: /schemas/leds/sprd,sc2731-bltc.yaml#
  65. "^rtc@[0-9a-f]+$":
  66. type: object
  67. $ref: /schemas/rtc/sprd,sc2731-rtc.yaml#
  68. "^vibrator@[0-9a-f]+$":
  69. type: object
  70. $ref: /schemas/input/sprd,sc27xx-vibrator.yaml#
  71. required:
  72. - compatible
  73. - reg
  74. - interrupts
  75. - interrupt-controller
  76. - spi-max-frequency
  77. - '#address-cells'
  78. - '#interrupt-cells'
  79. - '#size-cells'
  80. additionalProperties: false
  81. examples:
  82. - |
  83. #include <dt-bindings/gpio/gpio.h>
  84. #include <dt-bindings/interrupt-controller/arm-gic.h>
  85. #include <dt-bindings/interrupt-controller/irq.h>
  86. #include <dt-bindings/leds/common.h>
  87. spi {
  88. #address-cells = <1>;
  89. #size-cells = <0>;
  90. sc2731_pmic: pmic@0 {
  91. compatible = "sprd,sc2731";
  92. reg = <0>;
  93. interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
  94. interrupt-controller;
  95. spi-max-frequency = <26000000>;
  96. #address-cells = <1>;
  97. #interrupt-cells = <1>;
  98. #size-cells = <0>;
  99. charger@0 {
  100. compatible = "sprd,sc2731-charger";
  101. reg = <0x0>;
  102. phys = <&ssphy>;
  103. monitored-battery = <&bat>;
  104. };
  105. led-controller@200 {
  106. compatible = "sprd,sc2731-bltc";
  107. reg = <0x200>;
  108. #address-cells = <1>;
  109. #size-cells = <0>;
  110. led@0 {
  111. reg = <0x0>;
  112. color = <LED_COLOR_ID_RED>;
  113. };
  114. led@1 {
  115. reg = <0x1>;
  116. color = <LED_COLOR_ID_GREEN>;
  117. };
  118. led@2 {
  119. reg = <0x2>;
  120. color = <LED_COLOR_ID_BLUE>;
  121. };
  122. };
  123. rtc@280 {
  124. compatible = "sprd,sc2731-rtc";
  125. reg = <0x280>;
  126. interrupt-parent = <&sc2731_pmic>;
  127. interrupts = <2>;
  128. };
  129. pmic_eic: gpio@300 {
  130. compatible = "sprd,sc2731-eic";
  131. reg = <0x300>;
  132. interrupt-parent = <&sc2731_pmic>;
  133. interrupts = <5>;
  134. gpio-controller;
  135. #gpio-cells = <2>;
  136. interrupt-controller;
  137. #interrupt-cells = <2>;
  138. };
  139. efuse@380 {
  140. compatible = "sprd,sc2731-efuse";
  141. reg = <0x380>;
  142. hwlocks = <&hwlock 12>;
  143. #address-cells = <1>;
  144. #size-cells = <1>;
  145. /* Data cells */
  146. fgu_calib: calib@6 {
  147. reg = <0x6 0x2>;
  148. bits = <0 9>;
  149. };
  150. adc_big_scale: calib@24 {
  151. reg = <0x24 0x2>;
  152. };
  153. adc_small_scale: calib@26 {
  154. reg = <0x26 0x2>;
  155. };
  156. };
  157. pmic_adc: adc@480 {
  158. compatible = "sprd,sc2731-adc";
  159. reg = <0x480>;
  160. interrupt-parent = <&sc2731_pmic>;
  161. interrupts = <0>;
  162. #io-channel-cells = <1>;
  163. hwlocks = <&hwlock 4>;
  164. nvmem-cells = <&adc_big_scale>, <&adc_small_scale>;
  165. nvmem-cell-names = "big_scale_calib", "small_scale_calib";
  166. };
  167. fuel-gauge@a00 {
  168. compatible = "sprd,sc2731-fgu";
  169. reg = <0xa00>;
  170. battery-detect-gpios = <&pmic_eic 9 GPIO_ACTIVE_HIGH>;
  171. interrupt-parent = <&sc2731_pmic>;
  172. interrupts = <4>;
  173. io-channels = <&pmic_adc 5>, <&pmic_adc 14>;
  174. io-channel-names = "bat-temp", "charge-vol";
  175. nvmem-cells = <&fgu_calib>;
  176. nvmem-cell-names = "fgu_calib";
  177. monitored-battery = <&bat>;
  178. sprd,calib-resistance-micro-ohms = <21500>;
  179. };
  180. vibrator@ec8 {
  181. compatible = "sprd,sc2731-vibrator";
  182. reg = <0xec8>;
  183. };
  184. regulators {
  185. compatible = "sprd,sc2731-regulator";
  186. BUCK_CPU0 {
  187. regulator-name = "vddarm0";
  188. regulator-min-microvolt = <400000>;
  189. regulator-max-microvolt = <1996875>;
  190. regulator-ramp-delay = <25000>;
  191. regulator-always-on;
  192. };
  193. LDO_CAMA0 {
  194. regulator-name = "vddcama0";
  195. regulator-min-microvolt = <1200000>;
  196. regulator-max-microvolt = <3750000>;
  197. regulator-enable-ramp-delay = <100>;
  198. };
  199. };
  200. };
  201. };
  202. ...