exynos850-e850-96.dts 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * WinLink E850-96 board device tree source
  4. *
  5. * Copyright (C) 2018 Samsung Electronics Co., Ltd.
  6. * Copyright (C) 2021 Linaro Ltd.
  7. *
  8. * Device tree source file for WinLink's E850-96 board which is based on
  9. * Samsung Exynos850 SoC.
  10. */
  11. /dts-v1/;
  12. #include "exynos850.dtsi"
  13. #include <dt-bindings/gpio/gpio.h>
  14. #include <dt-bindings/input/input.h>
  15. #include <dt-bindings/leds/common.h>
  16. / {
  17. model = "WinLink E850-96 board";
  18. compatible = "winlink,e850-96", "samsung,exynos850";
  19. aliases {
  20. mmc0 = &mmc_0;
  21. serial0 = &serial_0;
  22. };
  23. chosen {
  24. stdout-path = &serial_0;
  25. };
  26. connector {
  27. compatible = "gpio-usb-b-connector", "usb-b-connector";
  28. label = "micro-USB";
  29. type = "micro";
  30. vbus-supply = <&reg_usb_host_vbus>;
  31. id-gpios = <&gpa0 0 GPIO_ACTIVE_LOW>;
  32. pinctrl-names = "default";
  33. pinctrl-0 = <&micro_usb_det_pins>;
  34. port {
  35. usb_dr_connector: endpoint {
  36. remote-endpoint = <&usb1_drd_sw>;
  37. };
  38. };
  39. };
  40. /*
  41. * RAM: 4 GiB (eMCP):
  42. * - 2 GiB at 0x80000000
  43. * - 2 GiB at 0x880000000
  44. *
  45. * 0xbab00000..0xbfffffff: secure memory (85 MiB).
  46. */
  47. memory@80000000 {
  48. device_type = "memory";
  49. reg = <0x0 0x80000000 0x3ab00000>,
  50. <0x0 0xc0000000 0x40000000>,
  51. <0x8 0x80000000 0x80000000>;
  52. };
  53. gpio-keys {
  54. compatible = "gpio-keys";
  55. pinctrl-names = "default";
  56. pinctrl-0 = <&key_voldown_pins &key_volup_pins>;
  57. volume-down-key {
  58. label = "Volume Down";
  59. linux,code = <KEY_VOLUMEDOWN>;
  60. gpios = <&gpa1 0 GPIO_ACTIVE_LOW>;
  61. };
  62. volume-up-key {
  63. label = "Volume Up";
  64. linux,code = <KEY_VOLUMEUP>;
  65. gpios = <&gpa0 7 GPIO_ACTIVE_LOW>;
  66. };
  67. };
  68. leds {
  69. compatible = "gpio-leds";
  70. /* HEART_BEAT_LED */
  71. user_led1: led-1 {
  72. label = "yellow:user1";
  73. gpios = <&gpg2 2 GPIO_ACTIVE_HIGH>;
  74. color = <LED_COLOR_ID_YELLOW>;
  75. function = LED_FUNCTION_HEARTBEAT;
  76. linux,default-trigger = "heartbeat";
  77. };
  78. /* eMMC_LED */
  79. user_led2: led-2 {
  80. label = "yellow:user2";
  81. gpios = <&gpg2 3 GPIO_ACTIVE_HIGH>;
  82. color = <LED_COLOR_ID_YELLOW>;
  83. linux,default-trigger = "mmc0";
  84. };
  85. /* SD_LED */
  86. user_led3: led-3 {
  87. label = "white:user3";
  88. gpios = <&gpg2 4 GPIO_ACTIVE_HIGH>;
  89. color = <LED_COLOR_ID_WHITE>;
  90. function = LED_FUNCTION_SD;
  91. linux,default-trigger = "mmc2";
  92. };
  93. /* WIFI_LED */
  94. wlan_active_led: led-4 {
  95. label = "yellow:wlan";
  96. gpios = <&gpg2 6 GPIO_ACTIVE_HIGH>;
  97. color = <LED_COLOR_ID_YELLOW>;
  98. function = LED_FUNCTION_WLAN;
  99. linux,default-trigger = "phy0tx";
  100. default-state = "off";
  101. };
  102. /* BLUETOOTH_LED */
  103. bt_active_led: led-5 {
  104. label = "blue:bt";
  105. gpios = <&gpg2 7 GPIO_ACTIVE_HIGH>;
  106. color = <LED_COLOR_ID_BLUE>;
  107. function = LED_FUNCTION_BLUETOOTH;
  108. linux,default-trigger = "hci0-power";
  109. default-state = "off";
  110. };
  111. };
  112. /* TODO: Remove this once PMIC is implemented */
  113. reg_dummy: regulator-0 {
  114. compatible = "regulator-fixed";
  115. regulator-name = "dummy_reg";
  116. };
  117. reg_usb_host_vbus: regulator-1 {
  118. compatible = "regulator-fixed";
  119. regulator-name = "usb_host_vbus";
  120. regulator-min-microvolt = <5000000>;
  121. regulator-max-microvolt = <5000000>;
  122. gpio = <&gpa3 5 GPIO_ACTIVE_LOW>;
  123. };
  124. reserved-memory {
  125. #address-cells = <2>;
  126. #size-cells = <1>;
  127. ranges;
  128. ramoops@f0000000 {
  129. compatible = "ramoops";
  130. reg = <0x0 0xf0000000 0x200000>;
  131. record-size = <0x20000>;
  132. console-size = <0x20000>;
  133. ftrace-size = <0x100000>;
  134. pmsg-size = <0x20000>;
  135. };
  136. };
  137. /*
  138. * RTC clock (XrtcXTI); external, must be 32.768 kHz.
  139. *
  140. * TODO: Remove this once RTC clock is implemented properly as part of
  141. * PMIC driver.
  142. */
  143. rtcclk: clock-rtcclk {
  144. compatible = "fixed-clock";
  145. clock-output-names = "rtcclk";
  146. #clock-cells = <0>;
  147. clock-frequency = <32768>;
  148. };
  149. };
  150. &cmu_hsi {
  151. clocks = <&oscclk>, <&rtcclk>,
  152. <&cmu_top CLK_DOUT_HSI_BUS>,
  153. <&cmu_top CLK_DOUT_HSI_MMC_CARD>,
  154. <&cmu_top CLK_DOUT_HSI_USB20DRD>;
  155. clock-names = "oscclk", "rtcclk", "dout_hsi_bus",
  156. "dout_hsi_mmc_card", "dout_hsi_usb20drd";
  157. };
  158. &mmc_0 {
  159. status = "okay";
  160. mmc-hs200-1_8v;
  161. mmc-hs400-1_8v;
  162. cap-mmc-highspeed;
  163. non-removable;
  164. mmc-hs400-enhanced-strobe;
  165. card-detect-delay = <200>;
  166. clock-frequency = <800000000>;
  167. bus-width = <8>;
  168. samsung,dw-mshc-ciu-div = <3>;
  169. samsung,dw-mshc-sdr-timing = <0 4>;
  170. samsung,dw-mshc-ddr-timing = <2 4>;
  171. samsung,dw-mshc-hs400-timing = <0 2>;
  172. pinctrl-names = "default";
  173. pinctrl-0 = <&sd0_clk_pins &sd0_cmd_pins &sd0_rdqs_pins &sd0_nreset_pins
  174. &sd0_bus1_pins &sd0_bus4_pins &sd0_bus8_pins>;
  175. };
  176. &oscclk {
  177. clock-frequency = <26000000>;
  178. };
  179. &pinctrl_alive {
  180. key_voldown_pins: key-voldown-pins {
  181. samsung,pins = "gpa1-0";
  182. samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
  183. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  184. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  185. };
  186. key_volup_pins: key-volup-pins {
  187. samsung,pins = "gpa0-7";
  188. samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
  189. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  190. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  191. };
  192. micro_usb_det_pins: micro-usb-det-pins {
  193. samsung,pins = "gpa0-0";
  194. samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
  195. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  196. };
  197. };
  198. &rtc {
  199. status = "okay";
  200. clocks = <&cmu_apm CLK_GOUT_RTC_PCLK>, <&rtcclk>;
  201. clock-names = "rtc", "rtc_src";
  202. };
  203. &serial_0 {
  204. status = "okay";
  205. pinctrl-names = "default";
  206. pinctrl-0 = <&uart1_pins>;
  207. };
  208. &usbdrd {
  209. status = "okay";
  210. vdd10-supply = <&reg_dummy>;
  211. vdd33-supply = <&reg_dummy>;
  212. };
  213. &usbdrd_dwc3 {
  214. dr_mode = "otg";
  215. usb-role-switch;
  216. role-switch-default-mode = "host";
  217. port {
  218. usb1_drd_sw: endpoint {
  219. remote-endpoint = <&usb_dr_connector>;
  220. };
  221. };
  222. };
  223. &usbdrd_phy {
  224. status = "okay";
  225. };
  226. &usi_uart {
  227. samsung,clkreq-on; /* needed for UART mode */
  228. status = "okay";
  229. };
  230. &watchdog_cl0 {
  231. status = "okay";
  232. };
  233. &watchdog_cl1 {
  234. status = "okay";
  235. };