bm1880-sophon-edge.dts 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright (c) 2019 Linaro Ltd.
  4. * Author: Manivannan Sadhasivam <[email protected]>
  5. */
  6. /dts-v1/;
  7. #include "bm1880.dtsi"
  8. /*
  9. * GPIO name legend: proper name = the GPIO line is used as GPIO
  10. * NC = not connected (pin out but not routed from the chip to
  11. * anything the board)
  12. * "[PER]" = pin is muxed for [peripheral] (not GPIO)
  13. * LSEC = Low Speed External Connector
  14. * HSEC = High Speed External Connector
  15. *
  16. * Line names are taken from the schematic "sophon-edge-schematics"
  17. * version, 1.0210.
  18. *
  19. * For the lines routed to the external connectors the
  20. * lines are named after the 96Boards CE Specification 1.0,
  21. * Appendix "Expansion Connector Signal Description".
  22. *
  23. * When the 96Board naming of a line and the schematic name of
  24. * the same line are in conflict, the 96Board specification
  25. * takes precedence. This is only for the informational
  26. * lines i.e. "[FOO]", the GPIO named lines "GPIO-A" thru "GPIO-L"
  27. * are the only ones actually used for GPIO.
  28. */
  29. / {
  30. compatible = "bitmain,sophon-edge", "bitmain,bm1880";
  31. model = "Sophon Edge";
  32. aliases {
  33. serial0 = &uart0;
  34. serial1 = &uart2;
  35. serial2 = &uart1;
  36. };
  37. chosen {
  38. stdout-path = "serial0:115200n8";
  39. };
  40. memory@0 {
  41. device_type = "memory";
  42. reg = <0x1 0x00000000 0x0 0x40000000>; // 1GB
  43. };
  44. soc {
  45. gpio0: gpio@50027000 {
  46. porta: gpio-controller@0 {
  47. gpio-line-names =
  48. "GPIO-A", /* GPIO0, LSEC pin 23 */
  49. "GPIO-C", /* GPIO1, LSEC pin 25 */
  50. "[GPIO2_PHY0_RST]", /* GPIO2 */
  51. "GPIO-E", /* GPIO3, LSEC pin 27 */
  52. "[USB_DET]", /* GPIO4 */
  53. "[EN_P5V]", /* GPIO5 */
  54. "[VDDIO_MS1_SEL]", /* GPIO6 */
  55. "GPIO-G", /* GPIO7, LSEC pin 29 */
  56. "[BM_TUSB_RST_L]", /* GPIO8 */
  57. "[EN_P5V_USBHUB]", /* GPIO9 */
  58. "NC",
  59. "LED_WIFI", /* GPIO11 */
  60. "LED_BT", /* GPIO12 */
  61. "[BM_BLM8221_EN_L]", /* GPIO13 */
  62. "NC", /* GPIO14 */
  63. "NC", /* GPIO15 */
  64. "NC", /* GPIO16 */
  65. "NC", /* GPIO17 */
  66. "NC", /* GPIO18 */
  67. "NC", /* GPIO19 */
  68. "NC", /* GPIO20 */
  69. "NC", /* GPIO21 */
  70. "NC", /* GPIO22 */
  71. "NC", /* GPIO23 */
  72. "NC", /* GPIO24 */
  73. "NC", /* GPIO25 */
  74. "NC", /* GPIO26 */
  75. "NC", /* GPIO27 */
  76. "NC", /* GPIO28 */
  77. "NC", /* GPIO29 */
  78. "NC", /* GPIO30 */
  79. "NC"; /* GPIO31 */
  80. };
  81. };
  82. gpio1: gpio@50027400 {
  83. portb: gpio-controller@0 {
  84. gpio-line-names =
  85. "NC", /* GPIO32 */
  86. "NC", /* GPIO33 */
  87. "[I2C0_SDA]", /* GPIO34, LSEC pin 17 */
  88. "[I2C0_SCL]", /* GPIO35, LSEC pin 15 */
  89. "[JTAG0_TDO]", /* GPIO36 */
  90. "[JTAG0_TCK]", /* GPIO37 */
  91. "[JTAG0_TDI]", /* GPIO38 */
  92. "[JTAG0_TMS]", /* GPIO39 */
  93. "[JTAG0_TRST_X]", /* GPIO40 */
  94. "[JTAG1_TDO]", /* GPIO41 */
  95. "[JTAG1_TCK]", /* GPIO42 */
  96. "[JTAG1_TDI]", /* GPIO43 */
  97. "[CPU_TX]", /* GPIO44 */
  98. "[CPU_RX]", /* GPIO45 */
  99. "[UART1_TXD]", /* GPIO46 */
  100. "[UART1_RXD]", /* GPIO47 */
  101. "[UART0_TXD]", /* GPIO48 */
  102. "[UART0_RXD]", /* GPIO49 */
  103. "GPIO-I", /* GPIO50, LSEC pin 31 */
  104. "GPIO-K", /* GPIO51, LSEC pin 33 */
  105. "USER_LED2", /* GPIO52 */
  106. "USER_LED1", /* GPIO53 */
  107. "[UART0_RTS]", /* GPIO54 */
  108. "[UART0_CTS]", /* GPIO55 */
  109. "USER_LED4", /* GPIO56, JTAG1_TRST_X */
  110. "USER_LED3", /* GPIO57, JTAG1_TMS */
  111. "[I2S0_SCLK]", /* GPIO58 */
  112. "[I2S0_FS]", /* GPIO59 */
  113. "[I2S0_SDI]", /* GPIO60 */
  114. "[I2S0_SDO]", /* GPIO61 */
  115. "GPIO-B", /* GPIO62, LSEC pin 24 */
  116. "GPIO-F"; /* GPIO63, I2S1_SCLK, LSEC pin 28 */
  117. };
  118. };
  119. gpio2: gpio@50027800 {
  120. portc: gpio-controller@0 {
  121. gpio-line-names =
  122. "GPIO-D", /* GPIO64, I2S1_FS, LSEC pin 26 */
  123. "GPIO-J", /* GPIO65, I2S1_SDI, LSEC pin 32 */
  124. "GPIO-H", /* GPIO66, I2S1_SDO, LSEC pin 30 */
  125. "GPIO-L", /* GPIO67, LSEC pin 34 */
  126. "[SPI0_CS]", /* GPIO68, SPI1_CS, LSEC pin 12 */
  127. "[SPI0_DIN]", /* GPIO69, SPI1_SDI, LSEC pin 10 */
  128. "[SPI0_DOUT]", /* GPIO70, SPI1_SDO, LSEC pin 14 */
  129. "[SPI0_SCLK]"; /* GPIO71, SPI1_SCK, LSEC pin 8 */
  130. };
  131. };
  132. };
  133. };
  134. &pinctrl {
  135. pinctrl_uart0_default: pinctrl-uart0-default {
  136. pinmux {
  137. groups = "uart0_grp";
  138. function = "uart0";
  139. };
  140. };
  141. pinctrl_uart1_default: pinctrl-uart1-default {
  142. pinmux {
  143. groups = "uart1_grp";
  144. function = "uart1";
  145. };
  146. };
  147. pinctrl_uart2_default: pinctrl-uart2-default {
  148. pinmux {
  149. groups = "uart2_grp";
  150. function = "uart2";
  151. };
  152. };
  153. };
  154. &uart0 {
  155. status = "okay";
  156. pinctrl-names = "default";
  157. pinctrl-0 = <&pinctrl_uart0_default>;
  158. };
  159. &uart1 {
  160. status = "okay";
  161. pinctrl-names = "default";
  162. pinctrl-0 = <&pinctrl_uart1_default>;
  163. };
  164. &uart2 {
  165. status = "okay";
  166. pinctrl-names = "default";
  167. pinctrl-0 = <&pinctrl_uart2_default>;
  168. };