diff --git a/arch/csky/boot/dts/gx6605s.dts b/arch/csky/boot/dts/gx6605s.dts
new file mode 100644
index 000000000000..f7511024ec6f
--- /dev/null
+++ b/arch/csky/boot/dts/gx6605s.dts
@@ -0,0 +1,104 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later OR BSD-2-Clause */
+/*
+ * GX6605S dev board
+ *
+ * Copyright (c) 2019 Andreas Färber
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+#include "gx6605s.dtsi"
+
+/ {
+	model = "Nationalchip GX6605S";
+
+	aliases {
+		serial0 = &uart;
+	};
+
+	chosen {
+		bootargs = "console=ttyS0,115200n8 root=/dev/sda2 rw rootwait";
+		stdout-path = "serial0:115200n8";
+	};
+
+	memory@10000000 {
+		device_type = "memory";
+		reg = <0x10000000 0x04000000>;
+	};
+
+	dummy_apb_clk: dummy-apb-clk {
+		compatible = "fixed-clock";
+		clock-frequency = <24000000>; /* guesstimate */
+		#clock-cells = <0>;
+	};
+
+	buttons {
+		compatible = "gpio-keys-polled";
+		poll-interval = <100>;
+		autorepeat;
+
+		button5 {
+			label = "button5";
+			linux,code = <103>;
+			gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+		};
+
+		button6 {
+			label = "button6";
+			linux,code = <106>;
+			gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+		};
+
+		button7 {
+			label = "button7";
+			linux,code = <28>;
+			gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+		};
+
+		button8 {
+			label = "button8";
+			linux,code = <105>;
+			gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+		};
+
+		button9 {
+			label = "button9";
+			linux,code = <108>;
+			gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		led0 {
+			label = "led10";
+			gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "heartbeat";
+		};
+
+		led1 {
+			label = "led11";
+			gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "timer";
+		};
+
+		led2 {
+			label = "led12";
+			gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "default-on";
+		};
+
+		led3 {
+			label = "led13";
+			gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "default-on";
+		};
+	};
+};
+
+&timer0 {
+		clocks = <&dummy_apb_clk>;
+};
diff --git a/arch/csky/boot/dts/gx6605s.dtsi b/arch/csky/boot/dts/gx6605s.dtsi
new file mode 100644
index 000000000000..956af5674add
--- /dev/null
+++ b/arch/csky/boot/dts/gx6605s.dtsi
@@ -0,0 +1,82 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later OR BSD-2-Clause */
+/*
+ * NationalChip GX6605S SoC
+ *
+ * Copyright (c) 2019 Andreas Färber
+ */
+
+/ {
+	#address-cells = <1>;
+	#size-cells = <1>;
+
+	cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		cpu0: cpu@0 {
+			device_type = "cpu";
+			compatible = "csky,ck610";
+			reg = <0>;
+		};
+	};
+
+	soc {
+		compatible = "simple-bus";
+		interrupt-parent = <&intc>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		timer0: timer@20a000 {
+			compatible = "csky,gx6605s-timer";
+			reg = <0x0020a000 0x400>;
+			clocks = <&dummy_apb_clk>;
+			interrupts = <10>;
+		};
+
+		gpio: gpio@305000 {
+			compatible = "wd,mbl-gpio";
+			reg-names = "dirout", "dat", "set", "clr";
+			reg = <0x00305000 0x4>,
+			      <0x00305004 0x4>,
+			      <0x00305008 0x4>,
+			      <0x0030500c 0x4>;
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
+
+		uart: serial@403000 {
+			compatible = "ns16550a";
+			reg = <0x00403000 0x400>;
+			interrupts = <15>;
+			clock-frequency = <29491200>;
+			reg-shift = <2>;
+			reg-io-width = <1>;
+		};
+
+		intc: interrupt-controller@500000 {
+			compatible = "csky,gx6605s-intc";
+			reg = <0x00500000 0x400>;
+			interrupt-controller;
+			#interrupt-cells = <1>;
+		};
+
+		ehci_hcd: usb@900000 {
+			compatible = "generic-ehci";
+			reg = <0x00900000 0x400>;
+			interrupts = <59>;
+		};
+
+		ohci_hcd0: usb@a00000 {
+			compatible = "generic-ohci";
+			reg = <0x00a00000 0x400>;
+			interrupts = <58>;
+		};
+
+		ohci_hcd1: usb@b00000 {
+			compatible = "generic-ohci";
+			reg = <0x00b00000 0x400>;
+			interrupts = <57>;
+		};
+	};
+};
