18f5b0e79SDamien Le Moal// SPDX-License-Identifier: GPL-2.0+ 28f5b0e79SDamien Le Moal/* 38f5b0e79SDamien Le Moal * Copyright (C) 2019-20 Sean Anderson <seanga2@gmail.com> 48f5b0e79SDamien Le Moal * Copyright (C) 2020 Western Digital Corporation or its affiliates. 58f5b0e79SDamien Le Moal */ 68f5b0e79SDamien Le Moal 78f5b0e79SDamien Le Moal/dts-v1/; 88f5b0e79SDamien Le Moal 98f5b0e79SDamien Le Moal#include "k210.dtsi" 108f5b0e79SDamien Le Moal 118f5b0e79SDamien Le Moal#include <dt-bindings/gpio/gpio.h> 128f5b0e79SDamien Le Moal#include <dt-bindings/input/input.h> 138f5b0e79SDamien Le Moal 148f5b0e79SDamien Le Moal/ { 158f5b0e79SDamien Le Moal model = "SiPeed MAIXDUINO"; 168f5b0e79SDamien Le Moal compatible = "sipeed,maixduino", "canaan,kendryte-k210"; 178f5b0e79SDamien Le Moal 189235784cSGeert Uytterhoeven aliases { 199235784cSGeert Uytterhoeven serial0 = &uarths0; 209235784cSGeert Uytterhoeven }; 219235784cSGeert Uytterhoeven 228f5b0e79SDamien Le Moal chosen { 238f5b0e79SDamien Le Moal bootargs = "earlycon console=ttySIF0"; 248f5b0e79SDamien Le Moal stdout-path = "serial0:115200n8"; 258f5b0e79SDamien Le Moal }; 268f5b0e79SDamien Le Moal 278f5b0e79SDamien Le Moal gpio-keys { 288f5b0e79SDamien Le Moal compatible = "gpio-keys"; 298f5b0e79SDamien Le Moal 3089551fddSKrzysztof Kozlowski key-boot { 318f5b0e79SDamien Le Moal label = "BOOT"; 328f5b0e79SDamien Le Moal linux,code = <BTN_0>; 338f5b0e79SDamien Le Moal gpios = <&gpio0 0 GPIO_ACTIVE_LOW>; 348f5b0e79SDamien Le Moal }; 358f5b0e79SDamien Le Moal }; 368f5b0e79SDamien Le Moal 378f5b0e79SDamien Le Moal vcc_3v3: regulator-3v3 { 388f5b0e79SDamien Le Moal compatible = "regulator-fixed"; 398f5b0e79SDamien Le Moal regulator-name = "3v3"; 408f5b0e79SDamien Le Moal regulator-min-microvolt = <3300000>; 418f5b0e79SDamien Le Moal regulator-max-microvolt = <3300000>; 428f5b0e79SDamien Le Moal }; 438f5b0e79SDamien Le Moal}; 448f5b0e79SDamien Le Moal 458f5b0e79SDamien Le Moal&fpioa { 468f5b0e79SDamien Le Moal uarths_pinctrl: uarths-pinmux { 478f5b0e79SDamien Le Moal pinmux = <K210_FPIOA(4, K210_PCF_UARTHS_RX)>, /* Header "0" */ 488f5b0e79SDamien Le Moal <K210_FPIOA(5, K210_PCF_UARTHS_TX)>; /* Header "1" */ 498f5b0e79SDamien Le Moal }; 508f5b0e79SDamien Le Moal 518f5b0e79SDamien Le Moal gpio_pinctrl: gpio-pinmux { 528f5b0e79SDamien Le Moal pinmux = <K210_FPIOA(8, K210_PCF_GPIO0)>, 538f5b0e79SDamien Le Moal <K210_FPIOA(9, K210_PCF_GPIO1)>; 548f5b0e79SDamien Le Moal }; 558f5b0e79SDamien Le Moal 568f5b0e79SDamien Le Moal gpiohs_pinctrl: gpiohs-pinmux { 578f5b0e79SDamien Le Moal pinmux = <K210_FPIOA(16, K210_PCF_GPIOHS0)>, /* BOOT */ 588f5b0e79SDamien Le Moal <K210_FPIOA(21, K210_PCF_GPIOHS2)>, /* Header "2" */ 598f5b0e79SDamien Le Moal <K210_FPIOA(22, K210_PCF_GPIOHS3)>, /* Header "3" */ 608f5b0e79SDamien Le Moal <K210_FPIOA(23, K210_PCF_GPIOHS4)>, /* Header "4" */ 618f5b0e79SDamien Le Moal <K210_FPIOA(24, K210_PCF_GPIOHS5)>, /* Header "5" */ 628f5b0e79SDamien Le Moal <K210_FPIOA(32, K210_PCF_GPIOHS6)>, /* Header "6" */ 638f5b0e79SDamien Le Moal <K210_FPIOA(15, K210_PCF_GPIOHS7)>, /* Header "7" */ 648f5b0e79SDamien Le Moal <K210_FPIOA(14, K210_PCF_GPIOHS8)>, /* Header "8" */ 658f5b0e79SDamien Le Moal <K210_FPIOA(13, K210_PCF_GPIOHS9)>, /* Header "9" */ 668f5b0e79SDamien Le Moal <K210_FPIOA(12, K210_PCF_GPIOHS10)>, /* Header "10" */ 678f5b0e79SDamien Le Moal <K210_FPIOA(11, K210_PCF_GPIOHS11)>, /* Header "11" */ 688f5b0e79SDamien Le Moal <K210_FPIOA(10, K210_PCF_GPIOHS12)>, /* Header "12" */ 698f5b0e79SDamien Le Moal <K210_FPIOA(3, K210_PCF_GPIOHS13)>; /* Header "13" */ 708f5b0e79SDamien Le Moal }; 718f5b0e79SDamien Le Moal 728f5b0e79SDamien Le Moal i2s0_pinctrl: i2s0-pinmux { 738f5b0e79SDamien Le Moal pinmux = <K210_FPIOA(18, K210_PCF_I2S0_SCLK)>, 748f5b0e79SDamien Le Moal <K210_FPIOA(19, K210_PCF_I2S0_WS)>, 758f5b0e79SDamien Le Moal <K210_FPIOA(20, K210_PCF_I2S0_IN_D0)>; 768f5b0e79SDamien Le Moal }; 778f5b0e79SDamien Le Moal 788f5b0e79SDamien Le Moal spi1_pinctrl: spi1-pinmux { 798f5b0e79SDamien Le Moal pinmux = <K210_FPIOA(26, K210_PCF_SPI1_D1)>, 808f5b0e79SDamien Le Moal <K210_FPIOA(27, K210_PCF_SPI1_SCLK)>, 818f5b0e79SDamien Le Moal <K210_FPIOA(28, K210_PCF_SPI1_D0)>, 828f5b0e79SDamien Le Moal <K210_FPIOA(29, K210_PCF_GPIO2)>; /* cs */ 838f5b0e79SDamien Le Moal }; 848f5b0e79SDamien Le Moal 858f5b0e79SDamien Le Moal i2c1_pinctrl: i2c1-pinmux { 868f5b0e79SDamien Le Moal pinmux = <K210_FPIOA(30, K210_PCF_I2C1_SCLK)>, /* Header "scl" */ 878f5b0e79SDamien Le Moal <K210_FPIOA(31, K210_PCF_I2C1_SDA)>; /* Header "sda" */ 888f5b0e79SDamien Le Moal }; 898f5b0e79SDamien Le Moal 908f5b0e79SDamien Le Moal i2s1_pinctrl: i2s1-pinmux { 918f5b0e79SDamien Le Moal pinmux = <K210_FPIOA(33, K210_PCF_I2S1_WS)>, 928f5b0e79SDamien Le Moal <K210_FPIOA(34, K210_PCF_I2S1_IN_D0)>, 938f5b0e79SDamien Le Moal <K210_FPIOA(35, K210_PCF_I2S1_SCLK)>; 948f5b0e79SDamien Le Moal }; 958f5b0e79SDamien Le Moal 968f5b0e79SDamien Le Moal spi0_pinctrl: spi0-pinmux { 978f5b0e79SDamien Le Moal pinmux = <K210_FPIOA(36, K210_PCF_GPIOHS20)>, /* cs */ 988f5b0e79SDamien Le Moal <K210_FPIOA(37, K210_PCF_GPIOHS21)>, /* rst */ 998f5b0e79SDamien Le Moal <K210_FPIOA(38, K210_PCF_GPIOHS22)>, /* dc */ 1008f5b0e79SDamien Le Moal <K210_FPIOA(39, K210_PCF_SPI0_SCLK)>; /* wr */ 1018f5b0e79SDamien Le Moal }; 1028f5b0e79SDamien Le Moal 1038f5b0e79SDamien Le Moal dvp_pinctrl: dvp-pinmux { 1048f5b0e79SDamien Le Moal pinmux = <K210_FPIOA(40, K210_PCF_SCCB_SDA)>, 1058f5b0e79SDamien Le Moal <K210_FPIOA(41, K210_PCF_SCCB_SCLK)>, 1068f5b0e79SDamien Le Moal <K210_FPIOA(42, K210_PCF_DVP_RST)>, 1078f5b0e79SDamien Le Moal <K210_FPIOA(43, K210_PCF_DVP_VSYNC)>, 1088f5b0e79SDamien Le Moal <K210_FPIOA(44, K210_PCF_DVP_PWDN)>, 1098f5b0e79SDamien Le Moal <K210_FPIOA(45, K210_PCF_DVP_HSYNC)>, 1108f5b0e79SDamien Le Moal <K210_FPIOA(46, K210_PCF_DVP_XCLK)>, 1118f5b0e79SDamien Le Moal <K210_FPIOA(47, K210_PCF_DVP_PCLK)>; 1128f5b0e79SDamien Le Moal }; 1138f5b0e79SDamien Le Moal}; 1148f5b0e79SDamien Le Moal 1158f5b0e79SDamien Le Moal&uarths0 { 1168f5b0e79SDamien Le Moal pinctrl-0 = <&uarths_pinctrl>; 1178f5b0e79SDamien Le Moal pinctrl-names = "default"; 1188f5b0e79SDamien Le Moal status = "okay"; 1198f5b0e79SDamien Le Moal}; 1208f5b0e79SDamien Le Moal 1218f5b0e79SDamien Le Moal&gpio0 { 1228f5b0e79SDamien Le Moal pinctrl-0 = <&gpiohs_pinctrl>; 1238f5b0e79SDamien Le Moal pinctrl-names = "default"; 1248f5b0e79SDamien Le Moal status = "okay"; 1258f5b0e79SDamien Le Moal}; 1268f5b0e79SDamien Le Moal 1278f5b0e79SDamien Le Moal&gpio1 { 1288f5b0e79SDamien Le Moal pinctrl-0 = <&gpio_pinctrl>; 1298f5b0e79SDamien Le Moal pinctrl-names = "default"; 1308f5b0e79SDamien Le Moal status = "okay"; 1318f5b0e79SDamien Le Moal}; 1328f5b0e79SDamien Le Moal 1338f5b0e79SDamien Le Moal&i2s0 { 1348f5b0e79SDamien Le Moal #sound-dai-cells = <1>; 1358f5b0e79SDamien Le Moal pinctrl-0 = <&i2s0_pinctrl>; 1368f5b0e79SDamien Le Moal pinctrl-names = "default"; 137*2c917b55SGeert Uytterhoeven status = "okay"; 1388f5b0e79SDamien Le Moal}; 1398f5b0e79SDamien Le Moal 1408f5b0e79SDamien Le Moal&i2c1 { 1418f5b0e79SDamien Le Moal pinctrl-0 = <&i2c1_pinctrl>; 1428f5b0e79SDamien Le Moal pinctrl-names = "default"; 1438f5b0e79SDamien Le Moal clock-frequency = <400000>; 1448f5b0e79SDamien Le Moal status = "okay"; 1458f5b0e79SDamien Le Moal}; 1468f5b0e79SDamien Le Moal 1478f5b0e79SDamien Le Moal&spi0 { 1488f5b0e79SDamien Le Moal pinctrl-0 = <&spi0_pinctrl>; 1498f5b0e79SDamien Le Moal pinctrl-names = "default"; 1508f5b0e79SDamien Le Moal num-cs = <1>; 1518f5b0e79SDamien Le Moal cs-gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>; 152*2c917b55SGeert Uytterhoeven status = "okay"; 1538f5b0e79SDamien Le Moal 1548f5b0e79SDamien Le Moal panel@0 { 1558f5b0e79SDamien Le Moal compatible = "sitronix,st7789v"; 1568f5b0e79SDamien Le Moal reg = <0>; 1578f5b0e79SDamien Le Moal reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>; 1588f5b0e79SDamien Le Moal dc-gpios = <&gpio0 22 0>; 1598f5b0e79SDamien Le Moal spi-max-frequency = <15000000>; 1608f5b0e79SDamien Le Moal power-supply = <&vcc_3v3>; 1618f5b0e79SDamien Le Moal }; 1628f5b0e79SDamien Le Moal}; 1638f5b0e79SDamien Le Moal 1648f5b0e79SDamien Le Moal&spi1 { 1658f5b0e79SDamien Le Moal pinctrl-0 = <&spi1_pinctrl>; 1668f5b0e79SDamien Le Moal pinctrl-names = "default"; 1678f5b0e79SDamien Le Moal num-cs = <1>; 1688f5b0e79SDamien Le Moal cs-gpios = <&gpio1_0 2 GPIO_ACTIVE_LOW>; 1698f5b0e79SDamien Le Moal status = "okay"; 1708f5b0e79SDamien Le Moal 1715f4c5824SConor Dooley mmc@0 { 1728f5b0e79SDamien Le Moal compatible = "mmc-spi-slot"; 1738f5b0e79SDamien Le Moal reg = <0>; 1748f5b0e79SDamien Le Moal voltage-ranges = <3300 3300>; 1758f5b0e79SDamien Le Moal spi-max-frequency = <25000000>; 1768f5b0e79SDamien Le Moal broken-cd; 1778f5b0e79SDamien Le Moal }; 1788f5b0e79SDamien Le Moal}; 1798f5b0e79SDamien Le Moal 1808f5b0e79SDamien Le Moal&spi3 { 181*2c917b55SGeert Uytterhoeven status = "okay"; 182*2c917b55SGeert Uytterhoeven 183fe38b4d6SGeert Uytterhoeven flash@0 { 1848f5b0e79SDamien Le Moal compatible = "jedec,spi-nor"; 1858f5b0e79SDamien Le Moal reg = <0>; 1868f5b0e79SDamien Le Moal spi-max-frequency = <50000000>; 1876846d656SNiklas Cassel spi-tx-bus-width = <4>; 1886846d656SNiklas Cassel spi-rx-bus-width = <4>; 1898f5b0e79SDamien Le Moal m25p,fast-read; 1908f5b0e79SDamien Le Moal broken-flash-reset; 1918f5b0e79SDamien Le Moal }; 1928f5b0e79SDamien Le Moal}; 193