162306a36Sopenharmony_ci/*
262306a36Sopenharmony_ci * Copyright 2016 Linaro Ltd
362306a36Sopenharmony_ci *
462306a36Sopenharmony_ci * Permission is hereby granted, free of charge, to any person obtaining a copy
562306a36Sopenharmony_ci * of this software and associated documentation files (the "Software"), to deal
662306a36Sopenharmony_ci * in the Software without restriction, including without limitation the rights
762306a36Sopenharmony_ci * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
862306a36Sopenharmony_ci * copies of the Software, and to permit persons to whom the Software is
962306a36Sopenharmony_ci * furnished to do so, subject to the following conditions:
1062306a36Sopenharmony_ci *
1162306a36Sopenharmony_ci * The above copyright notice and this permission notice shall be included in
1262306a36Sopenharmony_ci * all copies or substantial portions of the Software.
1362306a36Sopenharmony_ci *
1462306a36Sopenharmony_ci * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1562306a36Sopenharmony_ci * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1662306a36Sopenharmony_ci * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
1762306a36Sopenharmony_ci * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1862306a36Sopenharmony_ci * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1962306a36Sopenharmony_ci * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2062306a36Sopenharmony_ci * THE SOFTWARE.
2162306a36Sopenharmony_ci */
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h>
2462306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci/ {
2762306a36Sopenharmony_ci	#address-cells = <1>;
2862306a36Sopenharmony_ci	#size-cells = <1>;
2962306a36Sopenharmony_ci	compatible = "arm,realview-pbx";
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci	chosen { };
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci	aliases {
3462306a36Sopenharmony_ci		serial0 = &serial0;
3562306a36Sopenharmony_ci		serial1 = &serial1;
3662306a36Sopenharmony_ci		serial2 = &serial2;
3762306a36Sopenharmony_ci		serial3 = &serial3;
3862306a36Sopenharmony_ci		i2c0 = &i2c0;
3962306a36Sopenharmony_ci		i2c1 = &i2c1;
4062306a36Sopenharmony_ci	};
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci	memory {
4362306a36Sopenharmony_ci		device_type = "memory";
4462306a36Sopenharmony_ci		/* 128 MiB memory @ 0x0 */
4562306a36Sopenharmony_ci		reg = <0x00000000 0x08000000>;
4662306a36Sopenharmony_ci	};
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci	/* The voltage to the MMC card is hardwired at 3.3V */
4962306a36Sopenharmony_ci	vmmc: regulator-vmmc {
5062306a36Sopenharmony_ci		compatible = "regulator-fixed";
5162306a36Sopenharmony_ci		regulator-name = "vmmc";
5262306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
5362306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
5462306a36Sopenharmony_ci		regulator-boot-on;
5562306a36Sopenharmony_ci        };
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci	veth: regulator-veth {
5862306a36Sopenharmony_ci		compatible = "regulator-fixed";
5962306a36Sopenharmony_ci		regulator-name = "veth";
6062306a36Sopenharmony_ci		regulator-min-microvolt = <3300000>;
6162306a36Sopenharmony_ci		regulator-max-microvolt = <3300000>;
6262306a36Sopenharmony_ci		regulator-boot-on;
6362306a36Sopenharmony_ci	};
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci	xtal24mhz: xtal24mhz@24M {
6662306a36Sopenharmony_ci		#clock-cells = <0>;
6762306a36Sopenharmony_ci		compatible = "fixed-clock";
6862306a36Sopenharmony_ci		clock-frequency = <24000000>;
6962306a36Sopenharmony_ci	};
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci	refclk32khz: refclk32khz {
7262306a36Sopenharmony_ci		#clock-cells = <0>;
7362306a36Sopenharmony_ci		compatible = "fixed-clock";
7462306a36Sopenharmony_ci		clock-frequency = <32768>;
7562306a36Sopenharmony_ci	};
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci	timclk: timclk@1M {
7862306a36Sopenharmony_ci		#clock-cells = <0>;
7962306a36Sopenharmony_ci		compatible = "fixed-factor-clock";
8062306a36Sopenharmony_ci		clock-div = <24>;
8162306a36Sopenharmony_ci		clock-mult = <1>;
8262306a36Sopenharmony_ci		clocks = <&xtal24mhz>;
8362306a36Sopenharmony_ci	};
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci	mclk: mclk@24M {
8662306a36Sopenharmony_ci		#clock-cells = <0>;
8762306a36Sopenharmony_ci		compatible = "fixed-factor-clock";
8862306a36Sopenharmony_ci		clock-div = <1>;
8962306a36Sopenharmony_ci		clock-mult = <1>;
9062306a36Sopenharmony_ci		clocks = <&xtal24mhz>;
9162306a36Sopenharmony_ci	};
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci	kmiclk: kmiclk@24M {
9462306a36Sopenharmony_ci		#clock-cells = <0>;
9562306a36Sopenharmony_ci		compatible = "fixed-factor-clock";
9662306a36Sopenharmony_ci		clock-div = <1>;
9762306a36Sopenharmony_ci		clock-mult = <1>;
9862306a36Sopenharmony_ci		clocks = <&xtal24mhz>;
9962306a36Sopenharmony_ci	};
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci	sspclk: sspclk@24M {
10262306a36Sopenharmony_ci		#clock-cells = <0>;
10362306a36Sopenharmony_ci		compatible = "fixed-factor-clock";
10462306a36Sopenharmony_ci		clock-div = <1>;
10562306a36Sopenharmony_ci		clock-mult = <1>;
10662306a36Sopenharmony_ci		clocks = <&xtal24mhz>;
10762306a36Sopenharmony_ci	};
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci	uartclk: uartclk@24M {
11062306a36Sopenharmony_ci		#clock-cells = <0>;
11162306a36Sopenharmony_ci		compatible = "fixed-factor-clock";
11262306a36Sopenharmony_ci		clock-div = <1>;
11362306a36Sopenharmony_ci		clock-mult = <1>;
11462306a36Sopenharmony_ci		clocks = <&xtal24mhz>;
11562306a36Sopenharmony_ci	};
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci	wdogclk: wdogclk@24M {
11862306a36Sopenharmony_ci		#clock-cells = <0>;
11962306a36Sopenharmony_ci		compatible = "fixed-factor-clock";
12062306a36Sopenharmony_ci		clock-div = <1>;
12162306a36Sopenharmony_ci		clock-mult = <1>;
12262306a36Sopenharmony_ci		clocks = <&xtal24mhz>;
12362306a36Sopenharmony_ci	};
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci	/* FIXME: this actually hangs off the PLL clocks */
12662306a36Sopenharmony_ci	pclk: pclk@0 {
12762306a36Sopenharmony_ci		#clock-cells = <0>;
12862306a36Sopenharmony_ci		compatible = "fixed-clock";
12962306a36Sopenharmony_ci		clock-frequency = <0>;
13062306a36Sopenharmony_ci	};
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci	flash0@40000000 {
13362306a36Sopenharmony_ci		/* 2 * 32MiB NOR Flash memory */
13462306a36Sopenharmony_ci		compatible = "arm,versatile-flash", "cfi-flash";
13562306a36Sopenharmony_ci		reg = <0x40000000 0x04000000>;
13662306a36Sopenharmony_ci		bank-width = <4>;
13762306a36Sopenharmony_ci		partitions {
13862306a36Sopenharmony_ci			compatible = "arm,arm-firmware-suite";
13962306a36Sopenharmony_ci		};
14062306a36Sopenharmony_ci	};
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_ci	flash1@44000000 {
14362306a36Sopenharmony_ci		/* 2 * 32MiB NOR Flash memory */
14462306a36Sopenharmony_ci		compatible = "arm,versatile-flash", "cfi-flash";
14562306a36Sopenharmony_ci		reg = <0x44000000 0x04000000>;
14662306a36Sopenharmony_ci		bank-width = <4>;
14762306a36Sopenharmony_ci		partitions {
14862306a36Sopenharmony_ci			compatible = "arm,arm-firmware-suite";
14962306a36Sopenharmony_ci		};
15062306a36Sopenharmony_ci	};
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ci	/* SMSC 9118 ethernet with PHY and EEPROM */
15362306a36Sopenharmony_ci	ethernet: ethernet@4e000000 {
15462306a36Sopenharmony_ci		compatible = "smsc,lan9118", "smsc,lan9115";
15562306a36Sopenharmony_ci		reg = <0x4e000000 0x10000>;
15662306a36Sopenharmony_ci		phy-mode = "mii";
15762306a36Sopenharmony_ci		reg-io-width = <4>;
15862306a36Sopenharmony_ci		smsc,irq-active-high;
15962306a36Sopenharmony_ci		smsc,irq-push-pull;
16062306a36Sopenharmony_ci		vdd33a-supply = <&veth>;
16162306a36Sopenharmony_ci		vddvario-supply = <&veth>;
16262306a36Sopenharmony_ci	};
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_ci	usb: usb@4f000000 {
16562306a36Sopenharmony_ci		compatible = "nxp,usb-isp1761";
16662306a36Sopenharmony_ci		reg = <0x4f000000 0x20000>;
16762306a36Sopenharmony_ci		dr_mode = "peripheral";
16862306a36Sopenharmony_ci	};
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ci	bridge {
17162306a36Sopenharmony_ci		compatible = "ti,ths8134a", "ti,ths8134";
17262306a36Sopenharmony_ci		#address-cells = <1>;
17362306a36Sopenharmony_ci		#size-cells = <0>;
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ci		ports {
17662306a36Sopenharmony_ci			#address-cells = <1>;
17762306a36Sopenharmony_ci			#size-cells = <0>;
17862306a36Sopenharmony_ci
17962306a36Sopenharmony_ci			port@0 {
18062306a36Sopenharmony_ci				reg = <0>;
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_ci				vga_bridge_in: endpoint {
18362306a36Sopenharmony_ci					remote-endpoint = <&clcd_pads>;
18462306a36Sopenharmony_ci				};
18562306a36Sopenharmony_ci			};
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_ci			port@1 {
18862306a36Sopenharmony_ci				reg = <1>;
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_ci				vga_bridge_out: endpoint {
19162306a36Sopenharmony_ci					remote-endpoint = <&vga_con_in>;
19262306a36Sopenharmony_ci				};
19362306a36Sopenharmony_ci			};
19462306a36Sopenharmony_ci		};
19562306a36Sopenharmony_ci	};
19662306a36Sopenharmony_ci
19762306a36Sopenharmony_ci	vga {
19862306a36Sopenharmony_ci		/*
19962306a36Sopenharmony_ci		 * This DDC I2C is connected directly to the DVI portions
20062306a36Sopenharmony_ci		 * of the connector, so it's not really working when the
20162306a36Sopenharmony_ci		 * monitor is connected to the VGA connector.
20262306a36Sopenharmony_ci		 */
20362306a36Sopenharmony_ci		compatible = "vga-connector";
20462306a36Sopenharmony_ci		ddc-i2c-bus = <&i2c1>;
20562306a36Sopenharmony_ci
20662306a36Sopenharmony_ci		port {
20762306a36Sopenharmony_ci			vga_con_in: endpoint {
20862306a36Sopenharmony_ci				remote-endpoint = <&vga_bridge_out>;
20962306a36Sopenharmony_ci			};
21062306a36Sopenharmony_ci		};
21162306a36Sopenharmony_ci	};
21262306a36Sopenharmony_ci
21362306a36Sopenharmony_ci	soc: soc {
21462306a36Sopenharmony_ci		compatible = "arm,realview-pbx-soc", "simple-bus";
21562306a36Sopenharmony_ci		#address-cells = <1>;
21662306a36Sopenharmony_ci		#size-cells = <1>;
21762306a36Sopenharmony_ci		regmap = <&syscon>;
21862306a36Sopenharmony_ci		ranges;
21962306a36Sopenharmony_ci
22062306a36Sopenharmony_ci		syscon: syscon@10000000 {
22162306a36Sopenharmony_ci			compatible = "arm,realview-pbx-syscon", "syscon", "simple-mfd";
22262306a36Sopenharmony_ci			reg = <0x10000000 0x1000>;
22362306a36Sopenharmony_ci			ranges = <0x0 0x10000000 0x1000>;
22462306a36Sopenharmony_ci			#address-cells = <1>;
22562306a36Sopenharmony_ci			#size-cells = <1>;
22662306a36Sopenharmony_ci
22762306a36Sopenharmony_ci			led@8,0 {
22862306a36Sopenharmony_ci				compatible = "register-bit-led";
22962306a36Sopenharmony_ci				reg = <0x08 0x04>;
23062306a36Sopenharmony_ci				offset = <0x08>;
23162306a36Sopenharmony_ci				mask = <0x01>;
23262306a36Sopenharmony_ci				label = "versatile:0";
23362306a36Sopenharmony_ci				linux,default-trigger = "heartbeat";
23462306a36Sopenharmony_ci				default-state = "on";
23562306a36Sopenharmony_ci			};
23662306a36Sopenharmony_ci			led@8,1 {
23762306a36Sopenharmony_ci				compatible = "register-bit-led";
23862306a36Sopenharmony_ci				reg = <0x08 0x04>;
23962306a36Sopenharmony_ci				offset = <0x08>;
24062306a36Sopenharmony_ci				mask = <0x02>;
24162306a36Sopenharmony_ci				label = "versatile:1";
24262306a36Sopenharmony_ci				linux,default-trigger = "mmc0";
24362306a36Sopenharmony_ci				default-state = "off";
24462306a36Sopenharmony_ci			};
24562306a36Sopenharmony_ci			led@8,2 {
24662306a36Sopenharmony_ci				compatible = "register-bit-led";
24762306a36Sopenharmony_ci				reg = <0x08 0x04>;
24862306a36Sopenharmony_ci				offset = <0x08>;
24962306a36Sopenharmony_ci				mask = <0x04>;
25062306a36Sopenharmony_ci				label = "versatile:2";
25162306a36Sopenharmony_ci				linux,default-trigger = "cpu0";
25262306a36Sopenharmony_ci				default-state = "off";
25362306a36Sopenharmony_ci			};
25462306a36Sopenharmony_ci			led@8,3 {
25562306a36Sopenharmony_ci				compatible = "register-bit-led";
25662306a36Sopenharmony_ci				reg = <0x08 0x04>;
25762306a36Sopenharmony_ci				offset = <0x08>;
25862306a36Sopenharmony_ci				mask = <0x08>;
25962306a36Sopenharmony_ci				label = "versatile:3";
26062306a36Sopenharmony_ci				default-state = "off";
26162306a36Sopenharmony_ci			};
26262306a36Sopenharmony_ci			led@8,4 {
26362306a36Sopenharmony_ci				compatible = "register-bit-led";
26462306a36Sopenharmony_ci				reg = <0x08 0x04>;
26562306a36Sopenharmony_ci				offset = <0x08>;
26662306a36Sopenharmony_ci				mask = <0x10>;
26762306a36Sopenharmony_ci				label = "versatile:4";
26862306a36Sopenharmony_ci				default-state = "off";
26962306a36Sopenharmony_ci			};
27062306a36Sopenharmony_ci			led@8,5 {
27162306a36Sopenharmony_ci				compatible = "register-bit-led";
27262306a36Sopenharmony_ci				reg = <0x08 0x04>;
27362306a36Sopenharmony_ci				offset = <0x08>;
27462306a36Sopenharmony_ci				mask = <0x20>;
27562306a36Sopenharmony_ci				label = "versatile:5";
27662306a36Sopenharmony_ci				default-state = "off";
27762306a36Sopenharmony_ci			};
27862306a36Sopenharmony_ci			led@8,6 {
27962306a36Sopenharmony_ci				compatible = "register-bit-led";
28062306a36Sopenharmony_ci				reg = <0x08 0x04>;
28162306a36Sopenharmony_ci				offset = <0x08>;
28262306a36Sopenharmony_ci				mask = <0x40>;
28362306a36Sopenharmony_ci				label = "versatile:6";
28462306a36Sopenharmony_ci				default-state = "off";
28562306a36Sopenharmony_ci			};
28662306a36Sopenharmony_ci			led@8,7 {
28762306a36Sopenharmony_ci				compatible = "register-bit-led";
28862306a36Sopenharmony_ci				reg = <0x08 0x04>;
28962306a36Sopenharmony_ci				offset = <0x08>;
29062306a36Sopenharmony_ci				mask = <0x80>;
29162306a36Sopenharmony_ci				label = "versatile:7";
29262306a36Sopenharmony_ci				default-state = "off";
29362306a36Sopenharmony_ci			};
29462306a36Sopenharmony_ci			oscclk0: clock-controller@c {
29562306a36Sopenharmony_ci				compatible = "arm,syscon-icst307";
29662306a36Sopenharmony_ci				reg = <0x0c 0x04>;
29762306a36Sopenharmony_ci				#clock-cells = <0>;
29862306a36Sopenharmony_ci				lock-offset = <0x20>;
29962306a36Sopenharmony_ci				vco-offset = <0x0C>;
30062306a36Sopenharmony_ci				clocks = <&xtal24mhz>;
30162306a36Sopenharmony_ci			};
30262306a36Sopenharmony_ci			oscclk1: clock-controller@10 {
30362306a36Sopenharmony_ci				compatible = "arm,syscon-icst307";
30462306a36Sopenharmony_ci				reg = <0x10 0x04>;
30562306a36Sopenharmony_ci				#clock-cells = <0>;
30662306a36Sopenharmony_ci				lock-offset = <0x20>;
30762306a36Sopenharmony_ci				vco-offset = <0x10>;
30862306a36Sopenharmony_ci				clocks = <&xtal24mhz>;
30962306a36Sopenharmony_ci			};
31062306a36Sopenharmony_ci			oscclk2: clock-controller@14 {
31162306a36Sopenharmony_ci				compatible = "arm,syscon-icst307";
31262306a36Sopenharmony_ci				reg = <0x14 0x04>;
31362306a36Sopenharmony_ci				#clock-cells = <0>;
31462306a36Sopenharmony_ci				lock-offset = <0x20>;
31562306a36Sopenharmony_ci				vco-offset = <0x14>;
31662306a36Sopenharmony_ci				clocks = <&xtal24mhz>;
31762306a36Sopenharmony_ci			};
31862306a36Sopenharmony_ci			oscclk3: clock-controller@18 {
31962306a36Sopenharmony_ci				compatible = "arm,syscon-icst307";
32062306a36Sopenharmony_ci				reg = <0x18 0x04>;
32162306a36Sopenharmony_ci				#clock-cells = <0>;
32262306a36Sopenharmony_ci				lock-offset = <0x20>;
32362306a36Sopenharmony_ci				vco-offset = <0x18>;
32462306a36Sopenharmony_ci				clocks = <&xtal24mhz>;
32562306a36Sopenharmony_ci			};
32662306a36Sopenharmony_ci			oscclk4: clock-controller@1c {
32762306a36Sopenharmony_ci				compatible = "arm,syscon-icst307";
32862306a36Sopenharmony_ci				reg = <0x1c 0x04>;
32962306a36Sopenharmony_ci				#clock-cells = <0>;
33062306a36Sopenharmony_ci				lock-offset = <0x20>;
33162306a36Sopenharmony_ci				vco-offset = <0x1c>;
33262306a36Sopenharmony_ci				clocks = <&xtal24mhz>;
33362306a36Sopenharmony_ci			};
33462306a36Sopenharmony_ci		};
33562306a36Sopenharmony_ci
33662306a36Sopenharmony_ci		sp810_syscon0: sysctl@10001000 {
33762306a36Sopenharmony_ci			compatible = "arm,sp810", "arm,primecell";
33862306a36Sopenharmony_ci			reg = <0x10001000 0x1000>;
33962306a36Sopenharmony_ci			clocks = <&refclk32khz>, <&timclk>, <&xtal24mhz>;
34062306a36Sopenharmony_ci			clock-names = "refclk", "timclk", "apb_pclk";
34162306a36Sopenharmony_ci			#clock-cells = <1>;
34262306a36Sopenharmony_ci			clock-output-names = "timerclk0",
34362306a36Sopenharmony_ci					     "timerclk1",
34462306a36Sopenharmony_ci					     "timerclk2",
34562306a36Sopenharmony_ci					     "timerclk3";
34662306a36Sopenharmony_ci			assigned-clocks = <&sp810_syscon0 0>,
34762306a36Sopenharmony_ci					  <&sp810_syscon0 1>,
34862306a36Sopenharmony_ci					  <&sp810_syscon0 2>,
34962306a36Sopenharmony_ci					  <&sp810_syscon0 3>;
35062306a36Sopenharmony_ci			assigned-clock-parents = <&timclk>,
35162306a36Sopenharmony_ci					       <&timclk>,
35262306a36Sopenharmony_ci					       <&timclk>,
35362306a36Sopenharmony_ci					       <&timclk>;
35462306a36Sopenharmony_ci		};
35562306a36Sopenharmony_ci
35662306a36Sopenharmony_ci		i2c0: i2c@10002000 {
35762306a36Sopenharmony_ci			#address-cells = <1>;
35862306a36Sopenharmony_ci			#size-cells = <0>;
35962306a36Sopenharmony_ci			compatible = "arm,versatile-i2c";
36062306a36Sopenharmony_ci			reg = <0x10002000 0x1000>;
36162306a36Sopenharmony_ci
36262306a36Sopenharmony_ci			rtc@68 {
36362306a36Sopenharmony_ci				compatible = "dallas,ds1338";
36462306a36Sopenharmony_ci				reg = <0x68>;
36562306a36Sopenharmony_ci			};
36662306a36Sopenharmony_ci		};
36762306a36Sopenharmony_ci
36862306a36Sopenharmony_ci		serial0: serial@10009000 {
36962306a36Sopenharmony_ci			compatible = "arm,pl011", "arm,primecell";
37062306a36Sopenharmony_ci			reg = <0x10009000 0x1000>;
37162306a36Sopenharmony_ci			clocks = <&uartclk>, <&pclk>;
37262306a36Sopenharmony_ci			clock-names = "uartclk", "apb_pclk";
37362306a36Sopenharmony_ci		};
37462306a36Sopenharmony_ci
37562306a36Sopenharmony_ci		serial1: serial@1000a000 {
37662306a36Sopenharmony_ci			compatible = "arm,pl011", "arm,primecell";
37762306a36Sopenharmony_ci			reg = <0x1000a000 0x1000>;
37862306a36Sopenharmony_ci			clocks = <&uartclk>, <&pclk>;
37962306a36Sopenharmony_ci			clock-names = "uartclk", "apb_pclk";
38062306a36Sopenharmony_ci		};
38162306a36Sopenharmony_ci
38262306a36Sopenharmony_ci		serial2: serial@1000b000 {
38362306a36Sopenharmony_ci			compatible = "arm,pl011", "arm,primecell";
38462306a36Sopenharmony_ci			reg = <0x1000b000 0x1000>;
38562306a36Sopenharmony_ci			clocks = <&uartclk>, <&pclk>;
38662306a36Sopenharmony_ci			clock-names = "uartclk", "apb_pclk";
38762306a36Sopenharmony_ci		};
38862306a36Sopenharmony_ci
38962306a36Sopenharmony_ci		ssp: spi@1000d000 {
39062306a36Sopenharmony_ci			compatible = "arm,pl022", "arm,primecell";
39162306a36Sopenharmony_ci			reg = <0x1000d000 0x1000>;
39262306a36Sopenharmony_ci			clocks = <&sspclk>, <&pclk>;
39362306a36Sopenharmony_ci			clock-names = "sspclk", "apb_pclk";
39462306a36Sopenharmony_ci		};
39562306a36Sopenharmony_ci
39662306a36Sopenharmony_ci		wdog0: watchdog@1000f000 {
39762306a36Sopenharmony_ci			compatible = "arm,sp805", "arm,primecell";
39862306a36Sopenharmony_ci			reg = <0x1000f000 0x1000>;
39962306a36Sopenharmony_ci			clocks = <&wdogclk>, <&pclk>;
40062306a36Sopenharmony_ci			clock-names = "wdog_clk", "apb_pclk";
40162306a36Sopenharmony_ci			status = "disabled";
40262306a36Sopenharmony_ci		};
40362306a36Sopenharmony_ci
40462306a36Sopenharmony_ci		wdog1: watchdog@10010000 {
40562306a36Sopenharmony_ci			compatible = "arm,sp805", "arm,primecell";
40662306a36Sopenharmony_ci			reg = <0x10010000 0x1000>;
40762306a36Sopenharmony_ci			clocks = <&wdogclk>, <&pclk>;
40862306a36Sopenharmony_ci			clock-names = "wdog_clk", "apb_pclk";
40962306a36Sopenharmony_ci			status = "disabled";
41062306a36Sopenharmony_ci		};
41162306a36Sopenharmony_ci
41262306a36Sopenharmony_ci		timer01: timer@10011000 {
41362306a36Sopenharmony_ci			compatible = "arm,sp804", "arm,primecell";
41462306a36Sopenharmony_ci			reg = <0x10011000 0x1000>;
41562306a36Sopenharmony_ci			clocks = <&sp810_syscon0 0>,
41662306a36Sopenharmony_ci			         <&sp810_syscon0 1>,
41762306a36Sopenharmony_ci				 <&pclk>;
41862306a36Sopenharmony_ci			clock-names = "timerclk0",
41962306a36Sopenharmony_ci				    "timerclk1",
42062306a36Sopenharmony_ci				    "apb_pclk";
42162306a36Sopenharmony_ci		};
42262306a36Sopenharmony_ci
42362306a36Sopenharmony_ci		timer23: timer@10012000 {
42462306a36Sopenharmony_ci			compatible = "arm,sp804", "arm,primecell";
42562306a36Sopenharmony_ci			reg = <0x10012000 0x1000>;
42662306a36Sopenharmony_ci			clocks = <&sp810_syscon0 2>,
42762306a36Sopenharmony_ci			         <&sp810_syscon0 3>,
42862306a36Sopenharmony_ci				 <&pclk>;
42962306a36Sopenharmony_ci			clock-names = "timerclk2",
43062306a36Sopenharmony_ci				    "timerclk3",
43162306a36Sopenharmony_ci				    "apb_pclk";
43262306a36Sopenharmony_ci		};
43362306a36Sopenharmony_ci
43462306a36Sopenharmony_ci		gpio0: gpio@10013000 {
43562306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
43662306a36Sopenharmony_ci			reg = <0x10013000 0x1000>;
43762306a36Sopenharmony_ci			gpio-controller;
43862306a36Sopenharmony_ci			#gpio-cells = <2>;
43962306a36Sopenharmony_ci			interrupt-controller;
44062306a36Sopenharmony_ci			#interrupt-cells = <2>;
44162306a36Sopenharmony_ci			clocks = <&pclk>;
44262306a36Sopenharmony_ci			clock-names = "apb_pclk";
44362306a36Sopenharmony_ci		};
44462306a36Sopenharmony_ci
44562306a36Sopenharmony_ci		gpio1: gpio@10014000 {
44662306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
44762306a36Sopenharmony_ci			reg = <0x10014000 0x1000>;
44862306a36Sopenharmony_ci			gpio-controller;
44962306a36Sopenharmony_ci			#gpio-cells = <2>;
45062306a36Sopenharmony_ci			interrupt-controller;
45162306a36Sopenharmony_ci			#interrupt-cells = <2>;
45262306a36Sopenharmony_ci			clocks = <&pclk>;
45362306a36Sopenharmony_ci			clock-names = "apb_pclk";
45462306a36Sopenharmony_ci		};
45562306a36Sopenharmony_ci
45662306a36Sopenharmony_ci		gpio2: gpio@10015000 {
45762306a36Sopenharmony_ci			compatible = "arm,pl061", "arm,primecell";
45862306a36Sopenharmony_ci			reg = <0x10015000 0x1000>;
45962306a36Sopenharmony_ci			gpio-controller;
46062306a36Sopenharmony_ci			#gpio-cells = <2>;
46162306a36Sopenharmony_ci			interrupt-controller;
46262306a36Sopenharmony_ci			#interrupt-cells = <2>;
46362306a36Sopenharmony_ci			clocks = <&pclk>;
46462306a36Sopenharmony_ci			clock-names = "apb_pclk";
46562306a36Sopenharmony_ci		};
46662306a36Sopenharmony_ci
46762306a36Sopenharmony_ci		i2c1: i2c@10016000 {
46862306a36Sopenharmony_ci			#address-cells = <1>;
46962306a36Sopenharmony_ci			#size-cells = <0>;
47062306a36Sopenharmony_ci			compatible = "arm,versatile-i2c";
47162306a36Sopenharmony_ci			reg = <0x10016000 0x1000>;
47262306a36Sopenharmony_ci		};
47362306a36Sopenharmony_ci
47462306a36Sopenharmony_ci		rtc: rtc@10017000 {
47562306a36Sopenharmony_ci			compatible = "arm,pl031", "arm,primecell";
47662306a36Sopenharmony_ci			reg = <0x10017000 0x1000>;
47762306a36Sopenharmony_ci			clocks = <&pclk>;
47862306a36Sopenharmony_ci			clock-names = "apb_pclk";
47962306a36Sopenharmony_ci		};
48062306a36Sopenharmony_ci
48162306a36Sopenharmony_ci		timer45: timer@10018000 {
48262306a36Sopenharmony_ci			compatible = "arm,sp804", "arm,primecell";
48362306a36Sopenharmony_ci			reg = <0x10018000 0x1000>;
48462306a36Sopenharmony_ci			clocks = <&timclk>, <&timclk>, <&pclk>;
48562306a36Sopenharmony_ci			clock-names = "timerclk4", "timerclk5", "apb_pclk";
48662306a36Sopenharmony_ci		};
48762306a36Sopenharmony_ci
48862306a36Sopenharmony_ci		timer67: timer@10019000 {
48962306a36Sopenharmony_ci			compatible = "arm,sp804", "arm,primecell";
49062306a36Sopenharmony_ci			reg = <0x10019000 0x1000>;
49162306a36Sopenharmony_ci			clocks = <&timclk>, <&timclk>, <&pclk>;
49262306a36Sopenharmony_ci			clock-names = "timerclk6", "timerclk7", "apb_pclk";
49362306a36Sopenharmony_ci		};
49462306a36Sopenharmony_ci
49562306a36Sopenharmony_ci		sp810_syscon1: sysctl@1001a000 {
49662306a36Sopenharmony_ci			compatible = "arm,sp810", "arm,primecell";
49762306a36Sopenharmony_ci			reg = <0x1001a000 0x1000>;
49862306a36Sopenharmony_ci			clocks = <&refclk32khz>, <&timclk>, <&xtal24mhz>;
49962306a36Sopenharmony_ci			clock-names = "refclk", "timclk", "apb_pclk";
50062306a36Sopenharmony_ci			#clock-cells = <1>;
50162306a36Sopenharmony_ci			clock-output-names = "timerclk4",
50262306a36Sopenharmony_ci					     "timerclk5",
50362306a36Sopenharmony_ci					     "timerclk6",
50462306a36Sopenharmony_ci					     "timerclk7";
50562306a36Sopenharmony_ci			assigned-clocks = <&sp810_syscon1 0>,
50662306a36Sopenharmony_ci					  <&sp810_syscon1 1>,
50762306a36Sopenharmony_ci					  <&sp810_syscon1 2>,
50862306a36Sopenharmony_ci					  <&sp810_syscon1 3>;
50962306a36Sopenharmony_ci			assigned-clock-parents = <&timclk>,
51062306a36Sopenharmony_ci					       <&timclk>,
51162306a36Sopenharmony_ci					       <&timclk>,
51262306a36Sopenharmony_ci					       <&timclk>;
51362306a36Sopenharmony_ci		};
51462306a36Sopenharmony_ci	};
51562306a36Sopenharmony_ci
51662306a36Sopenharmony_ci
51762306a36Sopenharmony_ci	/* These peripherals are inside the FPGA */
51862306a36Sopenharmony_ci	fpga {
51962306a36Sopenharmony_ci		#address-cells = <1>;
52062306a36Sopenharmony_ci		#size-cells = <1>;
52162306a36Sopenharmony_ci		compatible = "simple-bus";
52262306a36Sopenharmony_ci		ranges;
52362306a36Sopenharmony_ci
52462306a36Sopenharmony_ci		aaci: aaci@10004000 {
52562306a36Sopenharmony_ci			compatible = "arm,pl041", "arm,primecell";
52662306a36Sopenharmony_ci			reg = <0x10004000 0x1000>;
52762306a36Sopenharmony_ci			clocks = <&pclk>;
52862306a36Sopenharmony_ci			clock-names = "apb_pclk";
52962306a36Sopenharmony_ci		};
53062306a36Sopenharmony_ci
53162306a36Sopenharmony_ci		mmc: mmcsd@10005000 {
53262306a36Sopenharmony_ci			compatible = "arm,pl18x", "arm,primecell";
53362306a36Sopenharmony_ci			reg = <0x10005000 0x1000>;
53462306a36Sopenharmony_ci
53562306a36Sopenharmony_ci			/* Due to frequent FIFO overruns, use just 500 kHz */
53662306a36Sopenharmony_ci			max-frequency = <500000>;
53762306a36Sopenharmony_ci			bus-width = <4>;
53862306a36Sopenharmony_ci			cap-sd-highspeed;
53962306a36Sopenharmony_ci			cap-mmc-highspeed;
54062306a36Sopenharmony_ci			clocks = <&mclk>, <&pclk>;
54162306a36Sopenharmony_ci			clock-names = "mclk", "apb_pclk";
54262306a36Sopenharmony_ci			vmmc-supply = <&vmmc>;
54362306a36Sopenharmony_ci			cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
54462306a36Sopenharmony_ci			wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
54562306a36Sopenharmony_ci		};
54662306a36Sopenharmony_ci
54762306a36Sopenharmony_ci		kmi0: kmi@10006000 {
54862306a36Sopenharmony_ci			compatible = "arm,pl050", "arm,primecell";
54962306a36Sopenharmony_ci			reg = <0x10006000 0x1000>;
55062306a36Sopenharmony_ci			clocks = <&kmiclk>, <&pclk>;
55162306a36Sopenharmony_ci			clock-names = "KMIREFCLK", "apb_pclk";
55262306a36Sopenharmony_ci		};
55362306a36Sopenharmony_ci
55462306a36Sopenharmony_ci		kmi1: kmi@10007000 {
55562306a36Sopenharmony_ci			compatible = "arm,pl050", "arm,primecell";
55662306a36Sopenharmony_ci			reg = <0x10007000 0x1000>;
55762306a36Sopenharmony_ci			clocks = <&kmiclk>, <&pclk>;
55862306a36Sopenharmony_ci			clock-names = "KMIREFCLK", "apb_pclk";
55962306a36Sopenharmony_ci		};
56062306a36Sopenharmony_ci
56162306a36Sopenharmony_ci		serial3: serial@1000c000 {
56262306a36Sopenharmony_ci			compatible = "arm,pl011", "arm,primecell";
56362306a36Sopenharmony_ci			reg = <0x1000c000 0x1000>;
56462306a36Sopenharmony_ci			clocks = <&uartclk>, <&pclk>;
56562306a36Sopenharmony_ci			clock-names = "uartclk", "apb_pclk";
56662306a36Sopenharmony_ci		};
56762306a36Sopenharmony_ci	};
56862306a36Sopenharmony_ci
56962306a36Sopenharmony_ci	/* These peripherals are inside the NEC ISSP */
57062306a36Sopenharmony_ci	issp {
57162306a36Sopenharmony_ci		#address-cells = <1>;
57262306a36Sopenharmony_ci		#size-cells = <1>;
57362306a36Sopenharmony_ci		compatible = "simple-bus";
57462306a36Sopenharmony_ci		ranges;
57562306a36Sopenharmony_ci
57662306a36Sopenharmony_ci		clcd: clcd@10020000 {
57762306a36Sopenharmony_ci			compatible = "arm,pl111", "arm,primecell";
57862306a36Sopenharmony_ci			reg = <0x10020000 0x1000>;
57962306a36Sopenharmony_ci			interrupt-names = "combined";
58062306a36Sopenharmony_ci			clocks = <&oscclk4>, <&pclk>;
58162306a36Sopenharmony_ci			clock-names = "clcdclk", "apb_pclk";
58262306a36Sopenharmony_ci			/* 1024x768 16bpp @65MHz works fine */
58362306a36Sopenharmony_ci			max-memory-bandwidth = <95000000>;
58462306a36Sopenharmony_ci
58562306a36Sopenharmony_ci			port {
58662306a36Sopenharmony_ci				clcd_pads: endpoint {
58762306a36Sopenharmony_ci					remote-endpoint = <&vga_bridge_in>;
58862306a36Sopenharmony_ci					arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
58962306a36Sopenharmony_ci				};
59062306a36Sopenharmony_ci			};
59162306a36Sopenharmony_ci		};
59262306a36Sopenharmony_ci	};
59362306a36Sopenharmony_ci};
594