code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Keystone 2 lamarr SoC clock nodes
 *
 * Copyright (C) 2013-2017 Texas Instruments Incorporated - http://www.ti.com/
 */

clocks {
	armpllclk: armpllclk@2620370 {
		#clock-cells = <0>;
		compatible = "ti,keystone,pll-clock";
		clocks = <&refclksys>;
		clock-output-names = "arm-pll-clk";
		reg = <0x02620370 4>;
		reg-names = "control";
	};

	mainpllclk: mainpllclk@2310110 {
		#clock-cells = <0>;
		compatible = "ti,keystone,main-pll-clock";
		clocks = <&refclksys>;
		reg = <0x02620350 4>, <0x02310110 4>, <0x02310108 4>;
		reg-names = "control", "multiplier", "post-divider";
	};

	papllclk: papllclk@2620358 {
		#clock-cells = <0>;
		compatible = "ti,keystone,pll-clock";
		clocks = <&refclksys>;
		clock-output-names = "papllclk";
		reg = <0x02620358 4>;
		reg-names = "control";
	};

	ddr3apllclk: ddr3apllclk@2620360 {
		#clock-cells = <0>;
		compatible = "ti,keystone,pll-clock";
		clocks = <&refclksys>;
		clock-output-names = "ddr-3a-pll-clk";
		reg = <0x02620360 4>;
		reg-names = "control";
	};

	clkdfeiqnsys: clkdfeiqnsys@2350004 {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk12>;
		clock-output-names = "dfe";
		reg-names = "control", "domain";
		reg = <0x02350004 0xb00>, <0x02350000 0x400>;
		domain-id = <0>;
	};

	clkpcie1: clkpcie1@235002c {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk12>;
		clock-output-names = "pcie";
		reg = <0x0235002c 0xb00>, <0x02350000 0x400>;
		reg-names = "control", "domain";
		domain-id = <4>;
	};

	clkgem1: clkgem1@2350040 {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk1>;
		clock-output-names = "gem1";
		reg = <0x02350040 0xb00>, <0x02350024 0x400>;
		reg-names = "control", "domain";
		domain-id = <9>;
	};

	clkgem2: clkgem2@2350044 {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk1>;
		clock-output-names = "gem2";
		reg = <0x02350044 0xb00>, <0x02350028 0x400>;
		reg-names = "control", "domain";
		domain-id = <10>;
	};

	clkgem3: clkgem3@2350048 {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk1>;
		clock-output-names = "gem3";
		reg = <0x02350048 0xb00>, <0x0235002c 0x400>;
		reg-names = "control", "domain";
		domain-id = <11>;
	};

	clktac: clktac@2350064 {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk13>;
		clock-output-names = "tac";
		reg = <0x02350064 0xb00>, <0x02350044 0x400>;
		reg-names = "control", "domain";
		domain-id = <17>;
	};

	clkrac: clkrac@2350068 {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk13>;
		clock-output-names = "rac";
		reg = <0x02350068 0xb00>, <0x02350044 0x400>;
		reg-names = "control", "domain";
		domain-id = <17>;
	};

	clkdfepd0: clkdfepd0@235006c {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk13>;
		clock-output-names = "dfe-pd0";
		reg = <0x0235006c 0xb00>, <0x02350044 0x400>;
		reg-names = "control", "domain";
		domain-id = <18>;
	};

	clkfftc0: clkfftc0@2350070 {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk13>;
		clock-output-names = "fftc-0";
		reg = <0x02350070 0xb00>, <0x0235004c 0x400>;
		reg-names = "control", "domain";
		domain-id = <19>;
	};

	clkosr: clkosr@2350088 {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk13>;
		clock-output-names = "osr";
		reg = <0x02350088 0xb00>, <0x0235004c 0x400>;
		reg-names = "control", "domain";
		domain-id = <21>;
	};

	clktcp3d0: clktcp3d0@235008c {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk13>;
		clock-output-names = "tcp3d-0";
		reg = <0x0235008c 0xb00>, <0x02350058 0x400>;
		reg-names = "control", "domain";
		domain-id = <22>;
	};

	clktcp3d1: clktcp3d1@2350094 {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk13>;
		clock-output-names = "tcp3d-1";
		reg = <0x02350094 0xb00>, <0x02350058 0x400>;
		reg-names = "control", "domain";
		domain-id = <23>;
	};

	clkvcp0: clkvcp0@235009c {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk13>;
		clock-output-names = "vcp-0";
		reg = <0x0235009c 0xb00>, <0x02350060 0x400>;
		reg-names = "control", "domain";
		domain-id = <24>;
	};

	clkvcp1: clkvcp1@23500a0 {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk13>;
		clock-output-names = "vcp-1";
		reg = <0x023500a0 0xb00>, <0x02350060 0x400>;
		reg-names = "control", "domain";
		domain-id = <24>;
	};

	clkvcp2: clkvcp2@23500a4 {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk13>;
		clock-output-names = "vcp-2";
		reg = <0x023500a4 0xb00>, <0x02350060 0x400>;
		reg-names = "control", "domain";
		domain-id = <24>;
	};

	clkvcp3: clkvcp3@23500a8 {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk13>;
		clock-output-names = "vcp-3";
		reg = <0x023500a8 0xb00>, <0x02350060 0x400>;
		reg-names = "control", "domain";
		domain-id = <24>;
	};

	clkbcp: clkbcp@23500bc {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk13>;
		clock-output-names = "bcp";
		reg = <0x023500bc 0xb00>, <0x02350068 0x400>;
		reg-names = "control", "domain";
		domain-id = <26>;
	};

	clkdfepd1: clkdfepd1@23500c0 {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk13>;
		clock-output-names = "dfe-pd1";
		reg = <0x023500c0 0xb00>, <0x02350044 0x400>;
		reg-names = "control", "domain";
		domain-id = <27>;
	};

	clkfftc1: clkfftc1@23500c4 {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk13>;
		clock-output-names = "fftc-1";
		reg = <0x023500c4 0xb00>, <0x023504c0 0x400>;
		reg-names = "control", "domain";
		domain-id = <28>;
	};

	clkiqnail: clkiqnail@23500c8 {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&chipclk13>;
		clock-output-names = "iqn-ail";
		reg = <0x023500c8 0xb00>, <0x0235004c 0x400>;
		reg-names = "control", "domain";
		domain-id = <29>;
	};

	clkuart2: clkuart2@2350000 {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&clkmodrst0>;
		clock-output-names = "uart2";
		reg = <0x02350000 0xb00>, <0x02350000 0x400>;
		reg-names = "control", "domain";
		domain-id = <0>;
	};

	clkuart3: clkuart3@2350000 {
		#clock-cells = <0>;
		compatible = "ti,keystone,psc-clock";
		clocks = <&clkmodrst0>;
		clock-output-names = "uart3";
		reg = <0x02350000 0xb00>, <0x02350000 0x400>;
		reg-names = "control", "domain";
		domain-id = <0>;
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Keystone 2 Lamarr EVM device tree
 *
 * Copyright (C) 2014-2017 Texas Instruments Incorporated - http://www.ti.com/
 */
/dts-v1/;

#include "keystone.dtsi"
#include "keystone-k2l.dtsi"

/ {
	compatible = "ti,k2l-evm", "ti,k2l", "ti,keystone";
	model = "Texas Instruments Keystone 2 Lamarr EVM";

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		dsp_common_memory: dsp-common-memory@81f800000 {
			compatible = "shared-dma-pool";
			reg = <0x00000008 0x1f800000 0x00000000 0x800000>;
			reusable;
			status = "okay";
		};
	};
};

&soc0 {
		clocks {
			refclksys: refclksys {
				#clock-cells = <0>;
				compatible = "fixed-clock";
				clock-frequency = <122880000>;
				clock-output-names = "refclk-sys";
			};
		};
};

&usb_phy {
	status = "okay";
};

&keystone_usb0 {
	status = "okay";
};

&usb0 {
	dr_mode = "host";
};

&i2c0 {
	dtt@50 {
		compatible = "atmel,24c1024";
		reg = <0x50>;
	};
};

&aemif {
	cs0 {
		#address-cells = <2>;
		#size-cells = <1>;
		clock-ranges;
		ranges;

		ti,cs-chipselect = <0>;
		/* all timings in nanoseconds */
		ti,cs-min-turnaround-ns = <12>;
		ti,cs-read-hold-ns = <6>;
		ti,cs-read-strobe-ns = <23>;
		ti,cs-read-setup-ns = <9>;
		ti,cs-write-hold-ns = <8>;
		ti,cs-write-strobe-ns = <23>;
		ti,cs-write-setup-ns = <8>;

		nand@0,0 {
			compatible = "ti,keystone-nand","ti,davinci-nand";
			#address-cells = <1>;
			#size-cells = <1>;
			reg = <0 0 0x4000000
			       1 0 0x0000100>;

			ti,davinci-chipselect = <0>;
			ti,davinci-mask-ale = <0x2000>;
			ti,davinci-mask-cle = <0x4000>;
			ti,davinci-mask-chipsel = <0>;
			nand-ecc-mode = "hw";
			ti,davinci-ecc-bits = <4>;
			nand-on-flash-bbt;

			partition@0 {
				label = "u-boot";
				reg = <0x0 0x100000>;
				read-only;
			};

			partition@100000 {
				label = "params";
				reg = <0x100000 0x80000>;
				read-only;
			};

			partition@180000 {
				label = "ubifs";
				reg = <0x180000 0x7FE80000>;
			};
		};
	};
};

&spi0 {
	nor_flash: flash@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "micron,n25q128a11", "jedec,spi-nor";
		spi-max-frequency = <54000000>;
		m25p,fast-read;
		reg = <0>;

		partition@0 {
			label = "u-boot-spl";
			reg = <0x0 0x80000>;
			read-only;
		};

		partition@1 {
			label = "misc";
			reg = <0x80000 0xf80000>;
		};
	};
};

&mdio {
	status = "ok";
	ethphy0: ethernet-phy@0 {
		compatible = "marvell,88E1514", "marvell,88E1510", "ethernet-phy-ieee802.3-c22";
		reg = <0>;
	};

	ethphy1: ethernet-phy@1 {
		compatible = "marvell,88E1514", "marvell,88E1510", "ethernet-phy-ieee802.3-c22";
		reg = <1>;
	};
};

&dsp0 {
	memory-region = <&dsp_common_memory>;
	status = "okay";
};

&dsp1 {
	memory-region = <&dsp_common_memory>;
	status = "okay";
};

&dsp2 {
	memory-region = <&dsp_common_memory>;
	status = "okay";
};

&dsp3 {
	memory-region = <&dsp_common_memory>;
	status = "okay";
};

repo_name: angery/linux


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Keystone 2 Lamarr SoC specific device tree
 *
 * Copyright (C) 2014-2017 Texas Instruments Incorporated - http://www.ti.com/
 */

#include <dt-bindings/reset/ti-syscon.h>

/ {
	compatible = "ti,k2l", "ti,keystone";
	model = "Texas Instruments Keystone 2 Lamarr SoC";

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		interrupt-parent = <&gic>;

		cpu@0 {
			compatible = "arm,cortex-a15";
			device_type = "cpu";
			reg = <0>;
		};

		cpu@1 {
			compatible = "arm,cortex-a15";
			device_type = "cpu";
			reg = <1>;
		};
	};

	aliases {
		rproc0 = &dsp0;
		rproc1 = &dsp1;
		rproc2 = &dsp2;
		rproc3 = &dsp3;
	};
};

