162306a36Sopenharmony_ci/*
262306a36Sopenharmony_ci *  BSD LICENSE
362306a36Sopenharmony_ci *
462306a36Sopenharmony_ci *  Copyright(c) 2014 Broadcom Corporation.  All rights reserved.
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci *  Redistribution and use in source and binary forms, with or without
762306a36Sopenharmony_ci *  modification, are permitted provided that the following conditions
862306a36Sopenharmony_ci *  are met:
962306a36Sopenharmony_ci *
1062306a36Sopenharmony_ci *    * Redistributions of source code must retain the above copyright
1162306a36Sopenharmony_ci *      notice, this list of conditions and the following disclaimer.
1262306a36Sopenharmony_ci *    * Redistributions in binary form must reproduce the above copyright
1362306a36Sopenharmony_ci *      notice, this list of conditions and the following disclaimer in
1462306a36Sopenharmony_ci *      the documentation and/or other materials provided with the
1562306a36Sopenharmony_ci *      distribution.
1662306a36Sopenharmony_ci *    * Neither the name of Broadcom Corporation nor the names of its
1762306a36Sopenharmony_ci *      contributors may be used to endorse or promote products derived
1862306a36Sopenharmony_ci *      from this software without specific prior written permission.
1962306a36Sopenharmony_ci *
2062306a36Sopenharmony_ci *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
2162306a36Sopenharmony_ci *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
2262306a36Sopenharmony_ci *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
2362306a36Sopenharmony_ci *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
2462306a36Sopenharmony_ci *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
2562306a36Sopenharmony_ci *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
2662306a36Sopenharmony_ci *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2762306a36Sopenharmony_ci *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2862306a36Sopenharmony_ci *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2962306a36Sopenharmony_ci *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
3062306a36Sopenharmony_ci * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3162306a36Sopenharmony_ci */
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/arm-gic.h>
3462306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h>
3562306a36Sopenharmony_ci#include <dt-bindings/clock/bcm-cygnus.h>
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci/ {
3862306a36Sopenharmony_ci	#address-cells = <1>;
3962306a36Sopenharmony_ci	#size-cells = <1>;
4062306a36Sopenharmony_ci	compatible = "brcm,cygnus";
4162306a36Sopenharmony_ci	model = "Broadcom Cygnus SoC";
4262306a36Sopenharmony_ci	interrupt-parent = <&gic>;
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci	aliases {
4562306a36Sopenharmony_ci		ethernet0 = &eth0;
4662306a36Sopenharmony_ci	};
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci	memory@0 {
4962306a36Sopenharmony_ci		device_type = "memory";
5062306a36Sopenharmony_ci		reg = <0 0>;
5162306a36Sopenharmony_ci	};
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci	cpus {
5462306a36Sopenharmony_ci		#address-cells = <1>;
5562306a36Sopenharmony_ci		#size-cells = <0>;
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci		cpu@0 {
5862306a36Sopenharmony_ci			device_type = "cpu";
5962306a36Sopenharmony_ci			compatible = "arm,cortex-a9";
6062306a36Sopenharmony_ci			next-level-cache = <&L2>;
6162306a36Sopenharmony_ci			reg = <0x0>;
6262306a36Sopenharmony_ci		};
6362306a36Sopenharmony_ci	};
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci	/include/ "bcm-cygnus-clock.dtsi"
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci	pmu {
6862306a36Sopenharmony_ci		compatible = "arm,cortex-a9-pmu";
6962306a36Sopenharmony_ci		interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
7062306a36Sopenharmony_ci	};
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci	core@19000000 {
7362306a36Sopenharmony_ci		compatible = "simple-bus";
7462306a36Sopenharmony_ci		ranges = <0x00000000 0x19000000 0x1000000>;
7562306a36Sopenharmony_ci		#address-cells = <1>;
7662306a36Sopenharmony_ci		#size-cells = <1>;
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci		timer@20200 {
7962306a36Sopenharmony_ci			compatible = "arm,cortex-a9-global-timer";
8062306a36Sopenharmony_ci			reg = <0x20200 0x100>;
8162306a36Sopenharmony_ci			interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>;
8262306a36Sopenharmony_ci			clocks = <&periph_clk>;
8362306a36Sopenharmony_ci		};
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci		gic: interrupt-controller@21000 {
8662306a36Sopenharmony_ci			compatible = "arm,cortex-a9-gic";
8762306a36Sopenharmony_ci			#interrupt-cells = <3>;
8862306a36Sopenharmony_ci			#address-cells = <0>;
8962306a36Sopenharmony_ci			interrupt-controller;
9062306a36Sopenharmony_ci			reg = <0x21000 0x1000>,
9162306a36Sopenharmony_ci			      <0x20100 0x100>;
9262306a36Sopenharmony_ci		};
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci		L2: cache-controller@22000 {
9562306a36Sopenharmony_ci			compatible = "arm,pl310-cache";
9662306a36Sopenharmony_ci			reg = <0x22000 0x1000>;
9762306a36Sopenharmony_ci			cache-unified;
9862306a36Sopenharmony_ci			cache-level = <2>;
9962306a36Sopenharmony_ci		};
10062306a36Sopenharmony_ci	};
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci	axi {
10362306a36Sopenharmony_ci		compatible = "simple-bus";
10462306a36Sopenharmony_ci		ranges;
10562306a36Sopenharmony_ci		#address-cells = <1>;
10662306a36Sopenharmony_ci		#size-cells = <1>;
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci		otp: otp@301c800 {
10962306a36Sopenharmony_ci			compatible = "brcm,ocotp";
11062306a36Sopenharmony_ci			reg = <0x0301c800 0x2c>;
11162306a36Sopenharmony_ci			brcm,ocotp-size = <2048>;
11262306a36Sopenharmony_ci			status = "disabled";
11362306a36Sopenharmony_ci		};
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ci		pcie_phy: pcie_phy@301d0a0 {
11662306a36Sopenharmony_ci			compatible = "brcm,cygnus-pcie-phy";
11762306a36Sopenharmony_ci			reg = <0x0301d0a0 0x14>;
11862306a36Sopenharmony_ci			#address-cells = <1>;
11962306a36Sopenharmony_ci			#size-cells = <0>;
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ci			pcie0_phy: pcie-phy@0 {
12262306a36Sopenharmony_ci				reg = <0>;
12362306a36Sopenharmony_ci				#phy-cells = <0>;
12462306a36Sopenharmony_ci			};
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ci			pcie1_phy: pcie-phy@1 {
12762306a36Sopenharmony_ci				reg = <1>;
12862306a36Sopenharmony_ci				#phy-cells = <0>;
12962306a36Sopenharmony_ci			};
13062306a36Sopenharmony_ci		};
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci		pinctrl: pinctrl@301d0c8 {
13362306a36Sopenharmony_ci			compatible = "brcm,cygnus-pinmux";
13462306a36Sopenharmony_ci			reg = <0x0301d0c8 0x30>,
13562306a36Sopenharmony_ci			      <0x0301d24c 0x2c>;
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ci			spi_0: spi_0 {
13862306a36Sopenharmony_ci				function = "spi0";
13962306a36Sopenharmony_ci				groups = "spi0_grp";
14062306a36Sopenharmony_ci			};
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_ci			spi_1: spi_1 {
14362306a36Sopenharmony_ci				function = "spi1";
14462306a36Sopenharmony_ci				groups = "spi1_grp";
14562306a36Sopenharmony_ci			};
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ci			spi_2: spi_2 {
14862306a36Sopenharmony_ci				function = "spi2";
14962306a36Sopenharmony_ci				groups = "spi2_grp";
15062306a36Sopenharmony_ci			};
15162306a36Sopenharmony_ci		};
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci		mailbox: mailbox@3024024 {
15462306a36Sopenharmony_ci			compatible = "brcm,iproc-mailbox";
15562306a36Sopenharmony_ci			reg = <0x03024024 0x40>;
15662306a36Sopenharmony_ci			interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
15762306a36Sopenharmony_ci			#interrupt-cells = <1>;
15862306a36Sopenharmony_ci			interrupt-controller;
15962306a36Sopenharmony_ci			#mbox-cells = <1>;
16062306a36Sopenharmony_ci		};
16162306a36Sopenharmony_ci
16262306a36Sopenharmony_ci		gpio_crmu: gpio@3024800 {
16362306a36Sopenharmony_ci			compatible = "brcm,cygnus-crmu-gpio";
16462306a36Sopenharmony_ci			reg = <0x03024800 0x50>,
16562306a36Sopenharmony_ci			      <0x03024008 0x18>;
16662306a36Sopenharmony_ci			ngpios = <6>;
16762306a36Sopenharmony_ci			#gpio-cells = <2>;
16862306a36Sopenharmony_ci			gpio-controller;
16962306a36Sopenharmony_ci			interrupt-controller;
17062306a36Sopenharmony_ci			#interrupt-cells = <2>;
17162306a36Sopenharmony_ci			interrupt-parent = <&mailbox>;
17262306a36Sopenharmony_ci			interrupts = <0>;
17362306a36Sopenharmony_ci		};
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ci		mdio: mdio@18002000 {
17662306a36Sopenharmony_ci			compatible = "brcm,iproc-mdio";
17762306a36Sopenharmony_ci			reg = <0x18002000 0x8>;
17862306a36Sopenharmony_ci			#size-cells = <0>;
17962306a36Sopenharmony_ci			#address-cells = <1>;
18062306a36Sopenharmony_ci			status = "disabled";
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_ci			gphy0: ethernet-phy@0 {
18362306a36Sopenharmony_ci				reg = <0>;
18462306a36Sopenharmony_ci			};
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_ci			gphy1: ethernet-phy@1 {
18762306a36Sopenharmony_ci				reg = <1>;
18862306a36Sopenharmony_ci			};
18962306a36Sopenharmony_ci		};
19062306a36Sopenharmony_ci
19162306a36Sopenharmony_ci		switch: switch@18007000 {
19262306a36Sopenharmony_ci			compatible = "brcm,bcm11360-srab", "brcm,cygnus-srab";
19362306a36Sopenharmony_ci			reg = <0x18007000 0x1000>;
19462306a36Sopenharmony_ci			status = "disabled";
19562306a36Sopenharmony_ci
19662306a36Sopenharmony_ci			ports {
19762306a36Sopenharmony_ci				#address-cells = <1>;
19862306a36Sopenharmony_ci				#size-cells = <0>;
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ci				port@0 {
20162306a36Sopenharmony_ci					reg = <0>;
20262306a36Sopenharmony_ci					phy-handle = <&gphy0>;
20362306a36Sopenharmony_ci					phy-mode = "rgmii";
20462306a36Sopenharmony_ci				};
20562306a36Sopenharmony_ci
20662306a36Sopenharmony_ci				port@1 {
20762306a36Sopenharmony_ci					reg = <1>;
20862306a36Sopenharmony_ci					phy-handle = <&gphy1>;
20962306a36Sopenharmony_ci					phy-mode = "rgmii";
21062306a36Sopenharmony_ci				};
21162306a36Sopenharmony_ci
21262306a36Sopenharmony_ci				port@8 {
21362306a36Sopenharmony_ci					reg = <8>;
21462306a36Sopenharmony_ci					label = "cpu";
21562306a36Sopenharmony_ci					ethernet = <&eth0>;
21662306a36Sopenharmony_ci					fixed-link {
21762306a36Sopenharmony_ci						speed = <1000>;
21862306a36Sopenharmony_ci						full-duplex;
21962306a36Sopenharmony_ci					};
22062306a36Sopenharmony_ci				};
22162306a36Sopenharmony_ci			};
22262306a36Sopenharmony_ci		};
22362306a36Sopenharmony_ci
22462306a36Sopenharmony_ci		i2c0: i2c@18008000 {
22562306a36Sopenharmony_ci			compatible = "brcm,cygnus-iproc-i2c", "brcm,iproc-i2c";
22662306a36Sopenharmony_ci			reg = <0x18008000 0x100>;
22762306a36Sopenharmony_ci			#address-cells = <1>;
22862306a36Sopenharmony_ci			#size-cells = <0>;
22962306a36Sopenharmony_ci			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
23062306a36Sopenharmony_ci			clock-frequency = <100000>;
23162306a36Sopenharmony_ci			status = "disabled";
23262306a36Sopenharmony_ci		};
23362306a36Sopenharmony_ci
23462306a36Sopenharmony_ci		wdt0: wdt@18009000 {
23562306a36Sopenharmony_ci			compatible = "arm,sp805" , "arm,primecell";
23662306a36Sopenharmony_ci			reg = <0x18009000 0x1000>;
23762306a36Sopenharmony_ci			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
23862306a36Sopenharmony_ci			clocks = <&axi81_clk>, <&axi81_clk>;
23962306a36Sopenharmony_ci			clock-names = "wdog_clk", "apb_pclk";
24062306a36Sopenharmony_ci		};
24162306a36Sopenharmony_ci
24262306a36Sopenharmony_ci		gpio_ccm: gpio@1800a000 {
24362306a36Sopenharmony_ci			compatible = "brcm,cygnus-ccm-gpio";
24462306a36Sopenharmony_ci			reg = <0x1800a000 0x50>,
24562306a36Sopenharmony_ci			      <0x0301d164 0x20>;
24662306a36Sopenharmony_ci			ngpios = <24>;
24762306a36Sopenharmony_ci			#gpio-cells = <2>;
24862306a36Sopenharmony_ci			gpio-controller;
24962306a36Sopenharmony_ci			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
25062306a36Sopenharmony_ci			interrupt-controller;
25162306a36Sopenharmony_ci			#interrupt-cells = <2>;
25262306a36Sopenharmony_ci		};
25362306a36Sopenharmony_ci
25462306a36Sopenharmony_ci		i2c1: i2c@1800b000 {
25562306a36Sopenharmony_ci			compatible = "brcm,cygnus-iproc-i2c", "brcm,iproc-i2c";
25662306a36Sopenharmony_ci			reg = <0x1800b000 0x100>;
25762306a36Sopenharmony_ci			#address-cells = <1>;
25862306a36Sopenharmony_ci			#size-cells = <0>;
25962306a36Sopenharmony_ci			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
26062306a36Sopenharmony_ci			clock-frequency = <100000>;
26162306a36Sopenharmony_ci			status = "disabled";
26262306a36Sopenharmony_ci		};
26362306a36Sopenharmony_ci
26462306a36Sopenharmony_ci		pcie0: pcie@18012000 {
26562306a36Sopenharmony_ci			compatible = "brcm,iproc-pcie";
26662306a36Sopenharmony_ci			reg = <0x18012000 0x1000>;
26762306a36Sopenharmony_ci
26862306a36Sopenharmony_ci			#interrupt-cells = <1>;
26962306a36Sopenharmony_ci			interrupt-map-mask = <0 0 0 0>;
27062306a36Sopenharmony_ci			interrupt-map = <0 0 0 0 &gic GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
27162306a36Sopenharmony_ci
27262306a36Sopenharmony_ci			linux,pci-domain = <0>;
27362306a36Sopenharmony_ci
27462306a36Sopenharmony_ci			bus-range = <0x00 0xff>;
27562306a36Sopenharmony_ci
27662306a36Sopenharmony_ci			#address-cells = <3>;
27762306a36Sopenharmony_ci			#size-cells = <2>;
27862306a36Sopenharmony_ci			device_type = "pci";
27962306a36Sopenharmony_ci			ranges = <0x81000000 0 0	  0x28000000 0 0x00010000>,
28062306a36Sopenharmony_ci				 <0x82000000 0 0x20000000 0x20000000 0 0x04000000>;
28162306a36Sopenharmony_ci
28262306a36Sopenharmony_ci			phys = <&pcie0_phy>;
28362306a36Sopenharmony_ci			phy-names = "pcie-phy";
28462306a36Sopenharmony_ci
28562306a36Sopenharmony_ci			status = "disabled";
28662306a36Sopenharmony_ci
28762306a36Sopenharmony_ci			msi-parent = <&msi0>;
28862306a36Sopenharmony_ci			msi0: msi {
28962306a36Sopenharmony_ci				compatible = "brcm,iproc-msi";
29062306a36Sopenharmony_ci				msi-controller;
29162306a36Sopenharmony_ci				interrupt-parent = <&gic>;
29262306a36Sopenharmony_ci				interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
29362306a36Sopenharmony_ci					     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
29462306a36Sopenharmony_ci					     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
29562306a36Sopenharmony_ci					     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
29662306a36Sopenharmony_ci			};
29762306a36Sopenharmony_ci		};
29862306a36Sopenharmony_ci
29962306a36Sopenharmony_ci		pcie1: pcie@18013000 {
30062306a36Sopenharmony_ci			compatible = "brcm,iproc-pcie";
30162306a36Sopenharmony_ci			reg = <0x18013000 0x1000>;
30262306a36Sopenharmony_ci
30362306a36Sopenharmony_ci			#interrupt-cells = <1>;
30462306a36Sopenharmony_ci			interrupt-map-mask = <0 0 0 0>;
30562306a36Sopenharmony_ci			interrupt-map = <0 0 0 0 &gic GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
30662306a36Sopenharmony_ci
30762306a36Sopenharmony_ci			linux,pci-domain = <1>;
30862306a36Sopenharmony_ci
30962306a36Sopenharmony_ci			bus-range = <0x00 0xff>;
31062306a36Sopenharmony_ci
31162306a36Sopenharmony_ci			#address-cells = <3>;
31262306a36Sopenharmony_ci			#size-cells = <2>;
31362306a36Sopenharmony_ci			device_type = "pci";
31462306a36Sopenharmony_ci			ranges = <0x81000000 0 0	  0x48000000 0 0x00010000>,
31562306a36Sopenharmony_ci				 <0x82000000 0 0x40000000 0x40000000 0 0x04000000>;
31662306a36Sopenharmony_ci
31762306a36Sopenharmony_ci			phys = <&pcie1_phy>;
31862306a36Sopenharmony_ci			phy-names = "pcie-phy";
31962306a36Sopenharmony_ci
32062306a36Sopenharmony_ci			status = "disabled";
32162306a36Sopenharmony_ci
32262306a36Sopenharmony_ci			msi-parent = <&msi1>;
32362306a36Sopenharmony_ci			msi1: msi {
32462306a36Sopenharmony_ci				compatible = "brcm,iproc-msi";
32562306a36Sopenharmony_ci				msi-controller;
32662306a36Sopenharmony_ci				interrupt-parent = <&gic>;
32762306a36Sopenharmony_ci				interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
32862306a36Sopenharmony_ci					     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
32962306a36Sopenharmony_ci					     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
33062306a36Sopenharmony_ci					     <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
33162306a36Sopenharmony_ci			};
33262306a36Sopenharmony_ci		};
33362306a36Sopenharmony_ci
33462306a36Sopenharmony_ci		dma0: dma@18018000 {
33562306a36Sopenharmony_ci			compatible = "arm,pl330", "arm,primecell";
33662306a36Sopenharmony_ci			reg = <0x18018000 0x1000>;
33762306a36Sopenharmony_ci			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
33862306a36Sopenharmony_ci				     <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
33962306a36Sopenharmony_ci				     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
34062306a36Sopenharmony_ci				     <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
34162306a36Sopenharmony_ci				     <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
34262306a36Sopenharmony_ci				     <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
34362306a36Sopenharmony_ci				     <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
34462306a36Sopenharmony_ci				     <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
34562306a36Sopenharmony_ci				     <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
34662306a36Sopenharmony_ci			clocks = <&apb_clk>;
34762306a36Sopenharmony_ci			clock-names = "apb_pclk";
34862306a36Sopenharmony_ci			#dma-cells = <1>;
34962306a36Sopenharmony_ci		};
35062306a36Sopenharmony_ci
35162306a36Sopenharmony_ci		uart0: serial@18020000 {
35262306a36Sopenharmony_ci			compatible = "snps,dw-apb-uart";
35362306a36Sopenharmony_ci			reg = <0x18020000 0x100>;
35462306a36Sopenharmony_ci			reg-shift = <2>;
35562306a36Sopenharmony_ci			reg-io-width = <4>;
35662306a36Sopenharmony_ci			interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
35762306a36Sopenharmony_ci			clocks = <&axi81_clk>;
35862306a36Sopenharmony_ci			clock-frequency = <100000000>;
35962306a36Sopenharmony_ci			status = "disabled";
36062306a36Sopenharmony_ci		};
36162306a36Sopenharmony_ci
36262306a36Sopenharmony_ci		uart1: serial@18021000 {
36362306a36Sopenharmony_ci			compatible = "snps,dw-apb-uart";
36462306a36Sopenharmony_ci			reg = <0x18021000 0x100>;
36562306a36Sopenharmony_ci			reg-shift = <2>;
36662306a36Sopenharmony_ci			reg-io-width = <4>;
36762306a36Sopenharmony_ci			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
36862306a36Sopenharmony_ci			clocks = <&axi81_clk>;
36962306a36Sopenharmony_ci			clock-frequency = <100000000>;
37062306a36Sopenharmony_ci			status = "disabled";
37162306a36Sopenharmony_ci		};
37262306a36Sopenharmony_ci
37362306a36Sopenharmony_ci		uart2: serial@18022000 {
37462306a36Sopenharmony_ci			compatible = "snps,dw-apb-uart";
37562306a36Sopenharmony_ci			reg = <0x18022000 0x100>;
37662306a36Sopenharmony_ci			reg-shift = <2>;
37762306a36Sopenharmony_ci			reg-io-width = <4>;
37862306a36Sopenharmony_ci			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
37962306a36Sopenharmony_ci			clocks = <&axi81_clk>;
38062306a36Sopenharmony_ci			clock-frequency = <100000000>;
38162306a36Sopenharmony_ci			status = "disabled";
38262306a36Sopenharmony_ci		};
38362306a36Sopenharmony_ci
38462306a36Sopenharmony_ci		uart3: serial@18023000 {
38562306a36Sopenharmony_ci			compatible = "snps,dw-apb-uart";
38662306a36Sopenharmony_ci			reg = <0x18023000 0x100>;
38762306a36Sopenharmony_ci			reg-shift = <2>;
38862306a36Sopenharmony_ci			reg-io-width = <4>;
38962306a36Sopenharmony_ci			interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
39062306a36Sopenharmony_ci			clocks = <&axi81_clk>;
39162306a36Sopenharmony_ci			clock-frequency = <100000000>;
39262306a36Sopenharmony_ci			status = "disabled";
39362306a36Sopenharmony_ci		};
39462306a36Sopenharmony_ci
39562306a36Sopenharmony_ci		spi0: spi@18028000 {
39662306a36Sopenharmony_ci			compatible = "arm,pl022", "arm,primecell";
39762306a36Sopenharmony_ci			reg = <0x18028000 0x1000>;
39862306a36Sopenharmony_ci			#address-cells = <1>;
39962306a36Sopenharmony_ci			#size-cells = <0>;
40062306a36Sopenharmony_ci			interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
40162306a36Sopenharmony_ci			pinctrl-0 = <&spi_0>;
40262306a36Sopenharmony_ci			clocks = <&axi81_clk>, <&axi81_clk>;
40362306a36Sopenharmony_ci			clock-names = "sspclk", "apb_pclk";
40462306a36Sopenharmony_ci			status = "disabled";
40562306a36Sopenharmony_ci		};
40662306a36Sopenharmony_ci
40762306a36Sopenharmony_ci		spi1: spi@18029000 {
40862306a36Sopenharmony_ci			compatible = "arm,pl022", "arm,primecell";
40962306a36Sopenharmony_ci			reg = <0x18029000 0x1000>;
41062306a36Sopenharmony_ci			#address-cells = <1>;
41162306a36Sopenharmony_ci			#size-cells = <0>;
41262306a36Sopenharmony_ci			interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
41362306a36Sopenharmony_ci			pinctrl-0 = <&spi_1>;
41462306a36Sopenharmony_ci			clocks = <&axi81_clk>, <&axi81_clk>;
41562306a36Sopenharmony_ci			clock-names = "sspclk", "apb_pclk";
41662306a36Sopenharmony_ci			status = "disabled";
41762306a36Sopenharmony_ci		};
41862306a36Sopenharmony_ci
41962306a36Sopenharmony_ci		spi2: spi@1802a000 {
42062306a36Sopenharmony_ci			compatible = "arm,pl022", "arm,primecell";
42162306a36Sopenharmony_ci			reg = <0x1802a000 0x1000>;
42262306a36Sopenharmony_ci			#address-cells = <1>;
42362306a36Sopenharmony_ci			#size-cells = <0>;
42462306a36Sopenharmony_ci			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
42562306a36Sopenharmony_ci			pinctrl-0 = <&spi_2>;
42662306a36Sopenharmony_ci			clocks = <&axi81_clk>, <&axi81_clk>;
42762306a36Sopenharmony_ci			clock-names = "sspclk", "apb_pclk";
42862306a36Sopenharmony_ci			status = "disabled";
42962306a36Sopenharmony_ci		};
43062306a36Sopenharmony_ci
43162306a36Sopenharmony_ci		rng: rng@18032000 {
43262306a36Sopenharmony_ci			compatible = "brcm,iproc-rng200";
43362306a36Sopenharmony_ci			reg = <0x18032000 0x28>;
43462306a36Sopenharmony_ci		};
43562306a36Sopenharmony_ci
43662306a36Sopenharmony_ci		sdhci0: sdhci@18041000 {
43762306a36Sopenharmony_ci			compatible = "brcm,sdhci-iproc-cygnus";
43862306a36Sopenharmony_ci			reg = <0x18041000 0x100>;
43962306a36Sopenharmony_ci			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
44062306a36Sopenharmony_ci			clocks = <&lcpll0 BCM_CYGNUS_LCPLL0_SDIO_CLK>;
44162306a36Sopenharmony_ci			bus-width = <4>;
44262306a36Sopenharmony_ci			sdhci,auto-cmd12;
44362306a36Sopenharmony_ci			status = "disabled";
44462306a36Sopenharmony_ci		};
44562306a36Sopenharmony_ci
44662306a36Sopenharmony_ci		eth0: ethernet@18042000 {
44762306a36Sopenharmony_ci			compatible = "brcm,amac";
44862306a36Sopenharmony_ci			reg = <0x18042000 0x1000>,
44962306a36Sopenharmony_ci			      <0x18110000 0x1000>;
45062306a36Sopenharmony_ci			reg-names = "amac_base", "idm_base";
45162306a36Sopenharmony_ci			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
45262306a36Sopenharmony_ci			status = "disabled";
45362306a36Sopenharmony_ci		};
45462306a36Sopenharmony_ci
45562306a36Sopenharmony_ci		sdhci1: sdhci@18043000 {
45662306a36Sopenharmony_ci			compatible = "brcm,sdhci-iproc-cygnus";
45762306a36Sopenharmony_ci			reg = <0x18043000 0x100>;
45862306a36Sopenharmony_ci			interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
45962306a36Sopenharmony_ci			clocks = <&lcpll0 BCM_CYGNUS_LCPLL0_SDIO_CLK>;
46062306a36Sopenharmony_ci			bus-width = <4>;
46162306a36Sopenharmony_ci			sdhci,auto-cmd12;
46262306a36Sopenharmony_ci			status = "disabled";
46362306a36Sopenharmony_ci		};
46462306a36Sopenharmony_ci
46562306a36Sopenharmony_ci		nand_controller: nand-controller@18046000 {
46662306a36Sopenharmony_ci			compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
46762306a36Sopenharmony_ci			reg = <0x18046000 0x600>, <0xf8105408 0x600>,
46862306a36Sopenharmony_ci			      <0x18046f00 0x20>;
46962306a36Sopenharmony_ci			reg-names = "nand", "iproc-idm", "iproc-ext";
47062306a36Sopenharmony_ci			interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
47162306a36Sopenharmony_ci
47262306a36Sopenharmony_ci			#address-cells = <1>;
47362306a36Sopenharmony_ci			#size-cells = <0>;
47462306a36Sopenharmony_ci
47562306a36Sopenharmony_ci			brcm,nand-has-wp;
47662306a36Sopenharmony_ci		};
47762306a36Sopenharmony_ci
47862306a36Sopenharmony_ci		ehci0: usb@18048000 {
47962306a36Sopenharmony_ci			compatible = "generic-ehci";
48062306a36Sopenharmony_ci			reg = <0x18048000 0x100>;
48162306a36Sopenharmony_ci			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
48262306a36Sopenharmony_ci			status = "disabled";
48362306a36Sopenharmony_ci		};
48462306a36Sopenharmony_ci
48562306a36Sopenharmony_ci		ohci0: usb@18048800 {
48662306a36Sopenharmony_ci			compatible = "generic-ohci";
48762306a36Sopenharmony_ci			reg = <0x18048800 0x100>;
48862306a36Sopenharmony_ci			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
48962306a36Sopenharmony_ci			status = "disabled";
49062306a36Sopenharmony_ci		};
49162306a36Sopenharmony_ci
49262306a36Sopenharmony_ci		clcd: clcd@180a0000 {
49362306a36Sopenharmony_ci			compatible = "arm,pl111", "arm,primecell";
49462306a36Sopenharmony_ci			reg = <0x180a0000 0x1000>;
49562306a36Sopenharmony_ci			interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
49662306a36Sopenharmony_ci			interrupt-names = "combined";
49762306a36Sopenharmony_ci			clocks = <&axi41_clk>, <&apb_clk>;
49862306a36Sopenharmony_ci			clock-names = "clcdclk", "apb_pclk";
49962306a36Sopenharmony_ci			status = "disabled";
50062306a36Sopenharmony_ci		};
50162306a36Sopenharmony_ci
50262306a36Sopenharmony_ci		v3d: v3d@180a2000 {
50362306a36Sopenharmony_ci			compatible = "brcm,cygnus-v3d";
50462306a36Sopenharmony_ci			reg = <0x180a2000 0x1000>;
50562306a36Sopenharmony_ci			clocks = <&mipipll BCM_CYGNUS_MIPIPLL_CH2_V3D>;
50662306a36Sopenharmony_ci			clock-names = "v3d_clk";
50762306a36Sopenharmony_ci			interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
50862306a36Sopenharmony_ci			status = "disabled";
50962306a36Sopenharmony_ci		};
51062306a36Sopenharmony_ci
51162306a36Sopenharmony_ci		vc4: gpu {
51262306a36Sopenharmony_ci			compatible = "brcm,cygnus-vc4";
51362306a36Sopenharmony_ci		};
51462306a36Sopenharmony_ci
51562306a36Sopenharmony_ci		gpio_asiu: gpio@180a5000 {
51662306a36Sopenharmony_ci			compatible = "brcm,cygnus-asiu-gpio";
51762306a36Sopenharmony_ci			reg = <0x180a5000 0x668>;
51862306a36Sopenharmony_ci			ngpios = <146>;
51962306a36Sopenharmony_ci			#gpio-cells = <2>;
52062306a36Sopenharmony_ci			gpio-controller;
52162306a36Sopenharmony_ci
52262306a36Sopenharmony_ci			interrupt-controller;
52362306a36Sopenharmony_ci			#interrupt-cells = <2>;
52462306a36Sopenharmony_ci			interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
52562306a36Sopenharmony_ci			gpio-ranges = <&pinctrl 0 42 1>,
52662306a36Sopenharmony_ci					<&pinctrl 1 44 3>,
52762306a36Sopenharmony_ci					<&pinctrl 4 48 1>,
52862306a36Sopenharmony_ci					<&pinctrl 5 50 3>,
52962306a36Sopenharmony_ci					<&pinctrl 8 126 1>,
53062306a36Sopenharmony_ci					<&pinctrl 9 155 1>,
53162306a36Sopenharmony_ci					<&pinctrl 10 152 1>,
53262306a36Sopenharmony_ci					<&pinctrl 11 154 1>,
53362306a36Sopenharmony_ci					<&pinctrl 12 153 1>,
53462306a36Sopenharmony_ci					<&pinctrl 13 127 3>,
53562306a36Sopenharmony_ci					<&pinctrl 16 140 1>,
53662306a36Sopenharmony_ci					<&pinctrl 17 145 7>,
53762306a36Sopenharmony_ci					<&pinctrl 24 130 10>,
53862306a36Sopenharmony_ci					<&pinctrl 34 141 4>,
53962306a36Sopenharmony_ci					<&pinctrl 38 54 1>,
54062306a36Sopenharmony_ci					<&pinctrl 39 56 3>,
54162306a36Sopenharmony_ci					<&pinctrl 42 60 3>,
54262306a36Sopenharmony_ci					<&pinctrl 45 64 3>,
54362306a36Sopenharmony_ci					<&pinctrl 48 68 2>,
54462306a36Sopenharmony_ci					<&pinctrl 50 84 6>,
54562306a36Sopenharmony_ci					<&pinctrl 56 94 6>,
54662306a36Sopenharmony_ci					<&pinctrl 62 72 1>,
54762306a36Sopenharmony_ci					<&pinctrl 63 70 1>,
54862306a36Sopenharmony_ci					<&pinctrl 64 80 1>,
54962306a36Sopenharmony_ci					<&pinctrl 65 74 3>,
55062306a36Sopenharmony_ci					<&pinctrl 68 78 1>,
55162306a36Sopenharmony_ci					<&pinctrl 69 82 1>,
55262306a36Sopenharmony_ci					<&pinctrl 70 156 17>,
55362306a36Sopenharmony_ci					<&pinctrl 87 104 12>,
55462306a36Sopenharmony_ci					<&pinctrl 99 102 2>,
55562306a36Sopenharmony_ci					<&pinctrl 101 90 4>,
55662306a36Sopenharmony_ci					<&pinctrl 105 116 6>,
55762306a36Sopenharmony_ci					<&pinctrl 111 100 2>,
55862306a36Sopenharmony_ci					<&pinctrl 113 122 4>,
55962306a36Sopenharmony_ci					<&pinctrl 123 11 1>,
56062306a36Sopenharmony_ci					<&pinctrl 124 38 4>,
56162306a36Sopenharmony_ci					<&pinctrl 128 43 1>,
56262306a36Sopenharmony_ci					<&pinctrl 129 47 1>,
56362306a36Sopenharmony_ci					<&pinctrl 130 49 1>,
56462306a36Sopenharmony_ci					<&pinctrl 131 53 1>,
56562306a36Sopenharmony_ci					<&pinctrl 132 55 1>,
56662306a36Sopenharmony_ci					<&pinctrl 133 59 1>,
56762306a36Sopenharmony_ci					<&pinctrl 134 63 1>,
56862306a36Sopenharmony_ci					<&pinctrl 135 67 1>,
56962306a36Sopenharmony_ci					<&pinctrl 136 71 1>,
57062306a36Sopenharmony_ci					<&pinctrl 137 73 1>,
57162306a36Sopenharmony_ci					<&pinctrl 138 77 1>,
57262306a36Sopenharmony_ci					<&pinctrl 139 79 1>,
57362306a36Sopenharmony_ci					<&pinctrl 140 81 1>,
57462306a36Sopenharmony_ci					<&pinctrl 141 83 1>,
57562306a36Sopenharmony_ci					<&pinctrl 142 10 1>;
57662306a36Sopenharmony_ci		};
57762306a36Sopenharmony_ci
57862306a36Sopenharmony_ci		ts_adc_syscon: ts_adc_syscon@180a6000 {
57962306a36Sopenharmony_ci			compatible = "brcm,iproc-ts-adc-syscon", "syscon";
58062306a36Sopenharmony_ci			reg = <0x180a6000 0xc30>;
58162306a36Sopenharmony_ci		};
58262306a36Sopenharmony_ci
58362306a36Sopenharmony_ci		touchscreen: touchscreen@180a6000 {
58462306a36Sopenharmony_ci			compatible = "brcm,iproc-touchscreen";
58562306a36Sopenharmony_ci			#address-cells = <1>;
58662306a36Sopenharmony_ci			#size-cells = <1>;
58762306a36Sopenharmony_ci			ts_syscon = <&ts_adc_syscon>;
58862306a36Sopenharmony_ci			clocks = <&asiu_clks BCM_CYGNUS_ASIU_ADC_CLK>;
58962306a36Sopenharmony_ci			clock-names = "tsc_clk";
59062306a36Sopenharmony_ci			interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
59162306a36Sopenharmony_ci			status = "disabled";
59262306a36Sopenharmony_ci		};
59362306a36Sopenharmony_ci
59462306a36Sopenharmony_ci		adc: adc@180a6000 {
59562306a36Sopenharmony_ci			compatible = "brcm,iproc-static-adc";
59662306a36Sopenharmony_ci			#io-channel-cells = <1>;
59762306a36Sopenharmony_ci			adc-syscon = <&ts_adc_syscon>;
59862306a36Sopenharmony_ci			clocks = <&asiu_clks BCM_CYGNUS_ASIU_ADC_CLK>;
59962306a36Sopenharmony_ci			clock-names = "tsc_clk";
60062306a36Sopenharmony_ci			interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
60162306a36Sopenharmony_ci			status = "disabled";
60262306a36Sopenharmony_ci		};
60362306a36Sopenharmony_ci
60462306a36Sopenharmony_ci		pwm: pwm@180aa500 {
60562306a36Sopenharmony_ci			compatible = "brcm,kona-pwm";
60662306a36Sopenharmony_ci			reg = <0x180aa500 0xc4>;
60762306a36Sopenharmony_ci			#pwm-cells = <3>;
60862306a36Sopenharmony_ci			clocks = <&asiu_clks BCM_CYGNUS_ASIU_PWM_CLK>;
60962306a36Sopenharmony_ci			status = "disabled";
61062306a36Sopenharmony_ci		};
61162306a36Sopenharmony_ci
61262306a36Sopenharmony_ci		keypad: keypad@180ac000 {
61362306a36Sopenharmony_ci			compatible = "brcm,bcm-keypad";
61462306a36Sopenharmony_ci			reg = <0x180ac000 0x14c>;
61562306a36Sopenharmony_ci			interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
61662306a36Sopenharmony_ci			clocks = <&asiu_clks BCM_CYGNUS_ASIU_KEYPAD_CLK>;
61762306a36Sopenharmony_ci			clock-names = "peri_clk";
61862306a36Sopenharmony_ci			clock-frequency = <31250>;
61962306a36Sopenharmony_ci			pull-up-enabled;
62062306a36Sopenharmony_ci			col-debounce-filter-period = <0>;
62162306a36Sopenharmony_ci			status-debounce-filter-period = <0>;
62262306a36Sopenharmony_ci			row-output-enabled;
62362306a36Sopenharmony_ci			status = "disabled";
62462306a36Sopenharmony_ci		};
62562306a36Sopenharmony_ci	};
62662306a36Sopenharmony_ci};
627