ste-ab8505.dtsi 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. /*
  3. * Copyright 2012 Linaro Ltd
  4. */
  5. #include <dt-bindings/clock/ste-ab8500.h>
  6. / {
  7. /* Essential housekeeping hardware monitors */
  8. iio-hwmon {
  9. compatible = "iio-hwmon";
  10. io-channels = <&gpadc 0x02>, /* Battery temperature */
  11. <&gpadc 0x08>, /* Main battery voltage */
  12. <&gpadc 0x09>, /* VBUS */
  13. <&gpadc 0x0b>, /* Charger current */
  14. <&gpadc 0x0c>, /* Backup battery voltage */
  15. <&gpadc 0x0d>; /* Die temperature */
  16. };
  17. soc {
  18. prcmu@80157000 {
  19. ab8505 {
  20. compatible = "stericsson,ab8505";
  21. interrupt-parent = <&intc>;
  22. interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
  23. interrupt-controller;
  24. #interrupt-cells = <2>;
  25. #address-cells = <1>;
  26. #size-cells = <0>;
  27. ab8500_clock: clock-controller {
  28. compatible = "stericsson,ab8500-clk";
  29. #clock-cells = <1>;
  30. };
  31. ab8505_gpio: gpio {
  32. compatible = "stericsson,ab8505-gpio";
  33. gpio-controller;
  34. #gpio-cells = <2>;
  35. };
  36. rtc {
  37. compatible = "stericsson,ab8500-rtc";
  38. interrupts = <17 IRQ_TYPE_LEVEL_HIGH>,
  39. <18 IRQ_TYPE_LEVEL_HIGH>;
  40. interrupt-names = "60S", "ALARM";
  41. };
  42. gpadc: adc {
  43. compatible = "stericsson,ab8500-gpadc";
  44. interrupts = <39 IRQ_TYPE_LEVEL_HIGH>;
  45. interrupt-names = "SW_CONV_END";
  46. vddadc-supply = <&ab8500_ldo_adc_reg>;
  47. #address-cells = <1>;
  48. #size-cells = <0>;
  49. #io-channel-cells = <1>;
  50. /* GPADC channels */
  51. bat_ctrl: channel@1 {
  52. reg = <0x01>;
  53. };
  54. btemp_ball: channel@2 {
  55. reg = <0x02>;
  56. };
  57. acc_detect1: channel@4 {
  58. reg = <0x04>;
  59. };
  60. acc_detect2: channel@5 {
  61. reg = <0x05>;
  62. };
  63. adc_aux1: channel@6 {
  64. reg = <0x06>;
  65. };
  66. adc_aux2: channel@7 {
  67. reg = <0x07>;
  68. };
  69. main_batt_v: channel@8 {
  70. reg = <0x08>;
  71. };
  72. vbus_v: channel@9 {
  73. reg = <0x09>;
  74. };
  75. charger_c: channel@b {
  76. reg = <0x0b>;
  77. };
  78. bk_bat_v: channel@c {
  79. reg = <0x0c>;
  80. };
  81. die_temp: channel@d {
  82. reg = <0x0d>;
  83. };
  84. usb_id: channel@e {
  85. reg = <0x0e>;
  86. };
  87. };
  88. thermal {
  89. compatible = "stericsson,abx500-temp";
  90. interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
  91. interrupt-names = "ABX500_TEMP_WARM";
  92. };
  93. ab8500_fg {
  94. compatible = "stericsson,ab8500-fg";
  95. interrupts = <24 IRQ_TYPE_LEVEL_HIGH>,
  96. <8 IRQ_TYPE_LEVEL_HIGH>,
  97. <28 IRQ_TYPE_LEVEL_HIGH>,
  98. <27 IRQ_TYPE_LEVEL_HIGH>,
  99. <26 IRQ_TYPE_LEVEL_HIGH>;
  100. interrupt-names = "NCONV_ACCU",
  101. "BATT_OVV",
  102. "LOW_BAT_F",
  103. "CC_INT_CALIB",
  104. "CCEOC";
  105. monitored-battery = <&battery>;
  106. io-channels = <&gpadc 0x08>;
  107. io-channel-names = "main_bat_v";
  108. };
  109. ab8500_btemp {
  110. compatible = "stericsson,ab8500-btemp";
  111. interrupts = <20 IRQ_TYPE_LEVEL_HIGH>,
  112. <80 IRQ_TYPE_LEVEL_HIGH>,
  113. <83 IRQ_TYPE_LEVEL_HIGH>,
  114. <81 IRQ_TYPE_LEVEL_HIGH>,
  115. <82 IRQ_TYPE_LEVEL_HIGH>;
  116. interrupt-names = "BAT_CTRL_INDB",
  117. "BTEMP_LOW",
  118. "BTEMP_HIGH",
  119. "BTEMP_LOW_MEDIUM",
  120. "BTEMP_MEDIUM_HIGH";
  121. monitored-battery = <&battery>;
  122. io-channels = <&gpadc 0x02>,
  123. <&gpadc 0x01>;
  124. io-channel-names = "btemp_ball",
  125. "bat_ctrl";
  126. };
  127. ab8500_charger {
  128. compatible = "stericsson,ab8500-charger";
  129. interrupts = <10 IRQ_TYPE_LEVEL_HIGH>,
  130. <11 IRQ_TYPE_LEVEL_HIGH>,
  131. <0 IRQ_TYPE_LEVEL_HIGH>,
  132. <107 IRQ_TYPE_LEVEL_HIGH>,
  133. <106 IRQ_TYPE_LEVEL_HIGH>,
  134. <14 IRQ_TYPE_LEVEL_HIGH>,
  135. <15 IRQ_TYPE_LEVEL_HIGH>,
  136. <79 IRQ_TYPE_LEVEL_HIGH>,
  137. <105 IRQ_TYPE_LEVEL_HIGH>,
  138. <104 IRQ_TYPE_LEVEL_HIGH>,
  139. <89 IRQ_TYPE_LEVEL_HIGH>,
  140. <22 IRQ_TYPE_LEVEL_HIGH>,
  141. <21 IRQ_TYPE_LEVEL_HIGH>,
  142. <16 IRQ_TYPE_LEVEL_HIGH>;
  143. interrupt-names = "MAIN_CH_UNPLUG_DET",
  144. "MAIN_CHARGE_PLUG_DET",
  145. "MAIN_EXT_CH_NOT_OK",
  146. "MAIN_CH_TH_PROT_R",
  147. "MAIN_CH_TH_PROT_F",
  148. "VBUS_DET_F",
  149. "VBUS_DET_R",
  150. "USB_LINK_STATUS",
  151. "USB_CH_TH_PROT_R",
  152. "USB_CH_TH_PROT_F",
  153. "USB_CHARGER_NOT_OKR",
  154. "VBUS_OVV",
  155. "CH_WD_EXP",
  156. "VBUS_CH_DROP_END";
  157. monitored-battery = <&battery>;
  158. vddadc-supply = <&ab8500_ldo_adc_reg>;
  159. io-channels = <&gpadc 0x09>,
  160. <&gpadc 0x0b>;
  161. io-channel-names = "vbus_v",
  162. "usb_charger_c";
  163. };
  164. ab8500_chargalg {
  165. compatible = "stericsson,ab8500-chargalg";
  166. monitored-battery = <&battery>;
  167. };
  168. ab8500_usb: phy {
  169. compatible = "stericsson,ab8500-usb";
  170. interrupts = <90 IRQ_TYPE_LEVEL_HIGH>,
  171. <96 IRQ_TYPE_LEVEL_HIGH>,
  172. <14 IRQ_TYPE_LEVEL_HIGH>,
  173. <15 IRQ_TYPE_LEVEL_HIGH>,
  174. <79 IRQ_TYPE_LEVEL_HIGH>,
  175. <74 IRQ_TYPE_LEVEL_HIGH>,
  176. <75 IRQ_TYPE_LEVEL_HIGH>;
  177. interrupt-names = "ID_WAKEUP_R",
  178. "ID_WAKEUP_F",
  179. "VBUS_DET_F",
  180. "VBUS_DET_R",
  181. "USB_LINK_STATUS",
  182. "USB_ADP_PROBE_PLUG",
  183. "USB_ADP_PROBE_UNPLUG";
  184. vddulpivio18-supply = <&ab8500_ldo_intcore_reg>;
  185. v-ape-supply = <&db8500_vape_reg>;
  186. musb_1v8-supply = <&db8500_vsmps2_reg>;
  187. clocks = <&prcmu_clk PRCMU_SYSCLK>;
  188. clock-names = "sysclk";
  189. #phy-cells = <0>;
  190. };
  191. key {
  192. compatible = "stericsson,ab8500-poweron-key";
  193. interrupts = <6 IRQ_TYPE_LEVEL_HIGH>,
  194. <7 IRQ_TYPE_LEVEL_HIGH>;
  195. interrupt-names = "ONKEY_DBF", "ONKEY_DBR";
  196. };
  197. ab8500-sysctrl {
  198. compatible = "stericsson,ab8500-sysctrl";
  199. };
  200. pwm@1 {
  201. compatible = "stericsson,ab8500-pwm";
  202. reg = <1>;
  203. clocks = <&ab8500_clock AB8500_SYSCLK_INT>;
  204. clock-names = "intclk";
  205. #pwm-cells = <1>;
  206. };
  207. codec: codec {
  208. compatible = "stericsson,ab8500-codec";
  209. V-AUD-supply = <&ab8500_ldo_audio_reg>;
  210. V-AMIC1-supply = <&ab8500_ldo_anamic1_reg>;
  211. V-AMIC2-supply = <&ab8500_ldo_anamic2_reg>;
  212. clocks = <&ab8500_clock AB8500_SYSCLK_AUDIO>;
  213. clock-names = "audioclk";
  214. stericsson,earpeice-cmv = <950>; /* Units in mV. */
  215. };
  216. regulator {
  217. compatible = "stericsson,ab8505-regulator";
  218. ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
  219. regulator-min-microvolt = <2800000>;
  220. regulator-max-microvolt = <3300000>;
  221. };
  222. ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
  223. regulator-min-microvolt = <1100000>;
  224. regulator-max-microvolt = <3300000>;
  225. };
  226. ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
  227. regulator-min-microvolt = <1100000>;
  228. regulator-max-microvolt = <3300000>;
  229. };
  230. ab8500_ldo_aux4_reg: ab8500_ldo_aux4 {
  231. regulator-min-microvolt = <1100000>;
  232. regulator-max-microvolt = <3300000>;
  233. };
  234. ab8500_ldo_aux5_reg: ab8500_ldo_aux5 {
  235. regulator-min-microvolt = <1050000>;
  236. regulator-max-microvolt = <2790000>;
  237. };
  238. ab8500_ldo_aux6_reg: ab8500_ldo_aux6 {
  239. regulator-min-microvolt = <1050000>;
  240. regulator-max-microvolt = <2790000>;
  241. };
  242. // supply for v-intcore12; VINTCORE12 LDO
  243. ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
  244. regulator-min-microvolt = <1250000>;
  245. regulator-max-microvolt = <1350000>;
  246. };
  247. // supply for gpadc; ADC LDO
  248. ab8500_ldo_adc_reg: ab8500_ldo_adc {
  249. };
  250. // supply for ab8500-vaudio; VAUDIO LDO
  251. ab8500_ldo_audio_reg: ab8500_ldo_audio {
  252. };
  253. // supply for v-anamic1 VAMIC1 LDO
  254. ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
  255. };
  256. // supply for v-amic2; VAMIC2 LDO; reuse constants for AMIC1
  257. ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
  258. };
  259. // supply for v-aux8; VAUX8 LDO
  260. ab8500_ldo_aux8_reg: ab8500_ldo_aux8 {
  261. };
  262. // supply for U8500 CSI/DSI; VANA LDO
  263. ab8500_ldo_ana_reg: ab8500_ldo_ana {
  264. };
  265. };
  266. };
  267. };
  268. sound {
  269. stericsson,audio-codec = <&codec>;
  270. clocks = <&prcmu_clk PRCMU_SYSCLK>, <&ab8500_clock AB8500_SYSCLK_ULP>, <&ab8500_clock AB8500_SYSCLK_INT>;
  271. clock-names = "sysclk", "ulpclk", "intclk";
  272. };
  273. mcde@a0350000 {
  274. vana-supply = <&ab8500_ldo_ana_reg>;
  275. dsi@a0351000 {
  276. vana-supply = <&ab8500_ldo_ana_reg>;
  277. };
  278. dsi@a0352000 {
  279. vana-supply = <&ab8500_ldo_ana_reg>;
  280. };
  281. dsi@a0353000 {
  282. vana-supply = <&ab8500_ldo_ana_reg>;
  283. };
  284. };
  285. usb_per5@a03e0000 {
  286. phys = <&ab8500_usb>;
  287. phy-names = "usb";
  288. };
  289. };
  290. };