&soc0 {
		/include/ "keystone-k2l-clocks.dtsi"

		uart2: serial@2348400 {
			compatible = "ti,da830-uart", "ns16550a";
			current-speed = <115200>;
			reg-shift = <2>;
			reg-io-width = <4>;
			reg = <0x02348400 0x100>;
			clocks = <&clkuart2>;
			interrupts = <GIC_SPI 432 IRQ_TYPE_EDGE_RISING>;
		};

		uart3:	serial@2348800 {
			compatible = "ti,da830-uart", "ns16550a";
			current-speed = <115200>;
			reg-shift = <2>;
			reg-io-width = <4>;
			reg = <0x02348800 0x100>;
			clocks = <&clkuart3>;
			interrupts = <GIC_SPI 435 IRQ_TYPE_EDGE_RISING>;
		};

		gpio1: gpio@2348000 {
			compatible = "ti,keystone-gpio";
			reg = <0x02348000 0x100>;
			gpio-controller;
			#gpio-cells = <2>;
			/* HW Interrupts mapped to GPIO pins */
			interrupts = <GIC_SPI 152 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 153 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 154 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 155 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 156 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 157 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 158 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 159 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 160 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 161 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 163 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 164 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 165 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 166 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 167 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 168 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 169 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 170 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 171 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 172 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 173 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 174 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 175 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 176 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 401 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 402 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 403 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 404 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 405 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 406 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 407 IRQ_TYPE_EDGE_RISING>;
			clocks = <&clkgpio>;
			clock-names = "gpio";
			ti,ngpio = <32>;
			ti,davinci-gpio-unbanked = <32>;
		};

		k2l_pmx: pinmux@2620690 {
			compatible = "pinctrl-single";
			reg = <0x02620690 0xc>;
			#address-cells = <1>;
			#size-cells = <0>;
			#pinctrl-cells = <2>;
			pinctrl-single,bit-per-mux;
			pinctrl-single,register-width = <32>;
			pinctrl-single,function-mask = <0x1>;
			status = "disabled";

			uart3_emifa_pins: pinmux_uart3_emifa_pins {
				pinctrl-single,bits = <
					/* UART3_EMIFA_SEL */
					0x0 0x0  0xc0
				>;
			};

			uart2_emifa_pins: pinmux_uart2_emifa_pins {
			pinctrl-single,bits = <
					/* UART2_EMIFA_SEL */
					0x0 0x0  0x30
				>;
			};

			uart01_spi2_pins: pinmux_uart01_spi2_pins {
				pinctrl-single,bits = <
					/* UART01_SPI2_SEL */
					0x0 0x0 0x4
				>;
			};

			dfesync_rp1_pins: pinmux_dfesync_rp1_pins{
				pinctrl-single,bits = <
					/* DFESYNC_RP1_SEL */
					0x0 0x0 0x2
				>;
			};

			avsif_pins: pinmux_avsif_pins {
				pinctrl-single,bits = <
					/* AVSIF_SEL */
					0x0 0x0 0x1
				>;
			};

			gpio_emu_pins: pinmux_gpio_emu_pins {
				pinctrl-single,bits = <
				/*
				 * GPIO_EMU_SEL[31]: 0-GPIO31, 1-EMU33
				 * GPIO_EMU_SEL[30]: 0-GPIO30, 1-EMU32
				 * GPIO_EMU_SEL[29]: 0-GPIO29, 1-EMU31
				 * GPIO_EMU_SEL[28]: 0-GPIO28, 1-EMU30
				 * GPIO_EMU_SEL[27]: 0-GPIO27, 1-EMU29
				 * GPIO_EMU_SEL[26]: 0-GPIO26, 1-EMU28
				 * GPIO_EMU_SEL[25]: 0-GPIO25, 1-EMU27
				 * GPIO_EMU_SEL[24]: 0-GPIO24, 1-EMU26
				 * GPIO_EMU_SEL[23]: 0-GPIO23, 1-EMU25
				 * GPIO_EMU_SEL[22]: 0-GPIO22, 1-EMU24
				 * GPIO_EMU_SEL[21]: 0-GPIO21, 1-EMU23
				 * GPIO_EMU_SEL[20]: 0-GPIO20, 1-EMU22
				 * GPIO_EMU_SEL[19]: 0-GPIO19, 1-EMU21
				 * GPIO_EMU_SEL[18]: 0-GPIO18, 1-EMU20
				 * GPIO_EMU_SEL[17]: 0-GPIO17, 1-EMU19
				 */
					0x4 0x0000 0xFFFE0000
				>;
			};

			gpio_timio_pins: pinmux_gpio_timio_pins {
				pinctrl-single,bits = <
				/*
				 * GPIO_TIMIO_SEL[15]: 0-GPIO15, 1-TIMO7
				 * GPIO_TIMIO_SEL[14]: 0-GPIO14, 1-TIMO6
				 * GPIO_TIMIO_SEL[13]: 0-GPIO13, 1-TIMO5
				 * GPIO_TIMIO_SEL[12]: 0-GPIO12, 1-TIMO4
				 * GPIO_TIMIO_SEL[11]: 0-GPIO11, 1-TIMO3
				 * GPIO_TIMIO_SEL[10]: 0-GPIO10, 1-TIMO2
				 * GPIO_TIMIO_SEL[9]: 0-GPIO9, 1-TIMI7
				 * GPIO_TIMIO_SEL[8]: 0-GPIO8, 1-TIMI6
				 * GPIO_TIMIO_SEL[7]: 0-GPIO7, 1-TIMI5
				 * GPIO_TIMIO_SEL[6]: 0-GPIO6, 1-TIMI4
				 * GPIO_TIMIO_SEL[5]: 0-GPIO5, 1-TIMI3
				 * GPIO_TIMIO_SEL[4]: 0-GPIO4, 1-TIMI2
				 */
					0x4 0x0 0xFFF0
				>;
			};

			gpio_spi2cs_pins: pinmux_gpio_spi2cs_pins {
				pinctrl-single,bits = <
				/*
				 * GPIO_SPI2CS_SEL[3]: 0-GPIO3, 1-SPI2CS4
				 * GPIO_SPI2CS_SEL[2]: 0-GPIO2, 1-SPI2CS3
				 * GPIO_SPI2CS_SEL[1]: 0-GPIO1, 1-SPI2CS2
				 * GPIO_SPI2CS_SEL[0]: 0-GPIO0, 1-SPI2CS1
				 */
					0x4 0x0 0xF
				>;
			};

			gpio_dfeio_pins: pinmux_gpio_dfeio_pins {
				pinctrl-single,bits = <
				/*
				 * GPIO_DFEIO_SEL[31]: 0-DFEIO17, 1-GPIO63
				 * GPIO_DFEIO_SEL[30]: 0-DFEIO16, 1-GPIO62
				 * GPIO_DFEIO_SEL[29]: 0-DFEIO15, 1-GPIO61
				 * GPIO_DFEIO_SEL[28]: 0-DFEIO14, 1-GPIO60
				 * GPIO_DFEIO_SEL[27]: 0-DFEIO13, 1-GPIO59
				 * GPIO_DFEIO_SEL[26]: 0-DFEIO12, 1-GPIO58
				 * GPIO_DFEIO_SEL[25]: 0-DFEIO11, 1-GPIO57
				 * GPIO_DFEIO_SEL[24]: 0-DFEIO10, 1-GPIO56
				 * GPIO_DFEIO_SEL[23]: 0-DFEIO9, 1-GPIO55
				 * GPIO_DFEIO_SEL[22]: 0-DFEIO8, 1-GPIO54
				 * GPIO_DFEIO_SEL[21]: 0-DFEIO7, 1-GPIO53
				 * GPIO_DFEIO_SEL[20]: 0-DFEIO6, 1-GPIO52
				 * GPIO_DFEIO_SEL[19]: 0-DFEIO5, 1-GPIO51
				 * GPIO_DFEIO_SEL[18]: 0-DFEIO4, 1-GPIO50
				 * GPIO_DFEIO_SEL[17]: 0-DFEIO3, 1-GPIO49
				 * GPIO_DFEIO_SEL[16]: 0-DFEIO2, 1-GPIO48
				 */
					0x8 0x0 0xFFFF0000
				>;
			};

			gpio_emifa_pins: pinmux_gpio_emifa_pins {
				pinctrl-single,bits = <
				/*
				 * GPIO_EMIFA_SEL[15]: 0-EMIFA17, 1-GPIO47
				 * GPIO_EMIFA_SEL[14]: 0-EMIFA16, 1-GPIO46
				 * GPIO_EMIFA_SEL[13]: 0-EMIFA15, 1-GPIO45
				 * GPIO_EMIFA_SEL[12]: 0-EMIFA14, 1-GPIO44
				 * GPIO_EMIFA_SEL[11]: 0-EMIFA13, 1-GPIO43
				 * GPIO_EMIFA_SEL[10]: 0-EMIFA10, 1-GPIO42
				 * GPIO_EMIFA_SEL[9]: 0-EMIFA9, 1-GPIO41
				 * GPIO_EMIFA_SEL[8]: 0-EMIFA8, 1-GPIO40
				 * GPIO_EMIFA_SEL[7]: 0-EMIFA7, 1-GPIO39
				 * GPIO_EMIFA_SEL[6]: 0-EMIFA6, 1-GPIO38
				 * GPIO_EMIFA_SEL[5]: 0-EMIFA5, 1-GPIO37
				 * GPIO_EMIFA_SEL[4]: 0-EMIFA4, 1-GPIO36
				 * GPIO_EMIFA_SEL[3]: 0-EMIFA3, 1-GPIO35
				 * GPIO_EMIFA_SEL[2]: 0-EMIFA2, 1-GPIO34
				 * GPIO_EMIFA_SEL[1]: 0-EMIFA1, 1-GPIO33
				 * GPIO_EMIFA_SEL[0]: 0-EMIFA0, 1-GPIO32
				 */
					0x8 0x0 0xFFFF
				>;
			};
		};

		msm_ram: sram@c000000 {
			compatible = "mmio-sram";
			reg = <0x0c000000 0x200000>;
			ranges = <0x0 0x0c000000 0x200000>;
			#address-cells = <1>;
			#size-cells = <1>;

			bm-sram@1f8000 {
				reg = <0x001f8000 0x8000>;
			};
		};

		psc: power-sleep-controller@2350000 {
			pscrst: reset-controller {
				compatible = "ti,k2l-pscrst", "ti,syscon-reset";
				#reset-cells = <1>;

				ti,reset-bits = <
					0xa3c 8 0xa3c 8 0x83c 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 0: dsp0 */
					0xa40 8 0xa40 8 0x840 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 1: dsp1 */
					0xa44 8 0xa44 8 0x844 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 2: dsp2 */
					0xa48 8 0xa48 8 0x848 8 (ASSERT_CLEAR | DEASSERT_SET | STATUS_CLEAR) /* 3: dsp3 */
				>;
			};
		};

		osr: sram@70000000 {
			compatible = "mmio-sram";
			reg = <0x70000000 0x10000>;
			#address-cells = <1>;
			#size-cells = <1>;
			clocks = <&clkosr>;
		};

		devctrl: device-state-control@2620000 {
			dspgpio0: keystone_dsp_gpio@240 {
				compatible = "ti,keystone-dsp-gpio";
				reg = <0x240 0x4>;
				gpio-controller;
				#gpio-cells = <2>;
				gpio,syscon-dev = <&devctrl 0x240>;
			};

			dspgpio1: keystone_dsp_gpio@244 {
				compatible = "ti,keystone-dsp-gpio";
				reg = <0x244 0x4>;
				gpio-controller;
				#gpio-cells = <2>;
				gpio,syscon-dev = <&devctrl 0x244>;
			};

			dspgpio2: keystone_dsp_gpio@248 {
				compatible = "ti,keystone-dsp-gpio";
				reg = <0x248 0x4>;
				gpio-controller;
				#gpio-cells = <2>;
				gpio,syscon-dev = <&devctrl 0x248>;
			};

			dspgpio3: keystone_dsp_gpio@24c {
				compatible = "ti,keystone-dsp-gpio";
				reg = <0x24c 0x4>;
				gpio-controller;
				#gpio-cells = <2>;
				gpio,syscon-dev = <&devctrl 0x24c>;
			};
		};

		dsp0: dsp@10800000 {
			compatible = "ti,k2l-dsp";
			reg = <0x10800000 0x00100000>,
			      <0x10e00000 0x00008000>,
			      <0x10f00000 0x00008000>;
			reg-names = "l2sram", "l1pram", "l1dram";
			clocks = <&clkgem0>;
			ti,syscon-dev = <&devctrl 0x844>;
			resets = <&pscrst 0>;
			interrupt-parent = <&kirq0>;
			interrupts = <0 8>;
			interrupt-names = "vring", "exception";
			kick-gpios = <&dspgpio0 27 0>;
			status = "disabled";
		};

		dsp1: dsp@11800000 {
			compatible = "ti,k2l-dsp";
			reg = <0x11800000 0x00100000>,
			      <0x11e00000 0x00008000>,
			      <0x11f00000 0x00008000>;
			reg-names = "l2sram", "l1pram", "l1dram";
			clocks = <&clkgem1>;
			ti,syscon-dev = <&devctrl 0x848>;
			resets = <&pscrst 1>;
			interrupt-parent = <&kirq0>;
			interrupts = <1 9>;
			interrupt-names = "vring", "exception";
			kick-gpios = <&dspgpio1 27 0>;
			status = "disabled";
		};

		dsp2: dsp@12800000 {
			compatible = "ti,k2l-dsp";
			reg = <0x12800000 0x00100000>,
			      <0x12e00000 0x00008000>,
			      <0x12f00000 0x00008000>;
			reg-names = "l2sram", "l1pram", "l1dram";
			clocks = <&clkgem2>;
			ti,syscon-dev = <&devctrl 0x84c>;
			resets = <&pscrst 2>;
			interrupt-parent = <&kirq0>;
			interrupts = <2 10>;
			interrupt-names = "vring", "exception";
			kick-gpios = <&dspgpio2 27 0>;
			status = "disabled";
		};

		dsp3: dsp@13800000 {
			compatible = "ti,k2l-dsp";
			reg = <0x13800000 0x00100000>,
			      <0x13e00000 0x00008000>,
			      <0x13f00000 0x00008000>;
			reg-names = "l2sram", "l1pram", "l1dram";
			clocks = <&clkgem3>;
			ti,syscon-dev = <&devctrl 0x850>;
			resets = <&pscrst 3>;
			interrupt-parent = <&kirq0>;
			interrupts = <3 11>;
			interrupt-names = "vring", "exception";
			kick-gpios = <&dspgpio3 27 0>;
			status = "disabled";
		};

		mdio: mdio@26200f00 {
			compatible = "ti,keystone_mdio", "ti,davinci_mdio";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x26200f00 0x100>;
			status = "disabled";
			clocks = <&clkcpgmac>;
			clock-names = "fck";
			bus_freq = <2500000>;
		};
		/include/ "keystone-k2l-netcp.dtsi"
};

&spi0 {
       ti,davinci-spi-num-cs = <5>;
};

&spi1 {
       ti,davinci-spi-num-cs = <3>;
};

