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