// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright (C) 2019-20 Sean Anderson <seanga2@gmail.com>
 */

#include <dt-bindings/clock/k210-sysctl.h>
#include <dt-bindings/mfd/k210-sysctl.h>
#include <dt-bindings/pinctrl/k210-pinctrl.h>
#include <dt-bindings/reset/k210-sysctl.h>

/ {
	/*
	 * Although the K210 is a 64-bit CPU, the address bus is only 32-bits
	 * wide, and the upper half of all addresses is ignored.
	 */
	#address-cells = <1>;
	#size-cells = <1>;
	compatible = "kendryte,k210";

	aliases {
		cpu0 = &cpu0;
		cpu1 = &cpu1;
		dma0 = &dmac0;
		gpio0 = &gpio0;
		gpio1 = &gpio1_0;
		i2c0 = &i2c0;
		i2c1 = &i2c1;
		i2c2 = &i2c2;
		pinctrl0 = &fpioa;
		serial0 = &uarths0;
		serial1 = &uart1;
		serial2 = &uart2;
		serial3 = &uart3;
		spi0 = &spi0;
		spi1 = &spi1;
		spi2 = &spi2;
		spi3 = &spi3;
		timer0 = &timer0;
		timer1 = &timer1;
		timer2 = &timer2;
	};

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;
		timebase-frequency = <7800000>;
		cpu0: cpu@0 {
			device_type = "cpu";
			compatible = "kendryte,k210", "sifive,rocket0", "riscv";
			reg = <0>;
			riscv,isa = "rv64imafdgc";
			mmu-type = "sv39";
			i-cache-block-size = <64>;
			i-cache-size = <0x8000>;
			d-cache-block-size = <64>;
			d-cache-size = <0x8000>;
			clocks = <&sysclk K210_CLK_CPU>;
			cpu0_intc: interrupt-controller {
				#interrupt-cells = <1>;
				interrupt-controller;
				compatible = "riscv,cpu-intc";
			};
		};
		cpu1: cpu@1 {
			device_type = "cpu";
			compatible = "kendryte,k210", "sifive,rocket0", "riscv";
			reg = <1>;
			riscv,isa = "rv64imafdgc";
			mmu-type = "sv39";
			i-cache-block-size = <64>;
			i-cache-size = <0x8000>;
			d-cache-block-size = <64>;
			d-cache-size = <0x8000>;
			clocks = <&sysclk K210_CLK_CPU>;
			cpu1_intc: interrupt-controller {
				#interrupt-cells = <1>;
				interrupt-controller;
				compatible = "riscv,cpu-intc";
			};
		};
	};

	sram: memory@80000000 {
		device_type = "memory";
		compatible = "kendryte,k210-sram";
		reg = <0x80000000 0x400000>,
		      <0x80400000 0x200000>,
		      <0x80600000 0x200000>;
		reg-names = "sram0", "sram1", "aisram";
		clocks = <&sysclk K210_CLK_SRAM0>,
			 <&sysclk K210_CLK_SRAM1>,
			 <&sysclk K210_CLK_AI>;
		clock-names = "sram0", "sram1", "aisram";
		u-boot,dm-pre-reloc;
	};

	clocks {
		in0: osc {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <26000000>;
			u-boot,dm-pre-reloc;
		};
	};

	soc {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "kendryte,k210-soc", "simple-bus";
		ranges;
		interrupt-parent = <&plic0>;

		debug0: debug@0 {
			compatible = "kendryte,k210-debug", "riscv,debug";
			reg = <0x0 0x1000>;
		};

		rom0: nvmem@1000 {
			reg = <0x1000 0x1000>;
			read-only;
		};

		clint0: clint@2000000 {
			#interrupt-cells = <1>;
			compatible = "kendryte,k210-clint", "riscv,clint0";
			reg = <0x2000000 0xC000>;
			interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>,
					      <&cpu1_intc 3>, <&cpu1_intc 7>;
			clocks = <&sysclk K210_CLK_CLINT>;
		};

		plic0: interrupt-controller@C000000 {
			#interrupt-cells = <1>;
			compatible = "kendryte,k210-plic", "riscv,plic0";
			reg = <0xC000000 0x4000000>;
			interrupt-controller;
			interrupts-extended = <&cpu0_intc 9>, <&cpu0_intc 11>,
					      <&cpu1_intc 9>, <&cpu1_intc 11>;
			riscv,ndev = <65>;
			riscv,max-priority = <7>;
		};

		uarths0: serial@38000000 {
			compatible = "kendryte,k210-uarths", "sifive,uart0";
			reg = <0x38000000 0x1000>;
			interrupts = <33>;
			clocks = <&sysclk K210_CLK_CPU>;
			status = "disabled";
		};

		gpio0: gpio-controller@38001000 {
			#interrupt-cells = <2>;
			#gpio-cells = <2>;
			compatible = "kendryte,k210-gpiohs", "sifive,gpio0";
			reg = <0x38001000 0x1000>;
			interrupt-controller;
			interrupts = <34 35 36 37 38 39 40 41
				      42 43 44 45 46 47 48 49
				      50 51 52 53 54 55 56 57
				      58 59 60 61 62 63 64 65>;
			gpio-controller;
			ngpios = <32>;
			status = "disabled";
		};

		kpu0: kpu@40800000 {
			compatible = "kendryte,k210-kpu";
			reg = <0x40800000 0xc00000>;
			interrupts = <25>;
			clocks = <&sysclk K210_CLK_AI>;
			status = "disabled";
		};

		fft0: fft@42000000 {
			compatible = "kendryte,k210-fft";
			reg = <0x42000000 0x400000>;
			interrupts = <26>;
			clocks = <&sysclk K210_CLK_FFT>;
			resets = <&sysrst K210_RST_FFT>;
			status = "disabled";
		};

		dmac0: dma-controller@50000000 {
			compatible = "kendryte,k210-dmac", "snps,axi-dma-1.01a";
			reg = <0x50000000 0x1000>;
			interrupts = <27 28 29 30 31 32>;
			clocks = <&sysclk K210_CLK_DMA>, <&sysclk K210_CLK_DMA>;
			clock-names = "core-clk", "cfgr-clk";
			resets = <&sysrst K210_RST_DMA>;
			dma-channels = <6>;
			snps,dma-masters = <2>;
			snps,data-width = <5>;
			snps,block-size = <0x200000 0x200000 0x200000
					   0x200000 0x200000 0x200000>;
			snps,axi-max-burst-len = <256>;
			status = "disabled";
		};

		apb0: bus@50200000 {
			#address-cells = <1>;
			#size-cells = <1>;
			compatible = "kendryte,k210-apb", "simple-pm-bus";
			ranges;
			clocks = <&sysclk K210_CLK_APB0>;

			gpio1: gpio-controller@50200000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "kendryte,k210-gpio",
					     "snps,dw-apb-gpio";
				reg = <0x50200000 0x80>;
				clocks = <&sysclk K210_CLK_GPIO>;
				resets = <&sysrst K210_RST_GPIO>;
				status = "disabled";

				gpio1_0: gpio1@0 {
					#gpio-cells = <2>;
					#interrupt-cells = <2>;
					compatible = "snps,dw-apb-gpio-port";
					reg = <0>;
					interrupt-controller;
					interrupts = <23>;
					gpio-controller;
					snps,nr-gpios = <8>;
				};
			};

			uart1: serial@50210000 {
				compatible = "kendryte,k210-uart",
					     "snps,dw-apb-uart";
				reg = <0x50210000 0x100>;
				interrupts = <11>;
				clocks = <&sysclk K210_CLK_UART1>;
				resets = <&sysrst K210_RST_UART1>;
				reg-io-width = <4>;
				reg-shift = <2>;
				dcd-override;
				dsr-override;
				cts-override;
				ri-override;
				status = "disabled";
			};

			uart2: serial@50220000 {
				compatible = "kendryte,k210-uart",
					     "snps,dw-apb-uart";
				reg = <0x50220000 0x100>;
				interrupts = <12>;
				clocks = <&sysclk K210_CLK_UART2>;
				resets = <&sysrst K210_RST_UART2>;
				reg-io-width = <4>;
				reg-shift = <2>;
				dcd-override;
				dsr-override;
				cts-override;
				ri-override;
				status = "disabled";
			};

			uart3: serial@50230000 {
				compatible = "kendryte,k210-uart",
					     "snps,dw-apb-uart";
				reg = <0x50230000 0x100>;
				interrupts = <13>;
				clocks = <&sysclk K210_CLK_UART3>;
				resets = <&sysrst K210_RST_UART3>;
				reg-io-width = <4>;
				reg-shift = <2>;
				dcd-override;
				dsr-override;
				cts-override;
				ri-override;
				status = "disabled";
			};

			spi2: spi@50240000 {
				compatible = "canaan,kendryte-k210-spi",
					     "snps,dw-apb-ssi-4.01",
					     "snps,dw-apb-ssi";
				spi-slave;
				reg = <0x50240000 0x100>;
				interrupts = <2>;
				clocks = <&sysclk K210_CLK_SPI2>;
				resets = <&sysrst K210_RST_SPI2>;
				spi-max-frequency = <25000000>;
				status = "disabled";
			};

			i2s0: i2s@50250000 {
				compatible = "kendryte,k210-i2s",
					     "snps,designware-i2s";
				reg = <0x50250000 0x200>;
				interrupts = <5>;
				clocks = <&sysclk K210_CLK_I2S0>;
				clock-names = "i2sclk";
				resets = <&sysrst K210_RST_I2S0>;
				status = "disabled";
			};

			apu0: sound@520250200 {
				compatible = "kendryte,k210-apu";
				reg = <0x50250200 0x200>;
				status = "disabled";
			};

			i2s1: i2s@50260000 {
				compatible = "kendryte,k210-i2s",
					     "snps,designware-i2s";
				reg = <0x50260000 0x200>;
				interrupts = <6>;
				clocks = <&sysclk K210_CLK_I2S1>;
				clock-names = "i2sclk";
				resets = <&sysrst K210_RST_I2S1>;
				status = "disabled";
			};

			i2s2: i2s@50270000 {
				compatible = "kendryte,k210-i2s",
					     "snps,designware-i2s";
				reg = <0x50270000 0x200>;
				interrupts = <7>;
				clocks = <&sysclk K210_CLK_I2S2>;
				clock-names = "i2sclk";
				resets = <&sysrst K210_RST_I2S2>;
				status = "disabled";
			};

			i2c0: i2c@50280000 {
				compatible = "kendryte,k210-i2c",
					     "snps,designware-i2c";
				reg = <0x50280000 0x100>;
				interrupts = <8>;
				clocks = <&sysclk K210_CLK_I2C0>;
				resets = <&sysrst K210_RST_I2C0>;
				status = "disabled";
			};

			i2c1: i2c@50290000 {
				compatible = "kendryte,k210-i2c",
					     "snps,designware-i2c";
				reg = <0x50290000 0x100>;
				interrupts = <9>;
				clocks = <&sysclk K210_CLK_I2C1>;
				resets = <&sysrst K210_RST_I2C1>;
				status = "disabled";
			};

			i2c2: i2c@502A0000 {
				compatible = "kendryte,k210-i2c",
					     "snps,designware-i2c";
				reg = <0x502A0000 0x100>;
				interrupts = <10>;
				clocks = <&sysclk K210_CLK_I2C2>;
				resets = <&sysrst K210_RST_I2C2>;
				status = "disabled";
			};

			fpioa: pinmux@502B0000 {
				compatible = "kendryte,k210-fpioa";
				reg = <0x502B0000 0x100>;
				clocks = <&sysclk K210_CLK_FPIOA>;
				resets = <&sysrst K210_RST_FPIOA>;
				kendryte,sysctl = <&sysctl>;
				kendryte,power-offset = <K210_SYSCTL_POWER_SEL>;
				pinctrl-0 = <&fpioa_jtag>;
				pinctrl-names = "default";
				status = "disabled";

				fpioa_jtag: jtag {
					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)>;
				};
			};

			sha256: sha256@502C0000 {
				compatible = "kendryte,k210-sha256";
				reg = <0x502C0000 0x100>;
				clocks = <&sysclk K210_CLK_SHA>;
				resets = <&sysrst K210_RST_SHA>;
				status = "disabled";
			};

			timer0: timer@502D0000 {
				compatible = "kendryte,k210-timer",
					     "snps,dw-apb-timer";
				reg = <0x502D0000 0x100>;
				interrupts = <14 15>;
				clocks = <&sysclk K210_CLK_TIMER0>;
				clock-names = "timer";
				resets = <&sysrst K210_RST_TIMER0>;
				status = "disabled";
			};

			timer1: timer@502E0000 {
				compatible = "kendryte,k210-timer",
					     "snps,dw-apb-timer";
				reg = <0x502E0000 0x100>;
				interrupts = <16 17>;
				clocks = <&sysclk K210_CLK_TIMER1>;
				clock-names = "timer";
				resets = <&sysrst K210_RST_TIMER1>;
				status = "disabled";
			};

			timer2: timer@502F0000 {
				compatible = "kendryte,k210-timer",
					     "snps,dw-apb-timer";
				reg = <0x502F0000 0x100>;
				interrupts = <18 19>;
				clocks = <&sysclk K210_CLK_TIMER2>;
				clock-names = "timer";
				resets = <&sysrst K210_RST_TIMER2>;
				status = "disabled";
			};
		};

		apb1: bus@50400000 {
			#address-cells = <1>;
			#size-cells = <1>;
			compatible = "kendryte,k210-apb", "simple-pm-bus";
			ranges;
			clocks = <&sysclk K210_CLK_APB1>;

			wdt0: watchdog@50400000 {
				compatible = "kendryte,k210-wdt", "snps,dw-wdt";
				reg = <0x50400000 0x100>;
				interrupts = <21>;
				clocks = <&sysclk K210_CLK_WDT0>;
				resets = <&sysrst K210_RST_WDT0>;
			};

			wdt1: watchdog@50410000 {
				compatible = "kendryte,k210-wdt", "snps,dw-wdt";
				reg = <0x50410000 0x100>;
				interrupts = <22>;
				clocks = <&sysclk K210_CLK_WDT1>;
				resets = <&sysrst K210_RST_WDT1>;
				status = "disabled";
			};

			otp0: nvmem@50420000 {
				#address-cells = <1>;
				#size-cells = <1>;
				compatible = "kendryte,k210-otp";
				reg = <0x50420000 0x100>,
				      <0x88000000 0x20000>;
				reg-names = "reg", "mem";
				clocks = <&sysclk K210_CLK_ROM>;
				resets = <&sysrst K210_RST_ROM>;
				read-only;
				status = "disabled";

				/* Bootloader */
				firmware@00000 {
					reg = <0x00000 0xC200>;
				};

				/*
				 * config string as described in RISC-V
				 * privileged spec 1.9
				 */
				config-1-9@1c000 {
					reg = <0x1C000 0x1000>;
				};

				/*
				 * Device tree containing only registers,
				 * interrupts, and cpus
				 */
				fdt@1d000 {
					reg = <0x1D000 0x2000>;
				};

				/* CPU/ROM credits */
				credits@1f000 {
					reg = <0x1F000 0x1000>;
				};
			};

			dvp0: camera@50430000 {
				compatible = "kendryte,k210-dvp";
				reg = <0x50430000 0x100>;
				interrupts = <24>;
				clocks = <&sysclk K210_CLK_DVP>;
				resets = <&sysrst K210_RST_DVP>;
				kendryte,sysctl = <&sysctl>;
				kendryte,misc-offset = <K210_SYSCTL_MISC>;
				status = "disabled";
			};

			sysctl: syscon@50440000 {
				compatible = "kendryte,k210-sysctl",
					     "syscon", "simple-mfd";
				reg = <0x50440000 0x100>;
				reg-io-width = <4>;
				u-boot,dm-pre-reloc;

				sysclk: clock-controller {
					#clock-cells = <1>;
					compatible = "kendryte,k210-clk";
					clocks = <&in0>;
					u-boot,dm-pre-reloc;
				};

				sysrst: reset-controller {
					compatible = "kendryte,k210-rst",
						     "syscon-reset";
					#reset-cells = <1>;
					regmap = <&sysctl>;
					offset = <K210_SYSCTL_PERI_RESET>;
					mask = <0x27FFFFFF>;
					assert-high = <1>;
				};

				reboot {
					compatible = "syscon-reboot";
					regmap = <&sysctl>;
					offset = <K210_SYSCTL_SOFT_RESET>;
					mask = <1>;
					value = <1>;
				};
			};

			aes0: aes@50450000 {
				compatible = "kendryte,k210-aes";
				reg = <0x50450000 0x100>;
				clocks = <&sysclk K210_CLK_AES>;
				resets = <&sysrst K210_RST_AES>;
				status = "disabled";
			};

			rtc: rtc@50460000 {
				compatible = "kendryte,k210-rtc";
				reg = <0x50460000 0x100>;
				clocks = <&in0>;
				resets = <&sysrst K210_RST_RTC>;
				interrupts = <20>;
				status = "disabled";
			};
		};

		apb2: bus@52000000 {
			#address-cells = <1>;
			#size-cells = <1>;
			compatible = "kendryte,k210-apb", "simple-pm-bus";
			ranges;
			clocks = <&sysclk K210_CLK_APB2>;

			spi0: spi@52000000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "canaan,kendryte-k210-spi",
					     "snps,dw-apb-ssi-4.01",
					     "snps,dw-apb-ssi";
				reg = <0x52000000 0x100>;
				interrupts = <1>;
				clocks = <&sysclk K210_CLK_SPI0>;
				clock-names = "ssi_clk";
				resets = <&sysrst K210_RST_SPI0>;
				spi-max-frequency = <25000000>;
				num-cs = <4>;
				reg-io-width = <4>;
				status = "disabled";
			};

			spi1: spi@53000000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "canaan,kendryte-k210-spi",
					     "snps,dw-apb-ssi-4.01",
					     "snps,dw-apb-ssi";
				reg = <0x53000000 0x100>;
				interrupts = <2>;
				clocks = <&sysclk K210_CLK_SPI1>;
				clock-names = "ssi_clk";
				resets = <&sysrst K210_RST_SPI1>;
				spi-max-frequency = <25000000>;
				num-cs = <4>;
				reg-io-width = <4>;
				status = "disabled";
			};

			spi3: spi@54000000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "canaan,kendryte-k210-ssi",
					     "snps,dwc-ssi-1.01a";
				reg = <0x54000000 0x200>;
				interrupts = <4>;
				clocks = <&sysclk K210_CLK_SPI3>;
				clock-names = "ssi_clk";
				resets = <&sysrst K210_RST_SPI3>;
				/* Could possibly go up to 200 MHz */
				spi-max-frequency = <100000000>;
				num-cs = <4>;
				reg-io-width = <4>;
				status = "disabled";
			};
		};
	};
};
