omap36xx.dtsi 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Device Tree Source for OMAP3 SoC
  4. *
  5. * Copyright (C) 2012 Texas Instruments Incorporated - https://www.ti.com/
  6. */
  7. #include <dt-bindings/bus/ti-sysc.h>
  8. #include <dt-bindings/media/omap3-isp.h>
  9. #include "omap3.dtsi"
  10. / {
  11. aliases {
  12. serial3 = &uart4;
  13. };
  14. cpus {
  15. /* OMAP3630/OMAP37xx variants OPP50 to OPP130 and OPP1G */
  16. cpu: cpu@0 {
  17. operating-points-v2 = <&cpu0_opp_table>;
  18. vbb-supply = <&abb_mpu_iva>;
  19. clock-latency = <300000>; /* From omap-cpufreq driver */
  20. #cooling-cells = <2>;
  21. };
  22. };
  23. cpu0_opp_table: opp-table {
  24. compatible = "operating-points-v2-ti-cpu";
  25. syscon = <&scm_conf>;
  26. opp50-300000000 {
  27. opp-hz = /bits/ 64 <300000000>;
  28. /*
  29. * we currently only select the max voltage from table
  30. * Table 4-19 of the DM3730 Data sheet (SPRS685B)
  31. * Format is: cpu0-supply: <target min max>
  32. * vbb-supply: <target min max>
  33. */
  34. opp-microvolt = <1012500 1012500 1012500>,
  35. <1012500 1012500 1012500>;
  36. /*
  37. * first value is silicon revision bit mask
  38. * second one is "speed binned" bit mask
  39. */
  40. opp-supported-hw = <0xffffffff 3>;
  41. opp-suspend;
  42. };
  43. opp100-600000000 {
  44. opp-hz = /bits/ 64 <600000000>;
  45. opp-microvolt = <1200000 1200000 1200000>,
  46. <1200000 1200000 1200000>;
  47. opp-supported-hw = <0xffffffff 3>;
  48. };
  49. opp130-800000000 {
  50. opp-hz = /bits/ 64 <800000000>;
  51. opp-microvolt = <1325000 1325000 1325000>,
  52. <1325000 1325000 1325000>;
  53. opp-supported-hw = <0xffffffff 3>;
  54. };
  55. opp1g-1000000000 {
  56. opp-hz = /bits/ 64 <1000000000>;
  57. opp-microvolt = <1375000 1375000 1375000>,
  58. <1375000 1375000 1375000>;
  59. /* only on am/dm37x with speed-binned bit set */
  60. opp-supported-hw = <0xffffffff 2>;
  61. };
  62. };
  63. opp_supply_mpu_iva: opp_supply {
  64. compatible = "ti,omap-opp-supply";
  65. ti,absolute-max-voltage-uv = <1375000>;
  66. };
  67. ocp@68000000 {
  68. uart4: serial@49042000 {
  69. compatible = "ti,omap3-uart";
  70. reg = <0x49042000 0x400>;
  71. interrupts = <80>;
  72. dmas = <&sdma 81 &sdma 82>;
  73. dma-names = "tx", "rx";
  74. ti,hwmods = "uart4";
  75. clock-frequency = <48000000>;
  76. };
  77. abb_mpu_iva: regulator-abb-mpu {
  78. compatible = "ti,abb-v1";
  79. regulator-name = "abb_mpu_iva";
  80. #address-cells = <0>;
  81. #size-cells = <0>;
  82. reg = <0x483072f0 0x8>, <0x48306818 0x4>;
  83. reg-names = "base-address", "int-address";
  84. ti,tranxdone-status-mask = <0x4000000>;
  85. clocks = <&sys_ck>;
  86. ti,settling-time = <30>;
  87. ti,clock-cycles = <8>;
  88. ti,abb_info = <
  89. /*uV ABB efuse rbb_m fbb_m vset_m*/
  90. 1012500 0 0 0 0 0
  91. 1200000 0 0 0 0 0
  92. 1325000 0 0 0 0 0
  93. 1375000 1 0 0 0 0
  94. >;
  95. };
  96. omap3_pmx_core2: pinmux@480025a0 {
  97. compatible = "ti,omap3-padconf", "pinctrl-single";
  98. reg = <0x480025a0 0x5c>;
  99. #address-cells = <1>;
  100. #size-cells = <0>;
  101. #pinctrl-cells = <1>;
  102. #interrupt-cells = <1>;
  103. interrupt-controller;
  104. pinctrl-single,register-width = <16>;
  105. pinctrl-single,function-mask = <0xff1f>;
  106. };
  107. isp: isp@480bc000 {
  108. compatible = "ti,omap3-isp";
  109. reg = <0x480bc000 0x12fc
  110. 0x480bd800 0x0600>;
  111. interrupts = <24>;
  112. iommus = <&mmu_isp>;
  113. syscon = <&scm_conf 0x2f0>;
  114. ti,phy-type = <OMAP3ISP_PHY_TYPE_CSIPHY>;
  115. #clock-cells = <1>;
  116. ports {
  117. #address-cells = <1>;
  118. #size-cells = <0>;
  119. };
  120. };
  121. bandgap: bandgap@48002524 {
  122. reg = <0x48002524 0x4>;
  123. compatible = "ti,omap36xx-bandgap";
  124. #thermal-sensor-cells = <0>;
  125. };
  126. target-module@480cb000 {
  127. compatible = "ti,sysc-omap3630-sr", "ti,sysc";
  128. ti,hwmods = "smartreflex_core";
  129. reg = <0x480cb038 0x4>;
  130. reg-names = "sysc";
  131. ti,sysc-mask = <SYSC_OMAP3_SR_ENAWAKEUP>;
  132. ti,sysc-sidle = <SYSC_IDLE_FORCE>,
  133. <SYSC_IDLE_NO>,
  134. <SYSC_IDLE_SMART>;
  135. clocks = <&sr2_fck>;
  136. clock-names = "fck";
  137. #address-cells = <1>;
  138. #size-cells = <1>;
  139. ranges = <0 0x480cb000 0x001000>;
  140. smartreflex_core: smartreflex@0 {
  141. compatible = "ti,omap3-smartreflex-core";
  142. reg = <0 0x400>;
  143. interrupts = <19>;
  144. };
  145. };
  146. target-module@480c9000 {
  147. compatible = "ti,sysc-omap3630-sr", "ti,sysc";
  148. ti,hwmods = "smartreflex_mpu_iva";
  149. reg = <0x480c9038 0x4>;
  150. reg-names = "sysc";
  151. ti,sysc-mask = <SYSC_OMAP3_SR_ENAWAKEUP>;
  152. ti,sysc-sidle = <SYSC_IDLE_FORCE>,
  153. <SYSC_IDLE_NO>,
  154. <SYSC_IDLE_SMART>;
  155. clocks = <&sr1_fck>;
  156. clock-names = "fck";
  157. #address-cells = <1>;
  158. #size-cells = <1>;
  159. ranges = <0 0x480c9000 0x001000>;
  160. smartreflex_mpu_iva: smartreflex@480c9000 {
  161. compatible = "ti,omap3-smartreflex-mpu-iva";
  162. reg = <0 0x400>;
  163. interrupts = <18>;
  164. };
  165. };
  166. /*
  167. * Note that the sysconfig register layout is a subset of the
  168. * "ti,sysc-omap4" type register with just sidle and midle bits
  169. * available while omap34xx has "ti,sysc-omap2" type sysconfig.
  170. */
  171. sgx_module: target-module@50000000 {
  172. compatible = "ti,sysc-omap4", "ti,sysc";
  173. reg = <0x5000fe00 0x4>,
  174. <0x5000fe10 0x4>;
  175. reg-names = "rev", "sysc";
  176. ti,sysc-midle = <SYSC_IDLE_FORCE>,
  177. <SYSC_IDLE_NO>,
  178. <SYSC_IDLE_SMART>;
  179. ti,sysc-sidle = <SYSC_IDLE_FORCE>,
  180. <SYSC_IDLE_NO>,
  181. <SYSC_IDLE_SMART>;
  182. clocks = <&sgx_fck>, <&sgx_ick>;
  183. clock-names = "fck", "ick";
  184. #address-cells = <1>;
  185. #size-cells = <1>;
  186. ranges = <0 0x50000000 0x2000000>;
  187. /*
  188. * Closed source PowerVR driver, no child device
  189. * binding or driver in mainline
  190. */
  191. };
  192. };
  193. thermal_zones: thermal-zones {
  194. #include "omap3-cpu-thermal.dtsi"
  195. };
  196. };
  197. &sdma {
  198. compatible = "ti,omap3630-sdma", "ti,omap-sdma";
  199. };
  200. /* OMAP3630 needs dss_96m_fck for VENC */
  201. &venc {
  202. clocks = <&dss_tv_fck>, <&dss_96m_fck>;
  203. clock-names = "fck", "tv_dac_clk";
  204. };
  205. &ssi {
  206. status = "okay";
  207. clocks = <&ssi_ssr_fck>,
  208. <&ssi_sst_fck>,
  209. <&ssi_ick>;
  210. clock-names = "ssi_ssr_fck",
  211. "ssi_sst_fck",
  212. "ssi_ick";
  213. };
  214. /include/ "omap34xx-omap36xx-clocks.dtsi"
  215. /include/ "omap36xx-omap3430es2plus-clocks.dtsi"
  216. /include/ "omap36xx-am35xx-omap3430es2plus-clocks.dtsi"
  217. /include/ "omap36xx-clocks.dtsi"