am3517.dtsi 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Device Tree Source for am3517 SoC
  4. *
  5. * Copyright (C) 2013 Texas Instruments Incorporated - https://www.ti.com/
  6. */
  7. #include "omap3.dtsi"
  8. /* AM3517 doesn't appear to have the crypto engines defined in omap3.dtsi */
  9. /delete-node/ &aes1_target;
  10. /delete-node/ &aes2_target;
  11. / {
  12. aliases {
  13. serial3 = &uart4;
  14. can = &hecc;
  15. };
  16. cpus {
  17. cpu: cpu@0 {
  18. /* Based on OMAP3630 variants OPP50 and OPP100 */
  19. operating-points-v2 = <&cpu0_opp_table>;
  20. clock-latency = <300000>; /* From legacy driver */
  21. };
  22. };
  23. cpu0_opp_table: opp-table {
  24. compatible = "operating-points-v2-ti-cpu";
  25. syscon = <&scm_conf>;
  26. /*
  27. * AM3517 TRM only lists 600MHz @ 1.2V, but omap36xx
  28. * appear to operate at 300MHz as well. Since AM3517 only
  29. * lists one operating voltage, it will remain fixed at 1.2V
  30. */
  31. opp50-300000000 {
  32. opp-hz = /bits/ 64 <300000000>;
  33. opp-microvolt = <1200000>;
  34. opp-supported-hw = <0xffffffff 0xffffffff>;
  35. opp-suspend;
  36. };
  37. opp100-600000000 {
  38. opp-hz = /bits/ 64 <600000000>;
  39. opp-microvolt = <1200000>;
  40. opp-supported-hw = <0xffffffff 0xffffffff>;
  41. };
  42. };
  43. ocp@68000000 {
  44. am35x_otg_hs: am35x_otg_hs@5c040000 {
  45. compatible = "ti,omap3-musb";
  46. ti,hwmods = "am35x_otg_hs";
  47. status = "disabled";
  48. reg = <0x5c040000 0x1000>;
  49. interrupts = <71>;
  50. interrupt-names = "mc";
  51. };
  52. davinci_emac: ethernet@5c000000 {
  53. compatible = "ti,am3517-emac";
  54. ti,hwmods = "davinci_emac";
  55. status = "disabled";
  56. reg = <0x5c000000 0x30000>;
  57. interrupts = <67 68 69 70>;
  58. syscon = <&scm_conf>;
  59. ti,davinci-ctrl-reg-offset = <0x10000>;
  60. ti,davinci-ctrl-mod-reg-offset = <0>;
  61. ti,davinci-ctrl-ram-offset = <0x20000>;
  62. ti,davinci-ctrl-ram-size = <0x2000>;
  63. ti,davinci-rmii-en = /bits/ 8 <1>;
  64. local-mac-address = [ 00 00 00 00 00 00 ];
  65. clocks = <&emac_ick>;
  66. clock-names = "ick";
  67. };
  68. davinci_mdio: mdio@5c030000 {
  69. compatible = "ti,davinci_mdio";
  70. ti,hwmods = "davinci_mdio";
  71. status = "disabled";
  72. reg = <0x5c030000 0x1000>;
  73. bus_freq = <1000000>;
  74. #address-cells = <1>;
  75. #size-cells = <0>;
  76. clocks = <&emac_fck>;
  77. clock-names = "fck";
  78. };
  79. uart4: serial@4809e000 {
  80. compatible = "ti,omap3-uart";
  81. ti,hwmods = "uart4";
  82. status = "disabled";
  83. reg = <0x4809e000 0x400>;
  84. interrupts = <84>;
  85. dmas = <&sdma 55 &sdma 54>;
  86. dma-names = "tx", "rx";
  87. clock-frequency = <48000000>;
  88. };
  89. omap3_pmx_core2: pinmux@480025d8 {
  90. compatible = "ti,omap3-padconf", "pinctrl-single";
  91. reg = <0x480025d8 0x24>;
  92. #address-cells = <1>;
  93. #size-cells = <0>;
  94. #pinctrl-cells = <1>;
  95. #interrupt-cells = <1>;
  96. interrupt-controller;
  97. pinctrl-single,register-width = <16>;
  98. pinctrl-single,function-mask = <0xff1f>;
  99. };
  100. hecc: can@5c050000 {
  101. compatible = "ti,am3517-hecc";
  102. status = "disabled";
  103. reg = <0x5c050000 0x80>,
  104. <0x5c053000 0x180>,
  105. <0x5c052000 0x200>;
  106. reg-names = "hecc", "hecc-ram", "mbx";
  107. interrupts = <24>;
  108. clocks = <&hecc_ck>;
  109. };
  110. /*
  111. * On am3517 the OCP registers do not seem to be accessible
  112. * similar to the omap34xx. Maybe SGX is permanently set to
  113. * "OCP bypass mode", or maybe there is OCP_SYSCONFIG that is
  114. * write-only at 0x50000e10. We detect SGX based on the SGX
  115. * revision register instead of the unreadable OCP revision
  116. * register.
  117. */
  118. sgx_module: target-module@50000000 {
  119. compatible = "ti,sysc-omap2", "ti,sysc";
  120. reg = <0x50000014 0x4>;
  121. reg-names = "rev";
  122. clocks = <&sgx_fck>, <&sgx_ick>;
  123. clock-names = "fck", "ick";
  124. #address-cells = <1>;
  125. #size-cells = <1>;
  126. ranges = <0 0x50000000 0x4000>;
  127. /*
  128. * Closed source PowerVR driver, no child device
  129. * binding or driver in mainline
  130. */
  131. };
  132. };
  133. };
  134. /* Not currently working, probably needs at least different clocks */
  135. &rng_target {
  136. status = "disabled";
  137. /delete-property/ clocks;
  138. };
  139. /* Table Table 5-79 of the TRM shows 480ab000 is reserved */
  140. &usb_otg_hs {
  141. status = "disabled";
  142. };
  143. &iva {
  144. status = "disabled";
  145. };
  146. &mailbox {
  147. status = "disabled";
  148. };
  149. &mmu_isp {
  150. status = "disabled";
  151. };
  152. #include "am35xx-clocks.dtsi"
  153. #include "omap36xx-am35xx-omap3430es2plus-clocks.dtsi"
  154. /* Preferred always-on timer for clocksource */
  155. &timer1_target {
  156. ti,no-reset-on-init;
  157. ti,no-idle;
  158. timer@0 {
  159. assigned-clocks = <&gpt1_fck>;
  160. assigned-clock-parents = <&sys_ck>;
  161. };
  162. };
  163. /* Preferred timer for clockevent */
  164. &timer2_target {
  165. ti,no-reset-on-init;
  166. ti,no-idle;
  167. timer@0 {
  168. assigned-clocks = <&gpt2_fck>;
  169. assigned-clock-parents = <&sys_ck>;
  170. };
  171. };