| // SPDX-License-Identifier: (GPL-2.0+ OR MIT) |
| /* |
| * Copyright (c) 2019 Linaro Ltd. |
| * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> |
| */ |
| |
| /dts-v1/; |
| |
| #include "bm1880.dtsi" |
| |
| /* |
| * GPIO name legend: proper name = the GPIO line is used as GPIO |
| * NC = not connected (pin out but not routed from the chip to |
| * anything the board) |
| * "[PER]" = pin is muxed for [peripheral] (not GPIO) |
| * LSEC = Low Speed External Connector |
| * HSEC = High Speed External Connector |
| * |
| * Line names are taken from the schematic "sophon-edge-schematics" |
| * version, 1.0210. |
| * |
| * For the lines routed to the external connectors the |
| * lines are named after the 96Boards CE Specification 1.0, |
| * Appendix "Expansion Connector Signal Description". |
| * |
| * When the 96Board naming of a line and the schematic name of |
| * the same line are in conflict, the 96Board specification |
| * takes precedence. This is only for the informational |
| * lines i.e. "[FOO]", the GPIO named lines "GPIO-A" thru "GPIO-L" |
| * are the only ones actually used for GPIO. |
| */ |
| |
| / { |
| compatible = "bitmain,sophon-edge", "bitmain,bm1880"; |
| model = "Sophon Edge"; |
| |
| aliases { |
| serial0 = &uart0; |
| serial1 = &uart2; |
| serial2 = &uart1; |
| }; |
| |
| chosen { |
| stdout-path = "serial0:115200n8"; |
| }; |
| |
| memory@0 { |
| device_type = "memory"; |
| reg = <0x1 0x00000000 0x0 0x40000000>; // 1GB |
| }; |
| |
| uart_clk: uart-clk { |
| compatible = "fixed-clock"; |
| clock-frequency = <500000000>; |
| #clock-cells = <0>; |
| }; |
| |
| soc { |
| gpio0: gpio@50027000 { |
| porta: gpio-controller@0 { |
| gpio-line-names = |
| "GPIO-A", /* GPIO0, LSEC pin 23 */ |
| "GPIO-C", /* GPIO1, LSEC pin 25 */ |
| "[GPIO2_PHY0_RST]", /* GPIO2 */ |
| "GPIO-E", /* GPIO3, LSEC pin 27 */ |
| "[USB_DET]", /* GPIO4 */ |
| "[EN_P5V]", /* GPIO5 */ |
| "[VDDIO_MS1_SEL]", /* GPIO6 */ |
| "GPIO-G", /* GPIO7, LSEC pin 29 */ |
| "[BM_TUSB_RST_L]", /* GPIO8 */ |
| "[EN_P5V_USBHUB]", /* GPIO9 */ |
| "NC", |
| "LED_WIFI", /* GPIO11 */ |
| "LED_BT", /* GPIO12 */ |
| "[BM_BLM8221_EN_L]", /* GPIO13 */ |
| "NC", /* GPIO14 */ |
| "NC", /* GPIO15 */ |
| "NC", /* GPIO16 */ |
| "NC", /* GPIO17 */ |
| "NC", /* GPIO18 */ |
| "NC", /* GPIO19 */ |
| "NC", /* GPIO20 */ |
| "NC", /* GPIO21 */ |
| "NC", /* GPIO22 */ |
| "NC", /* GPIO23 */ |
| "NC", /* GPIO24 */ |
| "NC", /* GPIO25 */ |
| "NC", /* GPIO26 */ |
| "NC", /* GPIO27 */ |
| "NC", /* GPIO28 */ |
| "NC", /* GPIO29 */ |
| "NC", /* GPIO30 */ |
| "NC"; /* GPIO31 */ |
| }; |
| }; |
| |
| gpio1: gpio@50027400 { |
| portb: gpio-controller@0 { |
| gpio-line-names = |
| "NC", /* GPIO32 */ |
| "NC", /* GPIO33 */ |
| "[I2C0_SDA]", /* GPIO34, LSEC pin 17 */ |
| "[I2C0_SCL]", /* GPIO35, LSEC pin 15 */ |
| "[JTAG0_TDO]", /* GPIO36 */ |
| "[JTAG0_TCK]", /* GPIO37 */ |
| "[JTAG0_TDI]", /* GPIO38 */ |
| "[JTAG0_TMS]", /* GPIO39 */ |
| "[JTAG0_TRST_X]", /* GPIO40 */ |
| "[JTAG1_TDO]", /* GPIO41 */ |
| "[JTAG1_TCK]", /* GPIO42 */ |
| "[JTAG1_TDI]", /* GPIO43 */ |
| "[CPU_TX]", /* GPIO44 */ |
| "[CPU_RX]", /* GPIO45 */ |
| "[UART1_TXD]", /* GPIO46 */ |
| "[UART1_RXD]", /* GPIO47 */ |
| "[UART0_TXD]", /* GPIO48 */ |
| "[UART0_RXD]", /* GPIO49 */ |
| "GPIO-I", /* GPIO50, LSEC pin 31 */ |
| "GPIO-K", /* GPIO51, LSEC pin 33 */ |
| "USER_LED2", /* GPIO52 */ |
| "USER_LED1", /* GPIO53 */ |
| "[UART0_RTS]", /* GPIO54 */ |
| "[UART0_CTS]", /* GPIO55 */ |
| "USER_LED4", /* GPIO56, JTAG1_TRST_X */ |
| "USER_LED3", /* GPIO57, JTAG1_TMS */ |
| "[I2S0_SCLK]", /* GPIO58 */ |
| "[I2S0_FS]", /* GPIO59 */ |
| "[I2S0_SDI]", /* GPIO60 */ |
| "[I2S0_SDO]", /* GPIO61 */ |
| "GPIO-B", /* GPIO62, LSEC pin 24 */ |
| "GPIO-F"; /* GPIO63, I2S1_SCLK, LSEC pin 28 */ |
| }; |
| }; |
| |
| gpio2: gpio@50027800 { |
| portc: gpio-controller@0 { |
| gpio-line-names = |
| "GPIO-D", /* GPIO64, I2S1_FS, LSEC pin 26 */ |
| "GPIO-J", /* GPIO65, I2S1_SDI, LSEC pin 32 */ |
| "GPIO-H", /* GPIO66, I2S1_SDO, LSEC pin 30 */ |
| "GPIO-L", /* GPIO67, LSEC pin 34 */ |
| "[SPI0_CS]", /* GPIO68, SPI1_CS, LSEC pin 12 */ |
| "[SPI0_DIN]", /* GPIO69, SPI1_SDI, LSEC pin 10 */ |
| "[SPI0_DOUT]", /* GPIO70, SPI1_SDO, LSEC pin 14 */ |
| "[SPI0_SCLK]"; /* GPIO71, SPI1_SCK, LSEC pin 8 */ |
| }; |
| }; |
| }; |
| }; |
| |
| &pinctrl { |
| pinctrl_uart0_default: pinctrl-uart0-default { |
| pinmux { |
| groups = "uart0_grp"; |
| function = "uart0"; |
| }; |
| }; |
| |
| pinctrl_uart1_default: pinctrl-uart1-default { |
| pinmux { |
| groups = "uart1_grp"; |
| function = "uart1"; |
| }; |
| }; |
| |
| pinctrl_uart2_default: pinctrl-uart2-default { |
| pinmux { |
| groups = "uart2_grp"; |
| function = "uart2"; |
| }; |
| }; |
| }; |
| |
| &uart0 { |
| status = "okay"; |
| clocks = <&uart_clk>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_uart0_default>; |
| }; |
| |
| &uart1 { |
| status = "okay"; |
| clocks = <&uart_clk>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_uart1_default>; |
| }; |
| |
| &uart2 { |
| status = "okay"; |
| clocks = <&uart_clk>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_uart2_default>; |
| }; |