exynos850-e850-96.dts 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  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. /*
  27. * RAM: 4 GiB (eMCP):
  28. * - 2 GiB at 0x80000000
  29. * - 2 GiB at 0x880000000
  30. *
  31. * 0xbab00000..0xbfffffff: secure memory (85 MiB).
  32. */
  33. memory@80000000 {
  34. device_type = "memory";
  35. reg = <0x0 0x80000000 0x3ab00000>,
  36. <0x0 0xc0000000 0x40000000>,
  37. <0x8 0x80000000 0x80000000>;
  38. };
  39. gpio-keys {
  40. compatible = "gpio-keys";
  41. pinctrl-names = "default";
  42. pinctrl-0 = <&key_voldown_pins &key_volup_pins>;
  43. volume-down-key {
  44. label = "Volume Down";
  45. linux,code = <KEY_VOLUMEDOWN>;
  46. gpios = <&gpa1 0 GPIO_ACTIVE_LOW>;
  47. };
  48. volume-up-key {
  49. label = "Volume Up";
  50. linux,code = <KEY_VOLUMEUP>;
  51. gpios = <&gpa0 7 GPIO_ACTIVE_LOW>;
  52. };
  53. };
  54. leds {
  55. compatible = "gpio-leds";
  56. /* HEART_BEAT_LED */
  57. user_led1: led-1 {
  58. label = "yellow:user1";
  59. gpios = <&gpg2 2 GPIO_ACTIVE_HIGH>;
  60. color = <LED_COLOR_ID_YELLOW>;
  61. function = LED_FUNCTION_HEARTBEAT;
  62. linux,default-trigger = "heartbeat";
  63. };
  64. /* eMMC_LED */
  65. user_led2: led-2 {
  66. label = "yellow:user2";
  67. gpios = <&gpg2 3 GPIO_ACTIVE_HIGH>;
  68. color = <LED_COLOR_ID_YELLOW>;
  69. linux,default-trigger = "mmc0";
  70. };
  71. /* SD_LED */
  72. user_led3: led-3 {
  73. label = "white:user3";
  74. gpios = <&gpg2 4 GPIO_ACTIVE_HIGH>;
  75. color = <LED_COLOR_ID_WHITE>;
  76. function = LED_FUNCTION_SD;
  77. linux,default-trigger = "mmc2";
  78. };
  79. /* WIFI_LED */
  80. wlan_active_led: led-4 {
  81. label = "yellow:wlan";
  82. gpios = <&gpg2 6 GPIO_ACTIVE_HIGH>;
  83. color = <LED_COLOR_ID_YELLOW>;
  84. function = LED_FUNCTION_WLAN;
  85. linux,default-trigger = "phy0tx";
  86. default-state = "off";
  87. };
  88. /* BLUETOOTH_LED */
  89. bt_active_led: led-5 {
  90. label = "blue:bt";
  91. gpios = <&gpg2 7 GPIO_ACTIVE_HIGH>;
  92. color = <LED_COLOR_ID_BLUE>;
  93. function = LED_FUNCTION_BLUETOOTH;
  94. linux,default-trigger = "hci0rx";
  95. default-state = "off";
  96. };
  97. };
  98. /*
  99. * RTC clock (XrtcXTI); external, must be 32.768 kHz.
  100. *
  101. * TODO: Remove this once RTC clock is implemented properly as part of
  102. * PMIC driver.
  103. */
  104. rtcclk: clock-rtcclk {
  105. compatible = "fixed-clock";
  106. clock-output-names = "rtcclk";
  107. #clock-cells = <0>;
  108. clock-frequency = <32768>;
  109. };
  110. };
  111. &cmu_hsi {
  112. clocks = <&oscclk>, <&rtcclk>,
  113. <&cmu_top CLK_DOUT_HSI_BUS>,
  114. <&cmu_top CLK_DOUT_HSI_MMC_CARD>,
  115. <&cmu_top CLK_DOUT_HSI_USB20DRD>;
  116. clock-names = "oscclk", "rtcclk", "dout_hsi_bus",
  117. "dout_hsi_mmc_card", "dout_hsi_usb20drd";
  118. };
  119. &mmc_0 {
  120. status = "okay";
  121. mmc-hs200-1_8v;
  122. mmc-hs400-1_8v;
  123. cap-mmc-highspeed;
  124. non-removable;
  125. mmc-hs400-enhanced-strobe;
  126. card-detect-delay = <200>;
  127. clock-frequency = <800000000>;
  128. bus-width = <8>;
  129. samsung,dw-mshc-ciu-div = <3>;
  130. samsung,dw-mshc-sdr-timing = <0 4>;
  131. samsung,dw-mshc-ddr-timing = <2 4>;
  132. samsung,dw-mshc-hs400-timing = <0 2>;
  133. pinctrl-names = "default";
  134. pinctrl-0 = <&sd0_clk_pins &sd0_cmd_pins &sd0_rdqs_pins &sd0_nreset_pins
  135. &sd0_bus1_pins &sd0_bus4_pins &sd0_bus8_pins>;
  136. };
  137. &oscclk {
  138. clock-frequency = <26000000>;
  139. };
  140. &pinctrl_alive {
  141. key_voldown_pins: key-voldown-pins {
  142. samsung,pins = "gpa1-0";
  143. samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
  144. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  145. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  146. };
  147. key_volup_pins: key-volup-pins {
  148. samsung,pins = "gpa0-7";
  149. samsung,pin-function = <EXYNOS_PIN_FUNC_EINT>;
  150. samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
  151. samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
  152. };
  153. };
  154. &rtc {
  155. status = "okay";
  156. clocks = <&cmu_apm CLK_GOUT_RTC_PCLK>, <&rtcclk>;
  157. clock-names = "rtc", "rtc_src";
  158. };
  159. &serial_0 {
  160. status = "okay";
  161. pinctrl-names = "default";
  162. pinctrl-0 = <&uart1_pins>;
  163. };
  164. &usi_uart {
  165. samsung,clkreq-on; /* needed for UART mode */
  166. status = "okay";
  167. };
  168. &watchdog_cl0 {
  169. status = "okay";
  170. };
  171. &watchdog_cl1 {
  172. status = "okay";
  173. };