owl-s500-roseapplepi.dts 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Roseapple Pi
  4. *
  5. * Copyright (C) 2020-2021 Cristian Ciocaltea <[email protected]>
  6. */
  7. /dts-v1/;
  8. #include "owl-s500.dtsi"
  9. / {
  10. compatible = "roseapplepi,roseapplepi", "actions,s500";
  11. model = "Roseapple Pi";
  12. aliases {
  13. mmc0 = &mmc0;
  14. serial2 = &uart2;
  15. };
  16. chosen {
  17. stdout-path = "serial2:115200n8";
  18. };
  19. memory@0 {
  20. device_type = "memory";
  21. reg = <0x0 0x80000000>; /* 2GB */
  22. };
  23. syspwr: regulator-5v0 {
  24. compatible = "regulator-fixed";
  25. regulator-name = "SYSPWR";
  26. regulator-min-microvolt = <5000000>;
  27. regulator-max-microvolt = <5000000>;
  28. regulator-always-on;
  29. };
  30. };
  31. &cpu0 {
  32. cpu0-supply = <&vdd_cpu>;
  33. };
  34. &i2c0 {
  35. status = "okay";
  36. pinctrl-names = "default";
  37. pinctrl-0 = <&i2c0_pins>;
  38. atc260x: pmic@65 {
  39. compatible = "actions,atc2603c";
  40. reg = <0x65>;
  41. interrupt-parent = <&sirq>;
  42. interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
  43. reset-time-sec = <6>;
  44. regulators {
  45. compatible = "actions,atc2603c-regulator";
  46. dcdc1-supply = <&syspwr>;
  47. dcdc2-supply = <&syspwr>;
  48. dcdc3-supply = <&syspwr>;
  49. ldo1-supply = <&syspwr>;
  50. ldo2-supply = <&syspwr>;
  51. ldo3-supply = <&syspwr>;
  52. ldo5-supply = <&syspwr>;
  53. ldo6-supply = <&syspwr>;
  54. ldo7-supply = <&syspwr>;
  55. ldo8-supply = <&syspwr>;
  56. ldo11-supply = <&syspwr>;
  57. ldo12-supply = <&syspwr>;
  58. switchldo1-supply = <&vcc>;
  59. vdd_cpu: dcdc1 {
  60. regulator-name = "VDD_CPU";
  61. regulator-min-microvolt = <700000>;
  62. regulator-max-microvolt = <1400000>;
  63. regulator-always-on;
  64. };
  65. vddq: dcdc2 {
  66. regulator-name = "VDDQ";
  67. regulator-min-microvolt = <1300000>;
  68. regulator-max-microvolt = <2150000>;
  69. regulator-always-on;
  70. regulator-boot-on;
  71. };
  72. vcc: dcdc3 {
  73. regulator-name = "VCC";
  74. regulator-min-microvolt = <2600000>;
  75. regulator-max-microvolt = <3300000>;
  76. regulator-always-on;
  77. };
  78. vcc_3v3: ldo1 {
  79. regulator-name = "VCC_3V3";
  80. regulator-min-microvolt = <2600000>;
  81. regulator-max-microvolt = <3300000>;
  82. regulator-always-on;
  83. };
  84. avcc: ldo2 {
  85. regulator-name = "AVCC";
  86. regulator-min-microvolt = <2600000>;
  87. regulator-max-microvolt = <3300000>;
  88. regulator-always-on;
  89. };
  90. vdd_1v8: ldo3 {
  91. regulator-name = "VDD_1V8";
  92. regulator-min-microvolt = <1500000>;
  93. regulator-max-microvolt = <2000000>;
  94. regulator-always-on;
  95. };
  96. vcc_3v1: ldo5 {
  97. regulator-name = "VCC_3V1";
  98. regulator-min-microvolt = <2600000>;
  99. regulator-max-microvolt = <3300000>;
  100. };
  101. avdd: ldo6 {
  102. regulator-name = "AVDD";
  103. regulator-min-microvolt = <700000>;
  104. regulator-max-microvolt = <1400000>;
  105. regulator-always-on;
  106. };
  107. sens_1v8: ldo7 {
  108. regulator-name = "SENS_1V8";
  109. regulator-min-microvolt = <1800000>;
  110. regulator-max-microvolt = <1800000>;
  111. };
  112. ldo8: ldo8 {
  113. regulator-name = "LDO8";
  114. regulator-min-microvolt = <2300000>;
  115. regulator-max-microvolt = <3300000>;
  116. };
  117. svcc: ldo11 {
  118. regulator-name = "SVCC";
  119. regulator-min-microvolt = <2600000>;
  120. regulator-max-microvolt = <3300000>;
  121. regulator-always-on;
  122. };
  123. rtc_vdd: ldo12 {
  124. regulator-name = "RTC_VDD";
  125. regulator-min-microvolt = <1800000>;
  126. regulator-max-microvolt = <1800000>;
  127. regulator-always-on;
  128. };
  129. sd_vcc: switchldo1 {
  130. regulator-name = "SD_VCC";
  131. regulator-min-microvolt = <3000000>;
  132. regulator-max-microvolt = <3300000>;
  133. regulator-always-on;
  134. regulator-boot-on;
  135. };
  136. };
  137. };
  138. };
  139. &i2c1 {
  140. status = "disabled";
  141. pinctrl-names = "default";
  142. pinctrl-0 = <&i2c1_pins>;
  143. };
  144. &i2c2 {
  145. status = "disabled";
  146. pinctrl-names = "default";
  147. pinctrl-0 = <&i2c2_pins>;
  148. };
  149. &pinctrl {
  150. i2c0_pins: i2c0-pins {
  151. pinmux {
  152. groups = "i2c0_mfp";
  153. function = "i2c0";
  154. };
  155. pinconf {
  156. pins = "i2c0_sclk", "i2c0_sdata";
  157. bias-pull-up;
  158. };
  159. };
  160. i2c1_pins: i2c1-pins {
  161. pinconf {
  162. pins = "i2c1_sclk", "i2c1_sdata";
  163. bias-pull-up;
  164. };
  165. };
  166. i2c2_pins: i2c2-pins {
  167. pinconf {
  168. pins = "i2c2_sclk", "i2c2_sdata";
  169. bias-pull-up;
  170. };
  171. };
  172. mmc0_pins: mmc0-pins {
  173. pinmux {
  174. groups = "sd0_d0_mfp", "sd0_d1_mfp", "sd0_d2_d3_mfp",
  175. "sd0_cmd_mfp", "sd0_clk_mfp";
  176. function = "sd0";
  177. };
  178. drv-pinconf {
  179. groups = "sd0_d0_d3_drv", "sd0_cmd_drv", "sd0_clk_drv";
  180. drive-strength = <8>;
  181. };
  182. bias0-pinconf {
  183. pins = "sd0_d0", "sd0_d1", "sd0_d2",
  184. "sd0_d3", "sd0_cmd";
  185. bias-pull-up;
  186. };
  187. bias1-pinconf {
  188. pins = "sd0_clk";
  189. bias-pull-down;
  190. };
  191. };
  192. ethernet_pins: ethernet-pins {
  193. eth_rmii-pinmux {
  194. groups = "rmii_txd0_mfp", "rmii_txd1_mfp",
  195. "rmii_rxd0_mfp", "rmii_rxd1_mfp",
  196. "rmii_txen_mfp", "rmii_rxen_mfp",
  197. "rmii_crs_dv_mfp", "rmii_ref_clk_mfp";
  198. function = "eth_rmii";
  199. };
  200. phy_clk-pinmux {
  201. groups = "clko_25m_mfp";
  202. function = "clko_25m";
  203. };
  204. ref_clk-pinconf {
  205. groups = "rmii_ref_clk_drv";
  206. drive-strength = <2>;
  207. };
  208. };
  209. };
  210. /* uSD */
  211. &mmc0 {
  212. status = "okay";
  213. pinctrl-names = "default";
  214. pinctrl-0 = <&mmc0_pins>;
  215. no-sdio;
  216. no-mmc;
  217. no-1-8-v;
  218. cd-gpios = <&pinctrl 117 GPIO_ACTIVE_LOW>;
  219. bus-width = <4>;
  220. vmmc-supply = <&sd_vcc>;
  221. vqmmc-supply = <&sd_vcc>;
  222. };
  223. &ethernet {
  224. pinctrl-names = "default";
  225. pinctrl-0 = <&ethernet_pins>;
  226. phy-mode = "rmii";
  227. phy-handle = <&eth_phy>;
  228. status = "okay";
  229. mdio {
  230. #address-cells = <1>;
  231. #size-cells = <0>;
  232. reset-gpios = <&pinctrl 88 GPIO_ACTIVE_LOW>; /* GPIOC24 */
  233. reset-delay-us = <10000>;
  234. reset-post-delay-us = <150000>;
  235. eth_phy: ethernet-phy@3 {
  236. reg = <0x3>;
  237. max-speed = <100>;
  238. interrupt-parent = <&sirq>;
  239. interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
  240. };
  241. };
  242. };
  243. &twd_timer {
  244. status = "okay";
  245. };
  246. &timer {
  247. clocks = <&hosc>;
  248. };
  249. &uart2 {
  250. status = "okay";
  251. };