162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2019 Linaro Ltd.
462306a36Sopenharmony_ci * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
562306a36Sopenharmony_ci */
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci/dts-v1/;
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include "bm1880.dtsi"
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci/*
1262306a36Sopenharmony_ci * GPIO name legend: proper name = the GPIO line is used as GPIO
1362306a36Sopenharmony_ci *         NC = not connected (pin out but not routed from the chip to
1462306a36Sopenharmony_ci *              anything the board)
1562306a36Sopenharmony_ci *         "[PER]" = pin is muxed for [peripheral] (not GPIO)
1662306a36Sopenharmony_ci *         LSEC = Low Speed External Connector
1762306a36Sopenharmony_ci *         HSEC = High Speed External Connector
1862306a36Sopenharmony_ci *
1962306a36Sopenharmony_ci * Line names are taken from the schematic "sophon-edge-schematics"
2062306a36Sopenharmony_ci * version, 1.0210.
2162306a36Sopenharmony_ci *
2262306a36Sopenharmony_ci * For the lines routed to the external connectors the
2362306a36Sopenharmony_ci * lines are named after the 96Boards CE Specification 1.0,
2462306a36Sopenharmony_ci * Appendix "Expansion Connector Signal Description".
2562306a36Sopenharmony_ci *
2662306a36Sopenharmony_ci * When the 96Board naming of a line and the schematic name of
2762306a36Sopenharmony_ci * the same line are in conflict, the 96Board specification
2862306a36Sopenharmony_ci * takes precedence. This is only for the informational
2962306a36Sopenharmony_ci * lines i.e. "[FOO]", the GPIO named lines "GPIO-A" thru "GPIO-L"
3062306a36Sopenharmony_ci * are the only ones actually used for GPIO.
3162306a36Sopenharmony_ci */
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci/ {
3462306a36Sopenharmony_ci	compatible = "bitmain,sophon-edge", "bitmain,bm1880";
3562306a36Sopenharmony_ci	model = "Sophon Edge";
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci	aliases {
3862306a36Sopenharmony_ci		serial0 = &uart0;
3962306a36Sopenharmony_ci		serial1 = &uart2;
4062306a36Sopenharmony_ci		serial2 = &uart1;
4162306a36Sopenharmony_ci	};
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci	chosen {
4462306a36Sopenharmony_ci		stdout-path = "serial0:115200n8";
4562306a36Sopenharmony_ci	};
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci	memory@0 {
4862306a36Sopenharmony_ci		device_type = "memory";
4962306a36Sopenharmony_ci		reg = <0x1 0x00000000 0x0 0x40000000>; // 1GB
5062306a36Sopenharmony_ci	};
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci	soc {
5362306a36Sopenharmony_ci		gpio0: gpio@50027000 {
5462306a36Sopenharmony_ci			porta: gpio-controller@0 {
5562306a36Sopenharmony_ci				gpio-line-names =
5662306a36Sopenharmony_ci					"GPIO-A", /* GPIO0, LSEC pin 23 */
5762306a36Sopenharmony_ci					"GPIO-C", /* GPIO1, LSEC pin 25 */
5862306a36Sopenharmony_ci					"[GPIO2_PHY0_RST]", /* GPIO2 */
5962306a36Sopenharmony_ci					"GPIO-E", /* GPIO3, LSEC pin 27 */
6062306a36Sopenharmony_ci					"[USB_DET]", /* GPIO4 */
6162306a36Sopenharmony_ci					"[EN_P5V]", /* GPIO5 */
6262306a36Sopenharmony_ci					"[VDDIO_MS1_SEL]", /* GPIO6 */
6362306a36Sopenharmony_ci					"GPIO-G", /* GPIO7, LSEC pin 29 */
6462306a36Sopenharmony_ci					"[BM_TUSB_RST_L]", /* GPIO8 */
6562306a36Sopenharmony_ci					"[EN_P5V_USBHUB]", /* GPIO9 */
6662306a36Sopenharmony_ci					"NC",
6762306a36Sopenharmony_ci					"LED_WIFI", /* GPIO11 */
6862306a36Sopenharmony_ci					"LED_BT", /* GPIO12 */
6962306a36Sopenharmony_ci					"[BM_BLM8221_EN_L]", /* GPIO13 */
7062306a36Sopenharmony_ci					"NC", /* GPIO14 */
7162306a36Sopenharmony_ci					"NC", /* GPIO15 */
7262306a36Sopenharmony_ci					"NC", /* GPIO16 */
7362306a36Sopenharmony_ci					"NC", /* GPIO17 */
7462306a36Sopenharmony_ci					"NC", /* GPIO18 */
7562306a36Sopenharmony_ci					"NC", /* GPIO19 */
7662306a36Sopenharmony_ci					"NC", /* GPIO20 */
7762306a36Sopenharmony_ci					"NC", /* GPIO21 */
7862306a36Sopenharmony_ci					"NC", /* GPIO22 */
7962306a36Sopenharmony_ci					"NC", /* GPIO23 */
8062306a36Sopenharmony_ci					"NC", /* GPIO24 */
8162306a36Sopenharmony_ci					"NC", /* GPIO25 */
8262306a36Sopenharmony_ci					"NC", /* GPIO26 */
8362306a36Sopenharmony_ci					"NC", /* GPIO27 */
8462306a36Sopenharmony_ci					"NC", /* GPIO28 */
8562306a36Sopenharmony_ci					"NC", /* GPIO29 */
8662306a36Sopenharmony_ci					"NC", /* GPIO30 */
8762306a36Sopenharmony_ci					"NC"; /* GPIO31 */
8862306a36Sopenharmony_ci			};
8962306a36Sopenharmony_ci		};
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci		gpio1: gpio@50027400 {
9262306a36Sopenharmony_ci			portb: gpio-controller@0 {
9362306a36Sopenharmony_ci				gpio-line-names =
9462306a36Sopenharmony_ci					"NC", /* GPIO32 */
9562306a36Sopenharmony_ci					"NC", /* GPIO33 */
9662306a36Sopenharmony_ci					"[I2C0_SDA]", /* GPIO34, LSEC pin 17 */
9762306a36Sopenharmony_ci					"[I2C0_SCL]", /* GPIO35, LSEC pin 15 */
9862306a36Sopenharmony_ci					"[JTAG0_TDO]", /* GPIO36 */
9962306a36Sopenharmony_ci					"[JTAG0_TCK]", /* GPIO37 */
10062306a36Sopenharmony_ci					"[JTAG0_TDI]", /* GPIO38 */
10162306a36Sopenharmony_ci					"[JTAG0_TMS]", /* GPIO39 */
10262306a36Sopenharmony_ci					"[JTAG0_TRST_X]", /* GPIO40 */
10362306a36Sopenharmony_ci					"[JTAG1_TDO]", /* GPIO41 */
10462306a36Sopenharmony_ci					"[JTAG1_TCK]", /* GPIO42 */
10562306a36Sopenharmony_ci					"[JTAG1_TDI]", /* GPIO43 */
10662306a36Sopenharmony_ci					"[CPU_TX]", /* GPIO44 */
10762306a36Sopenharmony_ci					"[CPU_RX]", /* GPIO45 */
10862306a36Sopenharmony_ci					"[UART1_TXD]", /* GPIO46 */
10962306a36Sopenharmony_ci					"[UART1_RXD]", /* GPIO47 */
11062306a36Sopenharmony_ci					"[UART0_TXD]", /* GPIO48 */
11162306a36Sopenharmony_ci					"[UART0_RXD]", /* GPIO49 */
11262306a36Sopenharmony_ci					"GPIO-I", /* GPIO50, LSEC pin 31 */
11362306a36Sopenharmony_ci					"GPIO-K", /* GPIO51, LSEC pin 33 */
11462306a36Sopenharmony_ci					"USER_LED2", /* GPIO52 */
11562306a36Sopenharmony_ci					"USER_LED1", /* GPIO53 */
11662306a36Sopenharmony_ci					"[UART0_RTS]", /* GPIO54 */
11762306a36Sopenharmony_ci					"[UART0_CTS]", /* GPIO55 */
11862306a36Sopenharmony_ci					"USER_LED4", /* GPIO56, JTAG1_TRST_X */
11962306a36Sopenharmony_ci					"USER_LED3", /* GPIO57, JTAG1_TMS */
12062306a36Sopenharmony_ci					"[I2S0_SCLK]", /* GPIO58 */
12162306a36Sopenharmony_ci					"[I2S0_FS]", /* GPIO59 */
12262306a36Sopenharmony_ci					"[I2S0_SDI]", /* GPIO60 */
12362306a36Sopenharmony_ci					"[I2S0_SDO]", /* GPIO61 */
12462306a36Sopenharmony_ci					"GPIO-B", /* GPIO62, LSEC pin 24 */
12562306a36Sopenharmony_ci					"GPIO-F"; /* GPIO63, I2S1_SCLK, LSEC pin 28 */
12662306a36Sopenharmony_ci			};
12762306a36Sopenharmony_ci		};
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci		gpio2: gpio@50027800 {
13062306a36Sopenharmony_ci			portc: gpio-controller@0 {
13162306a36Sopenharmony_ci				gpio-line-names =
13262306a36Sopenharmony_ci					"GPIO-D", /* GPIO64, I2S1_FS, LSEC pin 26 */
13362306a36Sopenharmony_ci					"GPIO-J", /* GPIO65, I2S1_SDI, LSEC pin 32 */
13462306a36Sopenharmony_ci					"GPIO-H", /* GPIO66, I2S1_SDO, LSEC pin 30 */
13562306a36Sopenharmony_ci					"GPIO-L", /* GPIO67, LSEC pin 34 */
13662306a36Sopenharmony_ci					"[SPI0_CS]", /* GPIO68, SPI1_CS, LSEC pin 12 */
13762306a36Sopenharmony_ci					"[SPI0_DIN]", /* GPIO69, SPI1_SDI, LSEC pin 10 */
13862306a36Sopenharmony_ci					"[SPI0_DOUT]", /* GPIO70, SPI1_SDO, LSEC pin 14 */
13962306a36Sopenharmony_ci					"[SPI0_SCLK]"; /* GPIO71, SPI1_SCK, LSEC pin 8 */
14062306a36Sopenharmony_ci			};
14162306a36Sopenharmony_ci		};
14262306a36Sopenharmony_ci	};
14362306a36Sopenharmony_ci};
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ci&pinctrl {
14662306a36Sopenharmony_ci	pinctrl_uart0_default: pinctrl-uart0-default {
14762306a36Sopenharmony_ci		pinmux {
14862306a36Sopenharmony_ci			groups = "uart0_grp";
14962306a36Sopenharmony_ci			function = "uart0";
15062306a36Sopenharmony_ci		};
15162306a36Sopenharmony_ci	};
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci	pinctrl_uart1_default: pinctrl-uart1-default {
15462306a36Sopenharmony_ci		pinmux {
15562306a36Sopenharmony_ci			groups = "uart1_grp";
15662306a36Sopenharmony_ci			function = "uart1";
15762306a36Sopenharmony_ci		};
15862306a36Sopenharmony_ci	};
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_ci	pinctrl_uart2_default: pinctrl-uart2-default {
16162306a36Sopenharmony_ci		pinmux {
16262306a36Sopenharmony_ci			groups = "uart2_grp";
16362306a36Sopenharmony_ci			function = "uart2";
16462306a36Sopenharmony_ci		};
16562306a36Sopenharmony_ci	};
16662306a36Sopenharmony_ci};
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ci&uart0 {
16962306a36Sopenharmony_ci	status = "okay";
17062306a36Sopenharmony_ci	pinctrl-names = "default";
17162306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_uart0_default>;
17262306a36Sopenharmony_ci};
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ci&uart1 {
17562306a36Sopenharmony_ci	status = "okay";
17662306a36Sopenharmony_ci	pinctrl-names = "default";
17762306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_uart1_default>;
17862306a36Sopenharmony_ci};
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ci&uart2 {
18162306a36Sopenharmony_ci	status = "okay";
18262306a36Sopenharmony_ci	pinctrl-names = "default";
18362306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_uart2_default>;
18462306a36Sopenharmony_ci};
185