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