&spi2 {
       ti,davinci-spi-num-cs = <5>;
       /* Pin muxed. Enabled and configured by Bootloader */
       status = "disabled";
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2013-2017 Texas Instruments Incorporated - http://www.ti.com/
 */

#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/gpio/gpio.h>

/ {
	compatible = "ti,keystone";
	model = "Texas Instruments Keystone 2 SoC";
	#address-cells = <2>;
	#size-cells = <2>;
	interrupt-parent = <&gic>;

	aliases {
		serial0 = &uart0;
		spi0 = &spi0;
		spi1 = &spi1;
		spi2 = &spi2;
	};

	chosen { };

	memory: memory@80000000 {
		device_type = "memory";
		reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
	};

	gic: interrupt-controller@2561000 {
		compatible = "arm,gic-400", "arm,cortex-a15-gic";
		#interrupt-cells = <3>;
		interrupt-controller;
		reg = <0x0 0x02561000 0x0 0x1000>,
		      <0x0 0x02562000 0x0 0x2000>,
		      <0x0 0x02564000 0x0 0x2000>,
		      <0x0 0x02566000 0x0 0x2000>;
		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) |
				IRQ_TYPE_LEVEL_HIGH)>;
	};

	timer {
		compatible = "arm,armv7-timer";
		interrupts =
			<GIC_PPI 13
				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
			<GIC_PPI 14
				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
			<GIC_PPI 11
				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
			<GIC_PPI 10
				(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
	};

	pmu {
		compatible = "arm,cortex-a15-pmu";
		interrupts = <GIC_SPI 20 IRQ_TYPE_EDGE_RISING>,
			     <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
			     <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>,
			     <GIC_SPI 23 IRQ_TYPE_EDGE_RISING>;
	};

	psci {
		compatible = "arm,psci";
		method = "smc";
		cpu_suspend = <0x84000001>;
		cpu_off = <0x84000002>;
		cpu_on = <0x84000003>;
	};

	soc0: soc@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "ti,keystone","simple-bus";
		interrupt-parent = <&gic>;
		ranges = <0x0 0x0 0x0 0xc0000000>;
		dma-ranges = <0x80000000 0x8 0x00000000 0x80000000>;

		pllctrl: pll-controller@2310000 {
			compatible = "ti,keystone-pllctrl", "syscon";
			reg = <0x02310000 0x200>;
		};

		psc: power-sleep-controller@2350000 {
			compatible = "syscon", "simple-mfd";
			reg = <0x02350000 0x1000>;
		};

		devctrl: device-state-control@2620000 {
			compatible = "ti,keystone-devctrl", "syscon", "simple-mfd";
			reg = <0x02620000 0x1000>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0x0 0x02620000 0x1000>;

			kirq0: keystone_irq@2a0 {
				compatible = "ti,keystone-irq";
				reg = <0x2a0 0x4>;
				interrupts = <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>;
				interrupt-controller;
				#interrupt-cells = <1>;
				ti,syscon-dev = <&devctrl 0x2a0>;
			};

			rstctrl: reset-controller@328 {
				compatible = "ti,keystone-reset";
				reg = <0x328 0x10>;
				ti,syscon-pll = <&pllctrl 0xe4>;
				ti,syscon-dev = <&devctrl 0x328>;
				ti,wdt-list = <0>;
			};
		};

		/include/ "keystone-clocks.dtsi"

		uart0: serial@2530c00 {
			compatible = "ti,da830-uart", "ns16550a";
			current-speed = <115200>;
			reg-shift = <2>;
			reg-io-width = <4>;
			reg = <0x02530c00 0x100>;
			clocks = <&clkuart0>;
			interrupts = <GIC_SPI 277 IRQ_TYPE_EDGE_RISING>;
		};

		uart1:	serial@2531000 {
			compatible = "ti,da830-uart", "ns16550a";
			current-speed = <115200>;
			reg-shift = <2>;
			reg-io-width = <4>;
			reg = <0x02531000 0x100>;
			clocks = <&clkuart1>;
			interrupts = <GIC_SPI 280 IRQ_TYPE_EDGE_RISING>;
		};

		i2c0: i2c@2530000 {
			compatible = "ti,davinci-i2c";
			reg = <0x02530000 0x400>;
			clock-frequency = <100000>;
			clocks = <&clki2c>;
			interrupts = <GIC_SPI 283 IRQ_TYPE_EDGE_RISING>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		i2c1: i2c@2530400 {
			compatible = "ti,davinci-i2c";
			reg = <0x02530400 0x400>;
			clock-frequency = <100000>;
			clocks = <&clki2c>;
			interrupts = <GIC_SPI 286 IRQ_TYPE_EDGE_RISING>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		i2c2: i2c@2530800 {
			compatible = "ti,davinci-i2c";
			reg = <0x02530800 0x400>;
			clock-frequency = <100000>;
			clocks = <&clki2c>;
			interrupts = <GIC_SPI 289 IRQ_TYPE_EDGE_RISING>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		spi0: spi@21000400 {
			compatible = "ti,keystone-spi", "ti,dm6441-spi";
			reg = <0x21000400 0x200>;
			num-cs = <4>;
			ti,davinci-spi-intr-line = <0>;
			interrupts = <GIC_SPI 292 IRQ_TYPE_EDGE_RISING>;
			clocks = <&clkspi>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		spi1: spi@21000600 {
			compatible = "ti,keystone-spi", "ti,dm6441-spi";
			reg = <0x21000600 0x200>;
			num-cs = <4>;
			ti,davinci-spi-intr-line = <0>;
			interrupts = <GIC_SPI 296 IRQ_TYPE_EDGE_RISING>;
			clocks = <&clkspi>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		spi2: spi@21000800 {
			compatible = "ti,keystone-spi", "ti,dm6441-spi";
			reg = <0x21000800 0x200>;
			num-cs = <4>;
			ti,davinci-spi-intr-line = <0>;
			interrupts = <GIC_SPI 300 IRQ_TYPE_EDGE_RISING>;
			clocks = <&clkspi>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		usb_phy: usb_phy@2620738 {
			compatible = "ti,keystone-usbphy";
			#address-cells = <1>;
			#size-cells = <1>;
			reg = <0x2620738 24>;
			status = "disabled";
		};

		keystone_usb0: usb@2680000 {
			compatible = "ti,keystone-dwc3";
			#address-cells = <1>;
			#size-cells = <1>;
			reg = <0x2680000 0x10000>;
			clocks = <&clkusb>;
			clock-names = "usb";
			interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>;
			ranges;
			dma-coherent;
			dma-ranges;
			status = "disabled";

			usb0: usb@2690000 {
				compatible = "snps,dwc3";
				reg = <0x2690000 0x70000>;
				interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>;
				usb-phy = <&usb_phy>, <&usb_phy>;
			};
		};

		wdt: wdt@22f0080 {
			compatible = "ti,keystone-wdt","ti,davinci-wdt";
			reg = <0x022f0080 0x80>;
			clocks = <&clkwdtimer0>;
		};

		clock_event: timer@22f0000 {
			compatible = "ti,keystone-timer";
			reg = <0x022f0000 0x80>;
			interrupts = <GIC_SPI 110 IRQ_TYPE_EDGE_RISING>;
			clocks = <&clktimer15>;
		};

		gpio0: gpio@260bf00 {
			compatible = "ti,keystone-gpio";
			reg = <0x0260bf00 0x100>;
			gpio-controller;
			#gpio-cells = <2>;
			/* HW Interrupts mapped to GPIO pins */
			interrupts = <GIC_SPI 120 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 121 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 122 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 123 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 124 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 125 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 126 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 127 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 128 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 129 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 130 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 131 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 132 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 133 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 134 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 135 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 136 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 137 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 138 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 139 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 140 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 141 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 142 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 143 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 144 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 145 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 146 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 147 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 148 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 150 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
			clocks = <&clkgpio>;
			clock-names = "gpio";
			ti,ngpio = <32>;
			ti,davinci-gpio-unbanked = <32>;
		};

		aemif: aemif@21000A00 {
			compatible = "ti,keystone-aemif", "ti,davinci-aemif";
			#address-cells = <2>;
			#size-cells = <1>;
			clocks = <&clkaemif>;
			clock-names = "aemif";
			clock-ranges;

			reg = <0x21000A00 0x00000100>;
			ranges = <0 0 0x30000000 0x10000000
				  1 0 0x21000A00 0x00000100>;
		};

		pcie0: pcie@21800000 {
			compatible = "ti,keystone-pcie", "snps,dw-pcie";
			clocks = <&clkpcie>;
			clock-names = "pcie";
			#address-cells = <3>;
			#size-cells = <2>;
			reg = <0x21801000 0x2000>, <0x21800000 0x1000>, <0x02620128 4>;
			ranges = <0x82000000 0 0x50000000 0x50000000
				  0 0x10000000>;

			status = "disabled";
			device_type = "pci";
			num-lanes = <2>;
			bus-range = <0x00 0xff>;

			/* error interrupt */
			interrupts = <GIC_SPI 38 IRQ_TYPE_EDGE_RISING>;
			#interrupt-cells = <1>;
			interrupt-map-mask = <0 0 0 7>;
			interrupt-map = <0 0 0 1 &pcie_intc0 0>, /* INT A */
					<0 0 0 2 &pcie_intc0 1>, /* INT B */
					<0 0 0 3 &pcie_intc0 2>, /* INT C */
					<0 0 0 4 &pcie_intc0 3>; /* INT D */

			pcie_msi_intc0: msi-interrupt-controller {
				interrupt-controller;
				#interrupt-cells = <1>;
				interrupt-parent = <&gic>;
				interrupts = <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 31 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 32 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 33 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 34 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 35 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 36 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 37 IRQ_TYPE_EDGE_RISING>;
			};

			pcie_intc0: legacy-interrupt-controller {
				interrupt-controller;
				#interrupt-cells = <1>;
				interrupt-parent = <&gic>;
				interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 27 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 28 IRQ_TYPE_EDGE_RISING>,
					<GIC_SPI 29 IRQ_TYPE_EDGE_RISING>;
			};
		};

		emif: emif@21010000 {
			compatible = "ti,emif-keystone";
			reg = <0x21010000 0x200>;
			interrupts = <GIC_SPI 448 IRQ_TYPE_EDGE_RISING>;
			interrupt-parent = <&gic>;
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
/ {
	mbus@f1000000 {
		pciec: pcie@82000000 {
			compatible = "marvell,kirkwood-pcie";
			status = "disabled";
			device_type = "pci";

			#address-cells = <3>;
			#size-cells = <2>;

			bus-range = <0x00 0xff>;

			ranges =
			       <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000
				0x82000000 0x1 0     MBUS_ID(0x04, 0xe8) 0       1 0 /* Port 0.0 MEM */
				0x81000000 0x1 0     MBUS_ID(0x04, 0xe0) 0       1 0 /* Port 0.0 IO  */>;

			pcie0: pcie@1,0 {
				device_type = "pci";
				assigned-addresses = <0x82000800 0 0x00040000 0 0x2000>;
				reg = <0x0800 0 0 0 0>;
				#address-cells = <3>;
				#size-cells = <2>;
				#interrupt-cells = <1>;
				ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
					  0x81000000 0 0 0x81000000 0x1 0 1 0>;
				bus-range = <0x00 0xff>;
				interrupt-names = "intx", "error";
				interrupts = <9>, <44>;
				interrupt-map-mask = <0 0 0 7>;
				interrupt-map = <0 0 0 1 &pcie_intc 0>,
						<0 0 0 2 &pcie_intc 1>,
						<0 0 0 3 &pcie_intc 2>,
						<0 0 0 4 &pcie_intc 3>;
				marvell,pcie-port = <0>;
				marvell,pcie-lane = <0>;
				clocks = <&gate_clk 2>;
				status = "disabled";

				pcie_intc: interrupt-controller {
					interrupt-controller;
					#interrupt-cells = <1>;
				};
			};
		};
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			compatible = "marvell,88f6192-pinctrl";

			pmx_sata0: pmx-sata0 {
				marvell,pins = "mpp5", "mpp21", "mpp23";
				marvell,function = "sata0";
			};
			pmx_sata1: pmx-sata1 {
				marvell,pins = "mpp4", "mpp20", "mpp22";
				marvell,function = "sata1";
			};
			pmx_sdio: pmx-sdio {
				marvell,pins = "mpp12", "mpp13", "mpp14",
					       "mpp15", "mpp16", "mpp17";
				marvell,function = "sdio";
			};
		};

		rtc: rtc@10300 {
			compatible = "marvell,kirkwood-rtc", "marvell,orion-rtc";
			reg = <0x10300 0x20>;
			interrupts = <53>;
			clocks = <&gate_clk 7>;
		};

		sata: sata@80000 {
			compatible = "marvell,orion-sata";
			reg = <0x80000 0x5000>;
			interrupts = <21>;
			clocks = <&gate_clk 14>, <&gate_clk 15>;
			clock-names = "0", "1";
			phys = <&sata_phy0>, <&sata_phy1>;
			phy-names = "port0", "port1";
			status = "disabled";
		};

		sdio: mvsdio@90000 {
			compatible = "marvell,orion-sdio";
			reg = <0x90000 0x200>;
			interrupts = <28>;
			clocks = <&gate_clk 4>;
			bus-width = <4>;
			cap-sdio-irq;
			cap-sd-highspeed;
			cap-mmc-highspeed;
			status = "disabled";
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
/ {
	mbus@f1000000 {
		pciec: pcie@82000000 {
			compatible = "marvell,kirkwood-pcie";
			status = "disabled";
			device_type = "pci";

			#address-cells = <3>;
			#size-cells = <2>;

			bus-range = <0x00 0xff>;

			ranges =
			       <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000
				0x82000000 0x1 0     MBUS_ID(0x04, 0xe8) 0       1 0 /* Port 0.0 MEM */
				0x81000000 0x1 0     MBUS_ID(0x04, 0xe0) 0       1 0 /* Port 0.0 IO  */>;

			pcie0: pcie@1,0 {
				device_type = "pci";
				assigned-addresses = <0x82000800 0 0x00040000 0 0x2000>;
				reg = <0x0800 0 0 0 0>;
				#address-cells = <3>;
				#size-cells = <2>;
				#interrupt-cells = <1>;
				ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
					  0x81000000 0 0 0x81000000 0x1 0 1 0>;
				bus-range = <0x00 0xff>;
				interrupt-names = "intx", "error";
				interrupts = <9>, <44>;
				interrupt-map-mask = <0 0 0 7>;
				interrupt-map = <0 0 0 1 &pcie_intc 0>,
						<0 0 0 2 &pcie_intc 1>,
						<0 0 0 3 &pcie_intc 2>,
						<0 0 0 4 &pcie_intc 3>;
				marvell,pcie-port = <0>;
				marvell,pcie-lane = <0>;
				clocks = <&gate_clk 2>;
				status = "disabled";

				pcie_intc: interrupt-controller {
					interrupt-controller;
					#interrupt-cells = <1>;
				};
			};
		};
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			compatible = "marvell,88f6281-pinctrl";

			pmx_sata0: pmx-sata0 {
				marvell,pins = "mpp5", "mpp21", "mpp23";
				marvell,function = "sata0";
			};
			pmx_sata1: pmx-sata1 {
				marvell,pins = "mpp4", "mpp20", "mpp22";
				marvell,function = "sata1";
			};
			pmx_sdio: pmx-sdio {
				marvell,pins = "mpp12", "mpp13", "mpp14",
					       "mpp15", "mpp16", "mpp17";
				marvell,function = "sdio";
			};
		};

		rtc: rtc@10300 {
			compatible = "marvell,kirkwood-rtc", "marvell,orion-rtc";
			reg = <0x10300 0x20>;
			interrupts = <53>;
			clocks = <&gate_clk 7>;
		};

		sata: sata@80000 {
			compatible = "marvell,orion-sata";
			reg = <0x80000 0x5000>;
			interrupts = <21>;
			clocks = <&gate_clk 14>, <&gate_clk 15>;
			clock-names = "0", "1";
			phys = <&sata_phy0>, <&sata_phy1>;
			phy-names = "port0", "port1";
			status = "disabled";
		};

		sdio: mvsdio@90000 {
			compatible = "marvell,orion-sdio";
			reg = <0x90000 0x200>;
			interrupts = <28>;
			clocks = <&gate_clk 4>;
			pinctrl-0 = <&pmx_sdio>;
			pinctrl-names = "default";
			bus-width = <4>;
			cap-sdio-irq;
			cap-sd-highspeed;
			cap-mmc-highspeed;
			status = "disabled";
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
/ {
	mbus@f1000000 {
		pciec: pcie@82000000 {
			compatible = "marvell,kirkwood-pcie";
			status = "disabled";
			device_type = "pci";

			#address-cells = <3>;
			#size-cells = <2>;

			bus-range = <0x00 0xff>;

			ranges =
			       <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000
				0x82000000 0x1 0     MBUS_ID(0x04, 0xe8) 0       1 0 /* Port 0.0 MEM */
				0x81000000 0x1 0     MBUS_ID(0x04, 0xe0) 0       1 0 /* Port 0.0 IO  */>;

			pcie0: pcie@1,0 {
				device_type = "pci";
				assigned-addresses = <0x82000800 0 0x00040000 0 0x2000>;
				reg = <0x0800 0 0 0 0>;
				#address-cells = <3>;
				#size-cells = <2>;
				#interrupt-cells = <1>;
				ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
					  0x81000000 0 0 0x81000000 0x1 0 1 0>;
				bus-range = <0x00 0xff>;
				interrupt-names = "intx", "error";
				interrupts = <9>, <44>;
				interrupt-map-mask = <0 0 0 7>;
				interrupt-map = <0 0 0 1 &pcie_intc 0>,
						<0 0 0 2 &pcie_intc 1>,
						<0 0 0 3 &pcie_intc 2>,
						<0 0 0 4 &pcie_intc 3>;
				marvell,pcie-port = <0>;
				marvell,pcie-lane = <0>;
				clocks = <&gate_clk 2>;
				status = "disabled";

				pcie_intc: interrupt-controller {
					interrupt-controller;
					#interrupt-cells = <1>;
				};
			};
		};
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			compatible = "marvell,98dx4122-pinctrl";

		};
	};
};

&sata_phy0 {
	status = "disabled";
};

&sata_phy1 {
	status = "disabled";
};


code:
// SPDX-License-Identifier: GPL-2.0+
/*
 * Device Tree file for Excito Bubba B3
 *
 * Copyright (C) 2013, Andrew Lunn <andrew@lunn.ch>
 *
 *
 * Note: This requires a new'ish version of u-boot, which disables the
 * L2 cache. If your B3 silently fails to boot, u-boot is probably too
 * old. Either upgrade, or consider the following email:
 *
 * https://lists.debian.org/debian-arm/2012/08/msg00128.html
 */

/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "Excito B3";
	compatible = "excito,b3", "marvell,kirkwood-88f6281", "marvell,kirkwood";
	memory { /* 512 MB */
		device_type = "memory";
		reg = <0x00000000 0x20000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8 earlyprintk";
		stdout-path = &uart0;
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			pmx_button_power: pmx-button-power {
				marvell,pins = "mpp39";
				marvell,function = "gpio";
			};
			pmx_led_green: pmx-led-green {
				marvell,pins = "mpp38";
				marvell,function = "gpio";
			};
			pmx_led_red: pmx-led-red {
				marvell,pins = "mpp41";
				marvell,function = "gpio";
			};
			pmx_led_blue: pmx-led-blue {
				marvell,pins = "mpp42";
				marvell,function = "gpio";
			};
			pmx_beeper: pmx-beeper {
				marvell,pins = "mpp40";
				marvell,function = "gpio";
			};
		};

		spi@10600 {
			status = "okay";

			m25p16@0 {
				#address-cells = <1>;
				#size-cells = <1>;
				compatible = "st,m25p16", "jedec,spi-nor";
				reg = <0>;
				spi-max-frequency = <40000000>;
				mode = <0>;

				partition@0 {
					reg = <0x0 0xc0000>;
					label = "u-boot";
				};

				partition@c0000 {
					reg = <0xc0000 0x20000>;
					label = "u-boot env";
				};

				partition@e0000 {
					reg = <0xe0000 0x120000>;
					label = "data";
				};
			};
		};

		i2c@11000 {
			status = "okay";
			/*
			 * There is something on the bus at address 0x64.
			 * Not yet identified what it is, maybe the eeprom
			 * for the Atheros WiFi chip?
			 */
		};

		serial@12000 {
			/* Internal on test pins, 3.3v TTL
		 	 * UART0_RX = Testpoint 65
			 * UART0_TX = Testpoint 66
			 * See the Excito Wiki for more details.
		 	 */
			status = "okay";
		};

		sata@80000 {
			/* One internal, the second as eSATA */
			status = "okay";
			nr-ports = <2>;
		};
	};

	gpio-leds {
		/*
		 * There is one LED "port" on the front and the colours
		 * mix together giving some interesting combinations.
		 */
		compatible = "gpio-leds";
		pinctrl-0 = < &pmx_led_green &pmx_led_red
			      &pmx_led_blue >;
		pinctrl-names = "default";

		programming_led {
			label = "bubba3:green:programming";
			gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		error_led {
			label = "bubba3:red:error";
			gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
		};

		active_led {
			label = "bubba3:blue:active";
			gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
		};
	};

	gpio-keys {
		compatible = "gpio-keys";
		pinctrl-0 = <&pmx_button_power>;
		pinctrl-names = "default";

		power-button {
			/* On the back */
			label = "Power Button";
			linux,code = <KEY_POWER>;
			gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
		};
	};

	beeper: beeper {
		/* 4KHz Piezoelectric buzzer */
		compatible = "gpio-beeper";
		pinctrl-0 = <&pmx_beeper>;
		pinctrl-names = "default";
		gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
	};
};

&mdio {
	status = "okay";

	ethphy0: ethernet-phy@8 {
		device_type = "ethernet-phy";
		reg = <8>;
	};

	ethphy1: ethernet-phy@24 {
		device_type = "ethernet-phy";
		reg = <24>;
	};
};

&eth0 {
	status = "okay";
	ethernet0-port@0 {
		phy-handle = <&ethphy0>;
	};
};

&eth1 {
	status = "okay";
	ethernet1-port@0 {
		phy-handle = <&ethphy1>;
	};
};

/* Wifi model has Atheros chipset on pcie port */
&pciec {
	status = "okay";
};

&pcie0 {
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0+
/*
 * Device Tree file for Seagate Blackarmor NAS220
 *
 * Copyright (C) 2014 Evgeni Dobrev <evgeni@studio-punkt.com>
 */

/dts-v1/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "kirkwood.dtsi"
#include "kirkwood-6192.dtsi"

/ {
	model = "Seagate Blackarmor NAS220";
	compatible = "seagate,blackarmor-nas220","marvell,kirkwood-88f6192",
		     "marvell,kirkwood";

	memory { /* 128 MB */
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8";
		stdout-path = &uart0;
	};

	gpio_poweroff {
		compatible = "gpio-poweroff";
		gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
	};

	gpio_keys {
		compatible = "gpio-keys";

		reset {
			label = "Reset";
			linux,code = <KEY_POWER>;
			gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
		};

		button {
			label = "Power";
			linux,code = <KEY_SLEEP>;
			gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
		};
	};

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

		blue-power {
			label = "nas220:blue:power";
			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "default-on";
		};
	};

	regulators {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-0 = <&pmx_power_sata0 &pmx_power_sata1>;
		pinctrl-names = "default";

		sata0_power: regulator@1 {
			compatible = "regulator-fixed";
			reg = <1>;
			regulator-name = "SATA0 Power";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			enable-active-high;
			regulator-always-on;
			regulator-boot-on;
			gpio = <&gpio0 24 GPIO_ACTIVE_LOW>;
		};

		sata1_power: regulator@2 {
			compatible = "regulator-fixed";
			reg = <2>;
			regulator-name = "SATA1 Power";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			enable-active-high;
			regulator-always-on;
			regulator-boot-on;
			gpio = <&gpio0 28 GPIO_ACTIVE_LOW>;
		};
	};
};

/*
 * Serial port routed to connector CN5
 *
 * pin 1 - TX (CPU's TX)
 * pin 4 - RX (CPU's RX)
 * pin 6 - GND
 */
&uart0 {
	status = "okay";
};

&pinctrl {
	pinctrl-0 = <&pmx_button_reset &pmx_button_power>;
	pinctrl-names = "default";

	pmx_act_sata0: pmx-act-sata0 {
		marvell,pins = "mpp15";
		marvell,function = "sata0";
	};

	pmx_act_sata1: pmx-act-sata1 {
		marvell,pins = "mpp16";
		marvell,function = "sata1";
	};

	pmx_power_sata0: pmx-power-sata0 {
		marvell,pins = "mpp24";
		marvell,function = "gpio";
	};

	pmx_power_sata1: pmx-power-sata1 {
		marvell,pins = "mpp28";
		marvell,function = "gpio";
	};

	pmx_button_reset: pmx-button-reset {
		marvell,pins = "mpp29";
		marvell,function = "gpio";
	};

	pmx_button_power: pmx-button-power {
		marvell,pins = "mpp26";
		marvell,function = "gpio";
	};
};

&sata {
	status = "okay";
	nr-ports = <2>;
};

&i2c0 {
	status = "okay";

	adt7476: thermal@2e {
		compatible = "adi,adt7476";
		reg = <0x2e>;
	};
};

&nand {
	status = "okay";
};

&mdio {
	status = "okay";

	ethphy0: ethernet-phy@8 {
		 reg = <8>;
	};
};

&eth0 {
	status = "okay";

	ethernet0-port@0 {
		phy-handle = <&ethphy0>;
	};
};


code:
// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Ctera C200 V1 Board Description
 * Copyright 2021-2022 Pawel Dembicki <paweldembicki@gmail.com>
 */

/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"
#include <dt-bindings/leds/common.h>

/ {
	model = "Ctera C200 V1";
	compatible = "ctera,c200-v1", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	chosen {
		bootargs = "console=ttyS0,115200";
		stdout-path = &uart0;
	};

	memory@0 {
		device_type = "memory";
		reg = <0x00000000 0x20000000>;
	};

	keys {
		compatible = "gpio-keys";
		pinctrl-0 = <&pmx_buttons>;
		pinctrl-names = "default";

		power {
			label = "Power Button";
			linux,code = <KEY_POWER>;
			gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
		};

		reset {
			label = "Reset Button";
			linux,code = <KEY_RESTART>;
			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
		};

		usb1 {
			label = "USB1 Button";
			linux,code = <BTN_0>;
			gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
		};

		usb2 {
			label = "USB2 Button";
			linux,code = <BTN_1>;
			gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
		};
	};

	gpio-poweroff {
		compatible = "gpio-poweroff";
		pinctrl-0 = <&pmx_poweroff>;
		pinctrl-names = "default";
		gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
	};

	leds {
		compatible = "gpio-leds";
		pinctrl-0 = <&pmx_leds>;
		pinctrl-names = "default";

		led-0 {
			function = LED_FUNCTION_DISK;
			function-enumerator = <2>;
			color = <LED_COLOR_ID_RED>;
			gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
		};

		led-1 {
			function = LED_FUNCTION_DISK;
			function-enumerator = <1>;
			color = <LED_COLOR_ID_GREEN>;
			gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
		};

		led-2 {
			function = LED_FUNCTION_DISK;
			function-enumerator = <2>;
			color = <LED_COLOR_ID_GREEN>;
			gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
		};

		led-3 {
			function = LED_FUNCTION_DISK;
			function-enumerator = <1>;
			color = <LED_COLOR_ID_RED>;
			gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
		};

		led-4 {
			function = LED_FUNCTION_STATUS;
			color = <LED_COLOR_ID_RED>;
			gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
		};

		led-5 {
			function = LED_FUNCTION_STATUS;
			color = <LED_COLOR_ID_GREEN>;
			gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
		};

		led-6 {
			function = LED_FUNCTION_INDICATOR;
			color = <LED_COLOR_ID_BLUE>;
			gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
		};

		led-7 {
			function = LED_FUNCTION_DISK_ERR;
			color = <LED_COLOR_ID_RED>;
			gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
		};

		led-8 {
			function = LED_FUNCTION_DISK_ERR;
			color = <LED_COLOR_ID_GREEN>;
			gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
		};

		led-9 {
			function = LED_FUNCTION_USB;
			function-enumerator = <1>;
			color = <LED_COLOR_ID_RED>;
			gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
		};

		led-10 {
			function = LED_FUNCTION_USB;
			function-enumerator = <1>;
			color = <LED_COLOR_ID_GREEN>;
			gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "usbport";
			trigger-sources = <&hub_port2>;
		};

		led-11 {
			function = LED_FUNCTION_USB;
			function-enumerator = <2>;
			color = <LED_COLOR_ID_RED>;
			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
		};

		led-12 {
			function = LED_FUNCTION_USB;
			function-enumerator = <2>;
			color = <LED_COLOR_ID_GREEN>;
			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "usbport";
			trigger-sources = <&hub_port1>;
		};
	};
};

&eth0 {
	status = "okay";
};

&eth0port {
	phy-handle = <&ethphy9>;
};

&i2c0 {
	status = "okay";

	rtc@30 {
		compatible = "s35390a";
		reg = <0x30>;
	};

	lm63@4c {
		compatible = "national,lm63";
		reg = <0x4c>;
	};
};

&mdio {
	status = "okay";

	ethphy9: ethernet-phy@9 {
		reg = <9>;
	};
};

&nand {
	status = "okay";
	chip-delay = <40>;

	partition@0 {
		label = "uboot";
		reg = <0x0000000 0x200000>;
	};

	partition@200000 {
		label = "certificate";
		reg = <0x0200000 0x100000>;
	};

	partition@300000 {
		label = "preset_cfg";
		reg = <0x0300000 0x100000>;
	};

	partition@400000 {
		label = "dev_params";
		reg = <0x0400000 0x100000>;
	};

	partition@500000 {
		label = "active_bank";
		reg = <0x0500000 0x0100000>;
	};

	partition@600000 {
		label = "magic";
		reg = <0x0600000 0x0100000>;
	};

	partition@700000 {
		label = "bank1";
		reg = <0x0700000 0x2800000>;
	};

	partition@2f00000 {
		label = "bank2";
		reg = <0x2f00000 0x2800000>;
	};

	/* 0x5700000-0x5a00000 undefined in vendor firmware */

	partition@5a00000 {
		label = "reserved";
		reg = <0x5a00000 0x2000000>;
	};

	partition@7a00000 {
		label = "rootfs";
		reg = <0x7a00000 0x8600000>;
	};
};

&pinctrl {
	/* Buzzer gpios are connected to two pins of buzzer.
	 * This buzzer require a modulated signal from gpio.
	 * Leave it as is due lack of proper driver.
	 */
	pmx_buzzer: pmx-buzzer {
		marvell,pins = "mpp12", "mpp13";
		marvell,function = "gpio";
	};

	pmx_leds: pmx-leds {
		marvell,pins = "mpp14", "mpp15", "mpp16", "mpp17", "mpp38",
			       "mpp39", "mpp40", "mpp42", "mpp43", "mpp44",
			       "mpp45", "mpp46", "mpp47";
		marvell,function = "gpio";
	};

	pmx_buttons: pmx-buttons {
		marvell,pins = "mpp28", "mpp29", "mpp48", "mpp49";
		marvell,function = "gpio";
	};

	pmx_poweroff: pmx-poweroff {
		marvell,pins = "mpp34";
		marvell,function = "gpio";
	};
};

&rtc {
	status = "disabled";
};

&sata {
	status = "okay";
	nr-ports = <2>;
};

&uart0 {
	status = "okay";
};

&usb0 {
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";

	port@1 {
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <1>;
		#trigger-source-cells = <0>;

		hub_port1: port@1 {
			reg = <1>;
			#trigger-source-cells = <0>;
		};

		hub_port2: port@2 {
			reg = <2>;
			#trigger-source-cells = <0>;
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "LaCie CloudBox";
	compatible = "lacie,cloudbox", "marvell,kirkwood-88f6702", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x10000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8";
		stdout-path = &uart0;
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			pmx_cloudbox_sata0: pmx-cloudbox-sata0 {
				marvell,pins = "mpp15";
				marvell,function = "sata0";
			};
		};

		serial@12000 {
			status = "okay";
		};

		sata@80000 {
			pinctrl-0 = <&pmx_cloudbox_sata0>;
			pinctrl-names = "default";
			status = "okay";
			nr-ports = <1>;
		};

		spi@10600 {
			status = "okay";

			flash@0 {
				#address-cells = <1>;
				#size-cells = <1>;
				compatible = "mxicy,mx25l4005a", "jedec,spi-nor";
				reg = <0>;
				spi-max-frequency = <20000000>;
				mode = <0>;

				partition@0 {
					reg = <0x0 0x80000>;
					label = "u-boot";
				};
			};
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;

		power {
			label = "Power push button";
			linux,code = <KEY_POWER>;
			gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
		};
	};

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

		red-fail {
			label = "cloudbox:red:fail";
			gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
		};
		blue-sata {
			label = "cloudbox:blue:sata";
			gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
		};
	};

	gpio_poweroff {
		compatible = "gpio-poweroff";
		gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
	};
};

&mdio {
	status = "okay";

	ethphy0: ethernet-phy@0 {
		reg = <0>;
	};
};

&eth0 {
	status = "okay";
	ethernet0-port@0 {
		phy-handle = <&ethphy0>;
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Device Tree file for d2 Network v2
 *
 * Copyright (C) 2014 Simon Guinot <simon.guinot@sequanux.org>
 *
*/

/dts-v1/;

#include <dt-bindings/leds/leds-ns2.h>
#include "kirkwood-netxbig.dtsi"

/ {
	model = "LaCie d2 Network v2";
	compatible = "lacie,d2net_v2", "lacie,netxbig", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x10000000>;
	};

	ns2-leds {
		compatible = "lacie,ns2-leds";

		blue-sata {
			label = "d2net_v2:blue:sata";
			slow-gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
			cmd-gpio = <&gpio0 30 GPIO_ACTIVE_HIGH>;
			modes-map = <NS_V2_LED_OFF  1 0
				     NS_V2_LED_ON   0 1
				     NS_V2_LED_ON   1 1
				     NS_V2_LED_SATA 0 0>;
		};
	};

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

		red-fail {
			label = "d2net_v2:red:fail";
			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Marvell DB-88F6281-BP Development Board Setup
 *
 * Saeed Bishara <saeed@marvell.com>
 * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 *
 */

/dts-v1/;

#include "kirkwood-db.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "Marvell DB-88F6281-BP Development Board";
	compatible = "marvell,db-88f6281-bp", "marvell,kirkwood-88f6281", "marvell,kirkwood";
};

&pciec {
	status = "okay";
};

&pcie0 {
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Marvell DB-88F6282-BP Development Board Setup
 *
 * Saeed Bishara <saeed@marvell.com>
 * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 *
 */

/dts-v1/;

#include "kirkwood-db.dtsi"
#include "kirkwood-6282.dtsi"

/ {
	model = "Marvell DB-88F6282-BP Development Board";
	compatible = "marvell,db-88f6282-bp", "marvell,kirkwood-88f6282", "marvell,kirkwood";
};

&pciec {
	status = "okay";
};

&pcie0 {
	status = "okay";
};

&pcie1 {
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Marvell DB-{88F6281,88F6282}-BP Development Board Setup
 *
 * Saeed Bishara <saeed@marvell.com>
 * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 *
 * This file contains the definitions that are common between the 6281
 * and 6282 variants of the Marvell Kirkwood Development Board.
 */

#include "kirkwood.dtsi"

/ {
	memory {
		device_type = "memory";
		reg = <0x00000000 0x20000000>; /* 512 MB */
	};

	chosen {
		bootargs = "console=ttyS0,115200n8 earlyprintk";
		stdout-path = &uart0;
	};

	ocp@f1000000 {
		pin-controller@10000 {
			pmx_sdio_gpios: pmx-sdio-gpios {
				marvell,pins = "mpp37", "mpp38";
				marvell,function = "gpio";
			};
		};

		serial@12000 {
			status = "okay";
		};

		sata@80000 {
			nr-ports = <2>;
			status = "okay";
		};

		ehci@50000 {
			status = "okay";
		};

		mvsdio@90000 {
			pinctrl-0 = <&pmx_sdio_gpios>;
			pinctrl-names = "default";
			wp-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
			cd-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
			status = "okay";
		};
	};
};

&nand {
	chip-delay = <25>;
	status = "okay";

	partition@0 {
		label = "uboot";
		reg = <0x0 0x100000>;
	};

	partition@100000 {
		label = "uImage";
		reg = <0x100000 0x400000>;
	};

	partition@500000 {
		label = "root";
		reg = <0x500000 0x1fb00000>;
	};
};

&mdio {
	status = "okay";

	ethphy0: ethernet-phy@8 {
		reg = <8>;
	};
};

&eth0 {
	status = "okay";
	ethernet0-port@0 {
		phy-handle = <&ethphy0>;
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2014 Claudio Leite <leitec@staticky.com>
 *
 */

/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "D-Link DIR-665";
	compatible = "dlink,dir-665", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>; /* 128 MB */
	};

	chosen {
		bootargs = "console=ttyS0,115200n8 earlyprintk";
		stdout-path = &uart0;
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			pinctrl-0 =< &pmx_led_usb
				     &pmx_led_internet_blue
				     &pmx_led_internet_amber
				     &pmx_led_5g &pmx_led_status_blue
				     &pmx_led_wps &pmx_led_status_amber
				     &pmx_led_24g
				     &pmx_btn_restart &pmx_btn_wps>;
			pinctrl-names = "default";

			pmx_led_usb: pmx-led-usb {
				marvell,pins = "mpp12";
				marvell,function = "gpio";
			};
			pmx_led_internet_blue: pmx-led-internet-blue {
				marvell,pins = "mpp42";
				marvell,function = "gpio";
			};
			pmx_led_internet_amber: pmx-led-internet-amber {
				marvell,pins = "mpp43";
				marvell,function = "gpio";
			};
			pmx_led_5g: pmx-led-5g {
				marvell,pins = "mpp44";
				marvell,function = "gpio";
			};
			pmx_led_status_blue: pmx-led-status-blue {
				marvell,pins = "mpp45";
				marvell,function = "gpio";
			};
			pmx_led_wps: pmx-led-wps {
				marvell,pins = "mpp47";
				marvell,function = "gpio";
			};
			pmx_led_status_amber: pmx-led-status-amber {
				marvell,pins = "mpp48";
				marvell,function = "gpio";
			};
			pmx_led_24g: pmx-led-24g {
				marvell,pins = "mpp49";
				marvell,function = "gpio";
			};
			pmx_btn_restart: pmx-btn-restart {
				marvell,pins = "mpp28";
				marvell,function = "gpio";
			};
			pmx_btn_wps: pmx-btn-wps {
				marvell,pins = "mpp46";
				marvell,function = "gpio";
			};
		};

		spi@10600 {
			status = "okay";
			flash@0 {
				#address-cells = <1>;
				#size-cells = <1>;
				compatible = "mxicy,mx25l12805d", "jedec,spi-nor";
				spi-max-frequency = <50000000>;
				reg = <0>;

				partition@0 {
					label = "uboot";
					reg = <0x0 0x30000>;
					read-only;
				};

				partition@30000 {
					label = "nvram";
					reg = <0x30000 0x10000>;
					read-only;
				};

				partition@40000 {
					label = "kernel";
					reg = <0x40000 0x180000>;
				};

				partition@1c0000 {
					label = "rootfs";
					reg = <0x1c0000 0xe00000>;
				};

				cal_data: partition@fc0000 {
					label = "cal_data";
					reg = <0xfc0000 0x10000>;
					read-only;
				};

				partition@fd0000 {
					label = "lang_pack";
					reg = <0xfd0000 0x30000>;
					read-only;
				};
			};
		};

		serial@12000 {
			status = "okay";
		};

		i2c@11000 {
			status = "okay";
		};

		ehci@50000 {
			status = "okay";
		};
	};

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

		blue-usb {
			label = "dir665:blue:usb";
			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
		};
		blue-internet {
			/* Can only be turned on if the Internet
			 * Ethernet port has Link
			 */
			label = "dir665:blue:internet";
			gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
		};
		amber-internet {
			label = "dir665:amber:internet";
			gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
		};
		blue-wifi5g {
			label = "dir665:blue:5g";
			gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
		};
		blue-status {
			label = "dir665:blue:status";
			gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
		};
		blue-wps {
			label = "dir665:blue:wps";
			gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
		};
		amber-status {
			label = "dir665:amber:status";
			gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
		};
		blue-24g {
			label = "dir665:blue:24g";
			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
		};
	};

	gpio-keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;

		reset {
			label = "reset";
			linux,code = <KEY_RESTART>;
			gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
		};
		wps {
			label = "wps";
			linux,code = <KEY_WPS_BUTTON>;
			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
		};
	};
};

&mdio {
	status = "okay";

	switch@0 {
		compatible = "marvell,mv88e6085";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0>;

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				reg = <0>;
				label = "lan4";
			};

			port@1 {
				reg = <1>;
				label = "lan3";
			};

			port@2 {
				reg = <2>;
				label = "lan2";
			};

			port@3 {
				reg = <3>;
				label = "lan1";
			};

			port@4 {
				reg = <4>;
				label = "wan";
			};

			port@6 {
				reg = <6>;
				label = "cpu";
				ethernet = <&eth0port>;
				fixed-link {
					speed = <1000>;
					full-duplex;
				};
			};
		};
	};
};

/* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set
 * fixed speed and duplex. */
&eth0 {
	status = "okay";

	ethernet0-port@0 {
		speed = <1000>;
		duplex = <1>;
	};
};

/* eth1 is connected to the switch as well. However DSA only supports a
 * single CPU port. So leave this port disabled to avoid confusion. */

&eth1 {
	status = "disabled";
};

/* There is no battery on the boards, so the RTC does not keep time
 * when there is no power, making it useless. */
&rtc {
	status = "disabled";
};

&pciec {
	status = "okay";
};

&pcie0 {
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;

#include "kirkwood-dnskw.dtsi"

/ {
	model = "D-Link DNS-320 NAS (Rev A1)";
	compatible = "dlink,dns-320-a1", "dlink,dns-320", "dlink,dns-kirkwood", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8 earlyprintk";
		stdout-path = &uart0;
	};

	gpio-leds {
		compatible = "gpio-leds";
		pinctrl-0 = <&pmx_led_power &pmx_led_red_usb_320
			     &pmx_led_red_left_hdd &pmx_led_red_right_hdd
			     &pmx_led_white_usb>;
		pinctrl-names = "default";

		blue-power {
			label = "dns320:blue:power";
			gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
			default-state = "keep";
		};
		blue-usb {
			label = "dns320:blue:usb";
			gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
		};
		orange-l_hdd {
			label = "dns320:orange:l_hdd";
			gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
		};
		orange-r_hdd {
			label = "dns320:orange:r_hdd";
			gpios = <&gpio0 27 GPIO_ACTIVE_LOW>;
		};
		orange-usb {
			label = "dns320:orange:usb";
			gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; /* GPIO 35 */
		};
	};

	ocp@f1000000 {
		serial@12000 {
			status = "okay";
		};

		serial@12100 {
			status = "okay";
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;

#include "kirkwood-dnskw.dtsi"

/ {
	model = "D-Link DNS-325 NAS (Rev A1)";
	compatible = "dlink,dns-325-a1", "dlink,dns-325", "dlink,dns-kirkwood", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x10000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8 earlyprintk";
		stdout-path = &uart0;
	};

	gpio-leds {
		compatible = "gpio-leds";
		pinctrl-0 = <&pmx_led_power &pmx_led_red_usb_325
			     &pmx_led_red_left_hdd &pmx_led_red_right_hdd
			     &pmx_led_white_usb>;
		pinctrl-names = "default";

		white-power {
			label = "dns325:white:power";
			gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
			default-state = "keep";
		};
		white-usb {
			label = "dns325:white:usb";
			gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; /* GPIO 43 */
		};
		red-l_hdd {
			label = "dns325:red:l_hdd";
			gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
		};
		red-r_hdd {
			label = "dns325:red:r_hdd";
			gpios = <&gpio0 27 GPIO_ACTIVE_LOW>;
		};
		red-usb {
			label = "dns325:red:usb";
			gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
		};
	};

	ocp@f1000000 {
		i2c@11000 {
			status = "okay";

			lm75: lm75@48 {
				compatible = "national,lm75";
				reg = <0x48>;
			};
		};
		serial@12000 {
			status = "okay";
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "D-Link DNS NASes (kirkwood-based)";
	compatible = "dlink,dns-kirkwood", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	gpio_keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-0 = <&pmx_button_power &pmx_button_unmount
			     &pmx_button_reset>;
		pinctrl-names = "default";

		power {
			label = "Power button";
			linux,code = <KEY_POWER>;
			gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
		};
		eject {
			label = "USB unmount button";
			linux,code = <KEY_EJECTCD>;
			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
		};
		reset {
			label = "Reset button";
			linux,code = <KEY_RESTART>;
			gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
		};
	};

	gpio_fan {
		/* Fan: ADDA AD045HB-G73 40mm 6000rpm@5v */
		compatible = "gpio-fan";
		pinctrl-0 = <&pmx_fan_high_speed &pmx_fan_low_speed>;
		pinctrl-names = "default";
		gpios = <&gpio1 14 GPIO_ACTIVE_HIGH
			 &gpio1 13 GPIO_ACTIVE_HIGH>;
		gpio-fan,speed-map = <0    0
				      3000 1
				      6000 2>;
	};

	gpio_poweroff {
		compatible = "gpio-poweroff";
		pinctrl-0 = <&pmx_power_off>;
		pinctrl-names = "default";
		gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {

			pinctrl-0 = <&pmx_power_back_on &pmx_present_sata0
				     &pmx_present_sata1 &pmx_fan_tacho
				     &pmx_temp_alarm>;
			pinctrl-names = "default";

			pmx_sata0: pmx-sata0 {
				marvell,pins = "mpp20";
				marvell,function = "sata1";
			};
			pmx_sata1: pmx-sata1 {
				marvell,pins = "mpp21";
				marvell,function = "sata0";
			};
			pmx_led_power: pmx-led-power {
				marvell,pins = "mpp26";
				marvell,function = "gpio";
			};
			pmx_led_red_right_hdd: pmx-led-red-right-hdd {
				marvell,pins = "mpp27";
				marvell,function = "gpio";
			};
			pmx_led_red_left_hdd: pmx-led-red-left-hdd {
				marvell,pins = "mpp28";
				marvell,function = "gpio";
			};
			pmx_led_red_usb_325: pmx-led-red-usb-325 {
				marvell,pins = "mpp29";
				marvell,function = "gpio";
			};
			pmx_button_power: pmx-button-power {
				marvell,pins = "mpp34";
				marvell,function = "gpio";
			};
			pmx_led_red_usb_320: pmx-led-red-usb-320 {
				marvell,pins = "mpp35";
				marvell,function = "gpio";
			};
			pmx_power_off: pmx-power-off {
				marvell,pins = "mpp36";
				marvell,function = "gpio";
			};
			pmx_power_back_on: pmx-power-back-on {
				marvell,pins = "mpp37";
				marvell,function = "gpio";
			};
			pmx_power_sata0: pmx-power-sata0 {
				marvell,pins = "mpp39";
				marvell,function = "gpio";
			};
			pmx_power_sata1: pmx-power-sata1 {
				marvell,pins = "mpp40";
				marvell,function = "gpio";
			};
			pmx_present_sata0: pmx-present-sata0 {
				marvell,pins = "mpp41";
				marvell,function = "gpio";
			};
			pmx_present_sata1: pmx-present-sata1 {
				marvell,pins = "mpp42";
				marvell,function = "gpio";
			};
			pmx_led_white_usb: pmx-led-white-usb {
				marvell,pins = "mpp43";
				marvell,function = "gpio";
			};
			pmx_fan_tacho: pmx-fan-tacho {
				marvell,pins = "mpp44";
				marvell,function = "gpio";
			};
			pmx_fan_high_speed: pmx-fan-high-speed {
				marvell,pins = "mpp45";
				marvell,function = "gpio";
			};
			pmx_fan_low_speed: pmx-fan-low-speed {
				marvell,pins = "mpp46";
				marvell,function = "gpio";
			};
			pmx_button_unmount: pmx-button-unmount {
				marvell,pins = "mpp47";
				marvell,function = "gpio";
			};
			pmx_button_reset: pmx-button-reset {
				marvell,pins = "mpp48";
				marvell,function = "gpio";
			};
			pmx_temp_alarm: pmx-temp-alarm {
				marvell,pins = "mpp49";
				marvell,function = "gpio";
			};
		};
		sata@80000 {
			pinctrl-0 = <&pmx_sata0 &pmx_sata1>;
			pinctrl-names = "default";
			status = "okay";
			nr-ports = <2>;
		};
	};

	regulators {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-0 = <&pmx_power_sata0 &pmx_power_sata1>;
		pinctrl-names = "default";

		sata0_power: regulator@1 {
			compatible = "regulator-fixed";
			reg = <1>;
			regulator-name = "SATA0 Power";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			enable-active-high;
			regulator-always-on;
			regulator-boot-on;
			gpio = <&gpio1 7 0>;
		};
		sata1_power: regulator@2 {
			compatible = "regulator-fixed";
			reg = <2>;
			regulator-name = "SATA1 Power";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			enable-active-high;
			regulator-always-on;
			regulator-boot-on;
			gpio = <&gpio1 8 0>;
		};
	};
};

&nand {
	status = "okay";
	chip-delay = <35>;

	partition@0 {
		label = "u-boot";
		reg = <0x0000000 0x100000>;
		read-only;
	};

	partition@100000 {
		label = "uImage";
		reg = <0x0100000 0x500000>;
	};

	partition@600000 {
		label = "ramdisk";
		reg = <0x0600000 0x500000>;
	};

	partition@b00000 {
		label = "image";
		reg = <0x0b00000 0x6600000>;
	};

	partition@7100000 {
		label = "mini firmware";
		reg = <0x7100000 0xa00000>;
	};

	partition@7b00000 {
		label = "config";
		reg = <0x7b00000 0x500000>;
	};
};

&mdio {
	status = "okay";

	ethphy0: ethernet-phy@8 {
		reg = <8>;
	};
};

&eth0 {
	status = "okay";
	ethernet0-port@0 {
		phy-handle = <&ethphy0>;
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "Seagate FreeAgent Dockstar";
	compatible = "seagate,dockstar", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8 earlyprintk root=/dev/sda1 rootdelay=10";
		stdout-path = &uart0;
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			pmx_usb_power_enable: pmx-usb-power-enable {
				marvell,pins = "mpp29";
				marvell,function = "gpio";
			};
			pmx_led_green: pmx-led-green {
				marvell,pins = "mpp46";
				marvell,function = "gpio";
			};
			pmx_led_orange: pmx-led-orange {
				marvell,pins = "mpp47";
				marvell,function = "gpio";
			};
		};
		serial@12000 {
			status = "okay";
		};
	};
	gpio-leds {
		compatible = "gpio-leds";
		pinctrl-0 = <&pmx_led_green &pmx_led_orange>;
		pinctrl-names = "default";

		health {
			label = "status:green:health";
			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
			default-state = "keep";
		};
		fault {
			label = "status:orange:fault";
			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
		};
	};
	regulators {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-0 = <&pmx_usb_power_enable>;
		pinctrl-names = "default";

		usb_power: regulator@1 {
			compatible = "regulator-fixed";
			reg = <1>;
			regulator-name = "USB Power";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			enable-active-high;
			regulator-always-on;
			regulator-boot-on;
			gpio = <&gpio0 29 0>;
		};
	};
};

&nand {
	status = "okay";

	partition@0 {
		label = "u-boot";
		reg = <0x0000000 0x100000>;
		read-only;
	};

	partition@100000 {
		label = "uImage";
		reg = <0x0100000 0x400000>;
	};

	partition@500000 {
		label = "data";
		reg = <0x0500000 0xfb00000>;
	};
};

&mdio {
	status = "okay";

	ethphy0: ethernet-phy@0 {
		compatible = "marvell,88e1116";
		reg = <0>;
	};
};

&eth0 {
	status = "okay";
	ethernet0-port@0 {
		phy-handle = <&ethphy0>;
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "Globalscale Technologies Dreamplug";
	compatible = "globalscale,dreamplug-003-ds2001", "globalscale,dreamplug", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x20000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8 earlyprintk";
		stdout-path = &uart0;
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			pmx_led_bluetooth: pmx-led-bluetooth {
				marvell,pins = "mpp47";
				marvell,function = "gpio";
			};
			pmx_led_wifi: pmx-led-wifi {
				marvell,pins = "mpp48";
				marvell,function = "gpio";
			};
			pmx_led_wifi_ap: pmx-led-wifi-ap {
				marvell,pins = "mpp49";
				marvell,function = "gpio";
			};
		};
		serial@12000 {
			status = "okay";
		};

		spi@10600 {
			status = "okay";

			m25p40@0 {
				#address-cells = <1>;
				#size-cells = <1>;
				compatible = "mxicy,mx25l1606e", "jedec,spi-nor";
				reg = <0>;
				spi-max-frequency = <50000000>;
				mode = <0>;

				partition@0 {
					reg = <0x0 0x80000>;
					label = "u-boot";
				};

				partition@100000 {
					reg = <0x100000 0x10000>;
					label = "u-boot env";
				};

				partition@180000 {
					reg = <0x180000 0x10000>;
					label = "dtb";
				};
			};
		};

		sata@80000 {
			status = "okay";
			nr-ports = <1>;
		};

		mvsdio@90000 {
			pinctrl-0 = <&pmx_sdio>;
			pinctrl-names = "default";
			status = "okay";
			/* No CD or WP GPIOs */
			broken-cd;
		};
	};

	gpio-leds {
		compatible = "gpio-leds";
		pinctrl-0 = <&pmx_led_bluetooth &pmx_led_wifi
			     &pmx_led_wifi_ap >;
		pinctrl-names = "default";

		bluetooth {
			label = "dreamplug:blue:bluetooth";
			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
		};
		wifi {
			label = "dreamplug:green:wifi";
			gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
		};
		wifi-ap {
			label = "dreamplug:green:wifi_ap";
			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
		};
	};
};

&mdio {
	status = "okay";

	ethphy0: ethernet-phy@0 {
		reg = <0>;
	};

	ethphy1: ethernet-phy@1 {
		reg = <1>;
	};
};

&eth0 {
	status = "okay";
	ethernet0-port@0 {
		phy-handle = <&ethphy0>;
	};
};

&eth1 {
	status = "okay";
	ethernet1-port@0 {
		phy-handle = <&ethphy1>;
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Andrew Lunn <andrew@lunn.ch>
 * Ben Peddell <klightspeed@killerwolves.net>
 *
 */

/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"
#include "kirkwood-synology.dtsi"

/ {
	model = "Synology DS109, DS110, DS110jv20";
	compatible = "synology,ds109", "synology,ds110jv20",
		     "synology,ds110", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8";
		stdout-path = &uart0;
	};

	gpio-fan-150-32-35 {
		status = "okay";
	};

	gpio-leds-hdd-21-1 {
		status = "okay";
	};
};

&rs5c372 {
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Andrew Lunn <andrew@lunn.ch>
 * Ben Peddell <klightspeed@killerwolves.net>
 *
 */

/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"
#include "kirkwood-synology.dtsi"

/ {
	model = "Synology DS110j v10 and v30";
	compatible = "synology,ds110jv10", "synology,ds110jv30",
		     "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8";
		stdout-path = &uart0;
	};

	gpio-fan-150-32-35 {
		status = "okay";
	};

	gpio-leds-hdd-21-1 {
		status = "okay";
	};
};

&s35390a {
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Andrew Lunn <andrew@lunn.ch>
 * Ben Peddell <klightspeed@killerwolves.net>
 *
 */

/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6282.dtsi"
#include "kirkwood-synology.dtsi"

/ {
	model = "Synology DS111";
	compatible = "synology,ds111", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8";
		stdout-path = &uart0;
	};

	gpio-fan-100-15-35-1 {
		status = "okay";
	};

	gpio-leds-hdd-21-1 {
		status = "okay";
	};
};

&s35390a {
	status = "okay";
};

&pcie1 {
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Andrew Lunn <andrew@lunn.ch>
 * Ben Peddell <klightspeed@killerwolves.net>
 *
 */

/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6282.dtsi"
#include "kirkwood-synology.dtsi"

/ {
	model = "Synology DS112";
	compatible = "synology,ds111", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8";
		stdout-path = &uart0;
	};

	gpio-fan-100-15-35-1 {
		status = "okay";
	};

	gpio-leds-21-2 {
		status = "okay";
	};

	regulators-hdd-30 {
		status = "okay";
	};
};

&s35390a {
	status = "okay";
};

&pciec {
	status = "okay";
};

&pcie1 {
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Andrew Lunn <andrew@lunn.ch>
 * Ben Peddell <klightspeed@killerwolves.net>
 *
 */

/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"
#include "kirkwood-synology.dtsi"

/ {
	model = "Synology DS209";
	compatible = "synology,ds209", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8";
		stdout-path = &uart0;
	};

	gpio-fan-150-32-35 {
		status = "okay";
	};

	gpio-leds-hdd-21-2 {
		status = "okay";
	};

	regulators-hdd-31 {
		status = "okay";
	};
};

&rs5c372 {
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Andrew Lunn <andrew@lunn.ch>
 * Ben Peddell <klightspeed@killerwolves.net>
 *
 */

/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"
#include "kirkwood-synology.dtsi"

/ {
	model = "Synology DS210 v10, v20, v30, DS211j";
	compatible = "synology,ds210jv10", "synology,ds210jv20",
		     "synology,ds210jv30", "synology,ds211j",
		     "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8";
		stdout-path = &uart0;
	};

	gpio-fan-150-32-35 {
		status = "okay";
	};

	gpio-leds-hdd-21-2 {
		status = "okay";
	};

	regulators-hdd-31 {
		status = "okay";
	};
};

&s35390a {
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Andrew Lunn <andrew@lunn.ch>
 * Ben Peddell <klightspeed@killerwolves.net>
 *
 */

/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6282.dtsi"
#include "kirkwood-synology.dtsi"

/ {
	model = "Synology DS212, DS212p v10, v20, DS213air v10, DS213 v10";
	compatible = "synology,ds212", "synology,ds212pv10",
		     "synology,ds212pv10", "synology,ds212pv20",
		     "synology,ds213airv10", "synology,ds213v10",
		     "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8";
		stdout-path = &uart0;
	};

	gpio-fan-100-15-35-1 {
		status = "okay";
	};

	gpio-leds-hdd-21-2 {
		status = "okay";
	};
};

&s35390a {
	status = "okay";
};

&pcie1 {
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Andrew Lunn <andrew@lunn.ch>
 * Ben Peddell <klightspeed@killerwolves.net>
 *
 */

/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"
#include "kirkwood-synology.dtsi"

/ {
	model = "Synology DS212j v10, v20";
	compatible = "synology,ds212jv10", "synology,ds212jv20",
		     "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8";
		stdout-path = &uart0;
	};

	gpio-fan-100-32-35 {
		status = "okay";
	};

	gpio-leds-hdd-21-2 {
		status = "okay";
	};
};

&s35390a {
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Andrew Lunn <andrew@lunn.ch>
 * Ben Peddell <klightspeed@killerwolves.net>
 *
 */

/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"
#include "kirkwood-synology.dtsi"

/ {
	model = "Synology DS409, DS410j";
	compatible = "synology,ds409", "synology,ds410j", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8";
		stdout-path = &uart0;
	};

	gpio-fan-150-15-18 {
		status = "okay";
	};

	gpio-leds-hdd-36 {
		status = "okay";
	};

	gpio-leds-alarm-12 {
		status = "okay";
	};
};

&eth1 {
	status = "okay";
};

&rs5c372 {
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Andrew Lunn <andrew@lunn.ch>
 * Ben Peddell <klightspeed@killerwolves.net>
 *
 */

/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"
#include "kirkwood-synology.dtsi"

/ {
	model = "Synology 409slim";
	compatible = "synology,ds409slim", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8";
		stdout-path = &uart0;
	};

	gpio-fan-150-32-35 {
		status = "okay";
	};

	gpio-leds-hdd-20 {
		status = "okay";
	};
};

&rs5c372 {
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Andrew Lunn <andrew@lunn.ch>
 * Ben Peddell <klightspeed@killerwolves.net>
 *
 */

/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6282.dtsi"
#include "kirkwood-synology.dtsi"

/ {
	model = "Synology DS411, DS413jv10";
	compatible = "synology,ds411", "synology,ds413jv10", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8";
		stdout-path = &uart0;
	};

	gpio-fan-100-15-35-1 {
		status = "okay";
	};

	gpio-leds-hdd-36 {
		status = "okay";
	};

	regulators-hdd-34 {
		status = "okay";
	};
};

&eth1 {
	status = "okay";
};

&s35390a {
	status = "okay";
};

&pciec {
	status = "okay";
};

&pcie1 {
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Andrew Lunn <andrew@lunn.ch>
 * Ben Peddell <klightspeed@killerwolves.net>
 *
 */

/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"
#include "kirkwood-synology.dtsi"

/ {
	model = "Synology DS411j";
	compatible = "synology,ds411j", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8";
		stdout-path = &uart0;
	};

	gpio-fan-150-15-18 {
		status = "okay";
	};

	gpio-leds-hdd-36 {
		status = "okay";
	};

	gpio-leds-alarm-12 {
		status = "okay";
	};
};

&eth1 {
	status = "okay";
};

&s35390a {
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0
/*
 * Andrew Lunn <andrew@lunn.ch>
 * Ben Peddell <klightspeed@killerwolves.net>
 *
 */

/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6282.dtsi"
#include "kirkwood-synology.dtsi"

/ {
	model = "Synology DS411slim";
	compatible = "synology,ds411slim", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8";
		stdout-path = &uart0;
	};

	gpio-fan-100-15-35-1 {
		status = "okay";
	};

	gpio-leds-hdd-36 {
		status = "okay";
	};
};

&eth1 {
	status = "okay";
};

&s35390a {
	status = "okay";
};

&pcie1 {
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "Seagate GoFlex Net";
	compatible = "seagate,goflexnet", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8 earlyprintk root=/dev/sda1 rootdelay=10";
		stdout-path = &uart0;
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			pmx_usb_power_enable: pmx-usb-power-enable {
				marvell,pins = "mpp29";
				marvell,function = "gpio";
			};
			pmx_led_right_cap_0: pmx-led_right_cap_0 {
				marvell,pins = "mpp38";
				marvell,function = "gpio";
			};
			pmx_led_right_cap_1: pmx-led_right_cap_1 {
				marvell,pins = "mpp39";
				marvell,function = "gpio";
			};
			pmx_led_right_cap_2: pmx-led_right_cap_2 {
				marvell,pins = "mpp40";
				marvell,function = "gpio";
			};
			pmx_led_right_cap_3: pmx-led_right_cap_3 {
				marvell,pins = "mpp41";
				marvell,function = "gpio";
			};
			pmx_led_left_cap_0: pmx-led_left_cap_0 {
				marvell,pins = "mpp42";
				marvell,function = "gpio";
			};
			pmx_led_left_cap_1: pmx-led_left_cap_1 {
				marvell,pins = "mpp43";
				marvell,function = "gpio";
			};
			pmx_led_left_cap_2: pmx-led_left_cap_2 {
				marvell,pins = "mpp44";
				marvell,function = "gpio";
			};
			pmx_led_left_cap_3: pmx-led_left_cap_3 {
				marvell,pins = "mpp45";
				marvell,function = "gpio";
			};
			pmx_led_green: pmx-led_green {
				marvell,pins = "mpp46";
				marvell,function = "gpio";
			};
			pmx_led_orange: pmx-led_orange {
				marvell,pins = "mpp47";
				marvell,function = "gpio";
			};
		};
		serial@12000 {
			status = "okay";
		};

		sata@80000 {
			status = "okay";
			nr-ports = <2>;
		};

	};
	gpio-leds {
		compatible = "gpio-leds";
		pinctrl-0 = < &pmx_led_orange
			      &pmx_led_left_cap_0 &pmx_led_left_cap_1
			      &pmx_led_left_cap_2 &pmx_led_left_cap_3
			      &pmx_led_right_cap_0 &pmx_led_right_cap_1
			      &pmx_led_right_cap_2 &pmx_led_right_cap_3
			    >;
		pinctrl-names = "default";

		health {
			label = "status:green:health";
			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
			default-state = "keep";
		};
		fault {
			label = "status:orange:fault";
			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
		};
		left0 {
			label = "status:white:left0";
			gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
		};
		left1 {
			label = "status:white:left1";
			gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
		};
		left2 {
			label = "status:white:left2";
			gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
		};
		left3 {
			label = "status:white:left3";
			gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
		};
		right0 {
			label = "status:white:right0";
			gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
		};
		right1 {
			label = "status:white:right1";
			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
		};
		right2 {
			label = "status:white:right2";
			gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
		};
		right3 {
			label = "status:white:right3";
			gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
		};
	};
	regulators {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-0 = <&pmx_usb_power_enable>;
		pinctrl-names = "default";

		usb_power: regulator@1 {
			compatible = "regulator-fixed";
			reg = <1>;
			regulator-name = "USB Power";
			regulator-min-microvolt = <5000000>;
			regulator-max-microvolt = <5000000>;
			enable-active-high;
			regulator-always-on;
			regulator-boot-on;
			gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
		};
	};
};

&nand {
	chip-delay = <40>;
	status = "okay";

	partition@0 {
		label = "u-boot";
		reg = <0x0000000 0x100000>;
		read-only;
	};

	partition@100000 {
		label = "uImage";
		reg = <0x0100000 0x400000>;
	};

	partition@500000 {
		label = "pogoplug";
		reg = <0x0500000 0x2000000>;
	};

	partition@2500000 {
		label = "root";
		reg = <0x02500000 0xd800000>;
	};
};

&mdio {
	status = "okay";

	ethphy0: ethernet-phy@0 {
		reg = <0>;
	};
};

&eth0 {
	status = "okay";
	ethernet0-port@0 {
		phy-handle = <&ethphy0>;
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "Globalscale Technologies Guruplug Server Plus";
	compatible = "globalscale,guruplug-server-plus", "globalscale,guruplug", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x20000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8 earlyprintk";
		stdout-path = &uart0;
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			pmx_led_health_r: pmx-led-health-r {
				marvell,pins = "mpp46";
				marvell,function = "gpio";
			};
			pmx_led_health_g: pmx-led-health-g {
				marvell,pins = "mpp47";
				marvell,function = "gpio";
			};
			pmx_led_wmode_r: pmx-led-wmode-r {
				marvell,pins = "mpp48";
				marvell,function = "gpio";
			};
			pmx_led_wmode_g: pmx-led-wmode-g {
				marvell,pins = "mpp49";
				marvell,function = "gpio";
			};
		};
		serial@12000 {
			status = "okay";
		};

		sata@80000 {
			status = "okay";
			nr-ports = <1>;
		};

		/* AzureWave AW-GH381 WiFi/BT */
		mvsdio@90000 {
			status = "okay";
			non-removable;
		};
	};

	gpio-leds {
		compatible = "gpio-leds";
		pinctrl-0 = < &pmx_led_health_r &pmx_led_health_g
			      &pmx_led_wmode_r &pmx_led_wmode_g >;
		pinctrl-names = "default";

		health-r {
			label = "guruplug:red:health";
			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
		};
		health-g {
			label = "guruplug:green:health";
			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
		};
		wmode-r {
			label = "guruplug:red:wmode";
			gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
		};
		wmode-g {
			label = "guruplug:green:wmode";
			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
		};
	};
};

&nand {
	status = "okay";

	partition@0 {
		label = "u-boot";
		reg = <0x00000000 0x00100000>;
		read-only;
	};

	partition@100000 {
		label = "uImage";
		reg = <0x00100000 0x00400000>;
	};

	partition@500000 {
		label = "data";
		reg = <0x00500000 0x1fb00000>;
	};
};

&mdio {
	status = "okay";

	ethphy0: ethernet-phy@0 {
		/* Marvell 88E1121R */
		compatible = "ethernet-phy-id0141.0cb0",
		             "ethernet-phy-ieee802.3-c22";
		reg = <0>;
	};

	ethphy1: ethernet-phy@1 {
		/* Marvell 88E1121R */
		compatible = "ethernet-phy-id0141.0cb0",
		             "ethernet-phy-ieee802.3-c22";
		reg = <1>;
	};
};

&eth0 {
	status = "okay";
	ethernet0-port@0 {
		phy-handle = <&ethphy0>;
		phy-connection-type = "rgmii-id";
	};
};

&eth1 {
	status = "okay";
	ethernet1-port@0 {
		phy-handle = <&ethphy1>;
		phy-connection-type = "rgmii-id";
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "RaidSonic ICY BOX IB-NAS62x0 (Rev B)";
	compatible = "raidsonic,ib-nas6210-b", "raidsonic,ib-nas6220-b", "raidsonic,ib-nas6210", "raidsonic,ib-nas6220", "raidsonic,ib-nas62x0", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x10000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8 earlyprintk";
		stdout-path = &uart0;
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			pmx_led_os_red: pmx-led-os-red {
				marvell,pins = "mpp22";
				marvell,function = "gpio";
			};
			pmx_power_off: pmx-power-off {
				marvell,pins = "mpp24";
				marvell,function = "gpio";
			};
			pmx_led_os_green: pmx-led-os-green {
				marvell,pins = "mpp25";
				marvell,function = "gpio";
			};
			pmx_led_usb_transfer: pmx-led-usb-transfer {
				marvell,pins = "mpp27";
				marvell,function = "gpio";
			};
			pmx_button_reset: pmx-button-reset {
				marvell,pins = "mpp28";
				marvell,function = "gpio";
			};
			pmx_button_usb_copy: pmx-button-usb-copy {
				marvell,pins = "mpp29";
				marvell,function = "gpio";
			};
		};

		serial@12000 {
			status = "okay";
		};

		sata@80000 {
			status = "okay";
			nr-ports = <2>;
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-0 = <&pmx_button_reset &pmx_button_usb_copy>;
		pinctrl-names = "default";

		copy {
			label = "USB Copy";
			linux,code = <KEY_COPY>;
			gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
		};
		reset {
			label = "Reset";
			linux,code = <KEY_RESTART>;
			gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
		};
	};

	gpio-leds {
		compatible = "gpio-leds";
		pinctrl-0 = <&pmx_led_os_red &pmx_led_os_green
			     &pmx_led_usb_transfer>;
		pinctrl-names = "default";

		green-os {
			label = "ib62x0:green:os";
			gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>;
			default-state = "keep";
		};
		red-os {
			label = "ib62x0:red:os";
			gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
		};
		usb-copy {
			label = "ib62x0:red:usb_copy";
			gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>;
		};
	};

	gpio_poweroff {
		compatible = "gpio-poweroff";
		pinctrl-0 = <&pmx_power_off>;
		pinctrl-names = "default";
		gpios = <&gpio0 24 GPIO_ACTIVE_HIGH>;
	};
};

&nand {
	status = "okay";

	partition@0 {
		label = "u-boot";
		reg = <0x0000000 0xe0000>;
	};

	partition@e0000 {
		label = "u-boot environment";
		reg = <0xe0000 0x20000>;
	};

	partition@100000 {
		label = "uImage";
		reg = <0x0100000 0x600000>;
	};

	partition@700000 {
		label = "root";
		reg = <0x0700000 0xf900000>;
	};

};

&mdio {
	status = "okay";

	ethphy0: ethernet-phy@8 {
		reg = <8>;
	};
};

&eth0 {
	status = "okay";

	ethernet0-port@0 {
		phy-handle = <&ethphy0>;
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "Iomega Iconnect";
	compatible = "iom,iconnect-1.1", "iom,iconnect", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x10000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8 earlyprintk";
		stdout-path = &uart0;
		linux,initrd-start = <0x4500040>;
		linux,initrd-end   = <0x4800000>;
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			pmx_button_reset: pmx-button-reset {
				marvell,pins = "mpp12";
				marvell,function = "gpio";
			};
			pmx_button_otb: pmx-button-otb {
				marvell,pins = "mpp35";
				marvell,function = "gpio";
			};
			pmx_led_level: pmx-led-level {
				marvell,pins = "mpp41";
				marvell,function = "gpio";
			};
			pmx_led_power_blue: pmx-led-power-blue {
				marvell,pins = "mpp42";
				marvell,function = "gpio";
			};
			pmx_led_power_red: pmx-power-red {
				marvell,pins = "mpp43";
				marvell,function = "gpio";
			};
			pmx_led_usb1: pmx-led-usb1 {
				marvell,pins = "mpp44";
				marvell,function = "gpio";
			};
			pmx_led_usb2: pmx-led-usb2 {
				marvell,pins = "mpp45";
				marvell,function = "gpio";
			};
			pmx_led_usb3: pmx-led-usb3 {
				marvell,pins = "mpp46";
				marvell,function = "gpio";
			};
			pmx_led_usb4: pmx-led-usb4 {
				marvell,pins = "mpp47";
				marvell,function = "gpio";
			};
			pmx_led_otb: pmx-led-otb {
				marvell,pins = "mpp48";
				marvell,function = "gpio";
			};
		};
		i2c@11000 {
			status = "okay";

			lm63: lm63@4c {
				compatible = "national,lm63";
				reg = <0x4c>;
			};
		};
		serial@12000 {
			status = "okay";
		};
	};

	gpio-leds {
		compatible = "gpio-leds";
		pinctrl-0 = < &pmx_led_level &pmx_led_power_blue
			      &pmx_led_power_red &pmx_led_usb1
			      &pmx_led_usb2 &pmx_led_usb3
			      &pmx_led_usb4 &pmx_led_otb >;
		pinctrl-names = "default";

		led-level {
			label = "led_level";
			gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
			default-state = "on";
		};
		power-blue {
			label = "power:blue";
			gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
			default-state = "keep";
		};
		power-red {
			label = "power:red";
			gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
		};
		usb1 {
			label = "usb1:blue";
			gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
		};
		usb2 {
			label = "usb2:blue";
			gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
		};
		usb3 {
			label = "usb3:blue";
			gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
		};
		usb4 {
			label = "usb4:blue";
			gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
		};
		otb {
			label = "otb:blue";
			gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
		};
	};

	gpio_keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-0 = < &pmx_button_reset &pmx_button_otb >;
		pinctrl-names = "default";

		otb {
			label = "OTB Button";
			linux,code = <KEY_COPY>;
			gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
			debounce-interval = <100>;
		};
		reset {
			label = "Reset";
			linux,code = <KEY_RESTART>;
			gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
			debounce-interval = <100>;
		};
	};
};

&nand {
	status = "okay";

	partition@0 {
		label = "uboot";
		reg = <0x0000000 0xc0000>;
	};

	partition@a0000 {
		label = "env";
		reg = <0xa0000 0x20000>;
	};

	partition@100000 {
		label = "zImage";
		reg = <0x100000 0x300000>;
	};

	partition@540000 {
		label = "initrd";
		reg = <0x540000 0x300000>;
	};

	partition@980000 {
		label = "boot";
		reg = <0x980000 0x1f400000>;
	};
};

&mdio {
	status = "okay";

	ethphy0: ethernet-phy@11 {
		reg = <11>;
	};
};

&eth0 {
	status = "okay";
	ethernet0-port@0 {
		phy-handle = <&ethphy0>;
	};
};

&pciec {
	status = "okay";
};

&pcie0 {
	status = "okay";
};


code:
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "Iomega StorCenter ix2-200";
	compatible = "iom,ix2-200", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x10000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8 earlyprintk";
		stdout-path = &uart0;
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			pinctrl-0 = < &pmx_led_sata_brt_ctrl_1
				      &pmx_led_sata_brt_ctrl_2
				      &pmx_led_backup_brt_ctrl_1
				      &pmx_led_backup_brt_ctrl_2
				      &pmx_led_power_brt_ctrl_1
				      &pmx_led_power_brt_ctrl_2
				      &pmx_led_health_brt_ctrl_1
				      &pmx_led_health_brt_ctrl_2
				      &pmx_led_rebuild_brt_ctrl_1
				      &pmx_led_rebuild_brt_ctrl_2 >;
			pinctrl-names = "default";

			pmx_button_reset: pmx-button-reset {
				marvell,pins = "mpp12";
				marvell,function = "gpio";
			};
			pmx_button_power: pmx-button-power {
				marvell,pins = "mpp14";
				marvell,function = "gpio";
			};
			pmx_led_backup: pmx-led-backup {
				marvell,pins = "mpp15";
				marvell,function = "gpio";
			};
			pmx_led_power: pmx-led-power {
				marvell,pins = "mpp16";
				marvell,function = "gpio";
			};
			pmx_button_otb: pmx-button-otb {
				marvell,pins = "mpp35";
				marvell,function = "gpio";
			};
			pmx_led_rebuild: pmx-led-rebuild {
				marvell,pins = "mpp36";
				marvell,function = "gpio";
			};
			pmx_led_health: pmx-led_health {
				marvell,pins = "mpp37";
				marvell,function = "gpio";
			};
			pmx_led_sata_brt_ctrl_1: pmx-led-sata-brt-ctrl-1 {
				marvell,pins = "mpp38";
				marvell,function = "gpio";
			};
			pmx_led_sata_brt_ctrl_2: pmx-led-sata-brt-ctrl-2 {
				marvell,pins = "mpp39";
				marvell,function = "gpio";
			};
			pmx_led_backup_brt_ctrl_1: pmx-led-backup-brt-ctrl-1 {
				marvell,pins = "mpp40";
				marvell,function = "gpio";
			};
			pmx_led_backup_brt_ctrl_2: pmx-led-backup-brt-ctrl-2 {
				marvell,pins = "mpp41";
				marvell,function = "gpio";
			};
			pmx_led_power_brt_ctrl_1: pmx-led-power-brt-ctrl-1 {
				marvell,pins = "mpp42";
				marvell,function = "gpio";
			};
			pmx_led_power_brt_ctrl_2: pmx-led-power-brt-ctrl-2 {
				marvell,pins = "mpp43";
				marvell,function = "gpio";
			};
			pmx_led_health_brt_ctrl_1: pmx-led-health-brt-ctrl-1 {
				marvell,pins = "mpp44";
				marvell,function = "gpio";
			};
			pmx_led_health_brt_ctrl_2: pmx-led-health-brt-ctrl-2 {
				marvell,pins = "mpp45";
				marvell,function = "gpio";
			};
			pmx_led_rebuild_brt_ctrl_1: pmx-led-rebuild-brt-ctrl-1 {
				marvell,pins = "mpp46";
				marvell,function = "gpio";
			};
			pmx_led_rebuild_brt_ctrl_2: pmx-led-rebuild-brt-ctrl-2 {
				marvell,pins = "mpp47";
				marvell,function = "gpio";
			};

		};
		i2c@11000 {
			status = "okay";

			lm63: lm63@4c {
				compatible = "national,lm63";
				reg = <0x4c>;
			};
		};

		serial@12000 {
			status = "okay";
		};

		sata@80000 {
			status = "okay";
			nr-ports = <2>;
		};

	};
	gpio-leds {
		compatible = "gpio-leds";
		pinctrl-0 = < &pmx_led_backup &pmx_led_power
			      &pmx_led_rebuild &pmx_led_health >;
		pinctrl-names = "default";

		power_led {
			label = "status:white:power_led";
			gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
			default-state = "keep";
		};
		rebuild_led {
			label = "status:white:rebuild_led";
			gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
		};
		health_led {
			label = "status:red:health_led";
			gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
		};
		backup_led {
			label = "status:blue:backup_led";
			gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
		};
	};
	gpio-keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-0 = <&pmx_button_reset &pmx_button_power
			     &pmx_button_otb>;
		pinctrl-names = "default";

		Power {
			label = "Power Button";
			linux,code = <KEY_POWER>;
			gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
		};
		Reset {
			label = "Reset Button";
			linux,code = <KEY_RESTART>;
			gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
		};
		OTB {
			label = "OTB Button";
			linux,code = <KEY_COPY>;
			gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
		};
	};
	gpio-poweroff {
		compatible = "gpio-poweroff";
		gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
	};
};

&nand {
	status = "okay";

	partition@0 {
		label = "u-boot";
		reg = <0x0000000 0x100000>;
		read-only;
	};

	partition@a0000 {
		label = "env";
		reg = <0xa0000 0x20000>;
		read-only;
	};

	partition@100000 {
		label = "uImage";
		reg = <0x100000 0x300000>;
	};

	partition@400000 {
		label = "rootfs";
		reg = <0x400000 0x1C00000>;
	};
};

&mdio {
	status = "okay";

	ethphy1: ethernet-phy@11 {
		reg = <11>;
	};
};

&eth0 {
	status = "okay";
	ethernet0-port@0 {
		speed = <1000>;
		duplex = <1>;
	};
};

&eth1 {
	status = "okay";
	ethernet1-port@0 {
		phy-handle = <&ethphy1>;
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;

#include <dt-bindings/leds/leds-ns2.h>
#include "kirkwood-ns2-common.dtsi"

/ {
	model = "LaCie Internet Space v2";
	compatible = "lacie,inetspace_v2", "marvell,kirkwood-88f6281", "marvell,kirkwood";

	memory {
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	ocp@f1000000 {
		sata@80000 {
			pinctrl-0 = <&pmx_ns2_sata0>;
			pinctrl-names = "default";
			status = "okay";
			nr-ports = <1>;
		};
	};

	ns2-leds {
		compatible = "lacie,ns2-leds";

		blue-sata {
			label = "ns2:blue:sata";
			slow-gpio = <&gpio0 29 0>;
			cmd-gpio = <&gpio0 30 0>;
			modes-map = <NS_V2_LED_OFF  1 0
				     NS_V2_LED_ON   0 1
				     NS_V2_LED_ON   1 1
				     NS_V2_LED_SATA 0 0>;
		};
	};
};

&ethphy0 { reg = <8>; };


code:
// SPDX-License-Identifier: GPL-2.0
/ {
	chosen {
		bootargs = "console=ttyS0,115200n8 earlyprintk";
		stdout-path = &uart0;
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			pinctrl-0 = < &pmx_i2c_gpio_sda &pmx_i2c_gpio_scl >;
			pinctrl-names = "default";

			pmx_i2c_gpio_sda: pmx-gpio-sda {
				marvell,pins = "mpp8";
				marvell,function = "gpio";
			};
			pmx_i2c_gpio_scl: pmx-gpio-scl {
				marvell,pins = "mpp9";
				marvell,function = "gpio";
			};
		};

		serial@12000 {
			status = "okay";
		};
	};

	i2c {
		compatible = "i2c-gpio";
		gpios = < &gpio0 8 GPIO_ACTIVE_HIGH		/* sda */
			  &gpio0 9 GPIO_ACTIVE_HIGH>;		/* scl */
		i2c-gpio,delay-us = <2>;	/* ~100 kHz */
	};
};

&nand {
	status = "okay";
	chip-delay = <25>;
};

&pciec {
	status = "okay";
};

&pcie0 {
	status = "okay";
};