// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright (C) 2019-20 Sean Anderson <seanga2@gmail.com>
 * Copyright (C) 2020 Western Digital Corporation or its affiliates.
 */

/dts-v1/;

#include "k210.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

/ {
	model = "Kendryte KD233";
	compatible = "canaan,kendryte-kd233", "canaan,kendryte-k210";

	chosen {
		bootargs = "earlycon console=ttySIF0";
		stdout-path = "serial0:115200n8";
	};

	gpio-leds {
		compatible = "gpio-leds";

		led0 {
			gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
		};

		led1 {
			gpios = <&gpio0 9 GPIO_ACTIVE_LOW>;
		};
	};

	gpio-keys {
		compatible = "gpio-keys";

		key {
			label = "KEY0";
			linux,code = <BTN_0>;
			gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
		};
	};
};

&fpioa {
	pinctrl-0 = <&jtag_pinctrl>;
	pinctrl-names = "default";
	status = "okay";

	jtag_pinctrl: jtag-pinmux {
		pinmux = <K210_FPIOA(0, K210_PCF_JTAG_TCLK)>,
			 <K210_FPIOA(1, K210_PCF_JTAG_TDI)>,
			 <K210_FPIOA(2, K210_PCF_JTAG_TMS)>,
			 <K210_FPIOA(3, K210_PCF_JTAG_TDO)>;
	};

	uarths_pinctrl: uarths-pinmux {
		pinmux = <K210_FPIOA(4, K210_PCF_UARTHS_RX)>,
			 <K210_FPIOA(5, K210_PCF_UARTHS_TX)>;
	};

	spi0_pinctrl: spi0-pinmux {
		pinmux = <K210_FPIOA(6, K210_PCF_GPIOHS20)>,  /* cs */
			 <K210_FPIOA(7, K210_PCF_SPI0_SCLK)>, /* wr */
			 <K210_FPIOA(8, K210_PCF_GPIOHS21)>;  /* dc */
	};

	dvp_pinctrl: dvp-pinmux {
		pinmux = <K210_FPIOA(9, K210_PCF_SCCB_SCLK)>,
			 <K210_FPIOA(10, K210_PCF_SCCB_SDA)>,
			 <K210_FPIOA(11, K210_PCF_DVP_RST)>,
			 <K210_FPIOA(12, K210_PCF_DVP_VSYNC)>,
			 <K210_FPIOA(13, K210_PCF_DVP_PWDN)>,
			 <K210_FPIOA(14, K210_PCF_DVP_XCLK)>,
			 <K210_FPIOA(15, K210_PCF_DVP_PCLK)>,
			 <K210_FPIOA(17, K210_PCF_DVP_HSYNC)>;
	};

	gpiohs_pinctrl: gpiohs-pinmux {
		pinmux = <K210_FPIOA(16, K210_PCF_GPIOHS0)>,
			 <K210_FPIOA(20, K210_PCF_GPIOHS4)>, /* Rot. dip sw line 8 */
			 <K210_FPIOA(21, K210_PCF_GPIOHS5)>, /* Rot. dip sw line 4 */
			 <K210_FPIOA(22, K210_PCF_GPIOHS6)>, /* Rot. dip sw line 2 */
			 <K210_FPIOA(23, K210_PCF_GPIOHS7)>, /* Rot. dip sw line 1 */
			 <K210_FPIOA(24, K210_PCF_GPIOHS8)>,
			 <K210_FPIOA(25, K210_PCF_GPIOHS9)>,
			 <K210_FPIOA(26, K210_PCF_GPIOHS10)>;
	};

	spi1_pinctrl: spi1-pinmux {
		pinmux = <K210_FPIOA(29, K210_PCF_SPI1_SCLK)>,
			 <K210_FPIOA(30, K210_PCF_SPI1_D0)>,
			 <K210_FPIOA(31, K210_PCF_SPI1_D1)>,
			 <K210_FPIOA(32, K210_PCF_GPIOHS16)>; /* cs */
	};

	i2s0_pinctrl: i2s0-pinmux {
		pinmux = <K210_FPIOA(33, K210_PCF_I2S0_IN_D0)>,
			 <K210_FPIOA(34, K210_PCF_I2S0_WS)>,
			 <K210_FPIOA(35, K210_PCF_I2S0_SCLK)>;
	};
};

&uarths0 {
	pinctrl-0 = <&uarths_pinctrl>;
	pinctrl-names = "default";
	status = "okay";
};

&gpio0 {
	pinctrl-0 = <&gpiohs_pinctrl>;
	pinctrl-names = "default";
	status = "okay";
};

&i2s0 {
	#sound-dai-cells = <1>;
	pinctrl-0 = <&i2s0_pinctrl>;
	pinctrl-names = "default";
};

&spi0 {
	pinctrl-0 = <&spi0_pinctrl>;
	pinctrl-names = "default";
	num-cs = <1>;
	cs-gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;

	panel@0 {
		compatible = "canaan,kd233-tft", "ilitek,ili9341";
		reg = <0>;
		dc-gpios = <&gpio0 21 GPIO_ACTIVE_HIGH>;
		spi-max-frequency = <10000000>;
		status = "disabled";
	};
};

&spi1 {
	pinctrl-0 = <&spi1_pinctrl>;
	pinctrl-names = "default";
	num-cs = <1>;
	cs-gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
	status = "okay";

	mmc@0 {
		compatible = "mmc-spi-slot";
		reg = <0>;
		voltage-ranges = <3300 3300>;
		spi-max-frequency = <25000000>;
		broken-cd;
	};
};
