xref: /linux/arch/arm64/boot/dts/sprd/whale2.dtsi (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1*a4b3f197SStanislav Jakubek// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
23c0e3abdSOrson Zhai/*
33c0e3abdSOrson Zhai * Spreadtrum Whale2 platform peripherals
43c0e3abdSOrson Zhai *
53c0e3abdSOrson Zhai * Copyright (C) 2016, Spreadtrum Communications Inc.
63c0e3abdSOrson Zhai */
73c0e3abdSOrson Zhai
86c6fbbd1SBaolin Wang#include <dt-bindings/clock/sprd,sc9860-clk.h>
96c6fbbd1SBaolin Wang
103c0e3abdSOrson Zhai/ {
113c0e3abdSOrson Zhai	interrupt-parent = <&gic>;
123c0e3abdSOrson Zhai	#address-cells = <2>;
133c0e3abdSOrson Zhai	#size-cells = <2>;
143c0e3abdSOrson Zhai
153c0e3abdSOrson Zhai	soc: soc {
163c0e3abdSOrson Zhai		compatible = "simple-bus";
173c0e3abdSOrson Zhai		#address-cells = <2>;
183c0e3abdSOrson Zhai		#size-cells = <2>;
193c0e3abdSOrson Zhai		ranges;
203c0e3abdSOrson Zhai
2133d3ebd4SChunyan Zhang		ap_ahb_regs: syscon@20210000 {
2233d3ebd4SChunyan Zhang			compatible = "syscon";
2333d3ebd4SChunyan Zhang			reg = <0 0x20210000 0 0x10000>;
2433d3ebd4SChunyan Zhang		};
2533d3ebd4SChunyan Zhang
2633d3ebd4SChunyan Zhang		pmu_regs: syscon@402b0000 {
2733d3ebd4SChunyan Zhang			compatible = "syscon";
2833d3ebd4SChunyan Zhang			reg = <0 0x402b0000 0 0x10000>;
2933d3ebd4SChunyan Zhang		};
3033d3ebd4SChunyan Zhang
3133d3ebd4SChunyan Zhang		aon_regs: syscon@402e0000 {
3233d3ebd4SChunyan Zhang			compatible = "syscon";
3333d3ebd4SChunyan Zhang			reg = <0 0x402e0000 0 0x10000>;
3433d3ebd4SChunyan Zhang		};
3533d3ebd4SChunyan Zhang
3633d3ebd4SChunyan Zhang		ana_regs: syscon@40400000 {
3733d3ebd4SChunyan Zhang			compatible = "syscon";
3833d3ebd4SChunyan Zhang			reg = <0 0x40400000 0 0x10000>;
3933d3ebd4SChunyan Zhang		};
4033d3ebd4SChunyan Zhang
4133d3ebd4SChunyan Zhang		agcp_regs: syscon@415e0000 {
4233d3ebd4SChunyan Zhang			compatible = "syscon";
4333d3ebd4SChunyan Zhang			reg = <0 0x415e0000 0 0x1000000>;
4433d3ebd4SChunyan Zhang		};
4533d3ebd4SChunyan Zhang
4633d3ebd4SChunyan Zhang		vsp_regs: syscon@61100000 {
4733d3ebd4SChunyan Zhang			compatible = "syscon";
4833d3ebd4SChunyan Zhang			reg = <0 0x61100000 0 0x10000>;
4933d3ebd4SChunyan Zhang		};
5033d3ebd4SChunyan Zhang
5133d3ebd4SChunyan Zhang		cam_regs: syscon@62100000 {
5233d3ebd4SChunyan Zhang			compatible = "syscon";
5333d3ebd4SChunyan Zhang			reg = <0 0x62100000 0 0x10000>;
5433d3ebd4SChunyan Zhang		};
5533d3ebd4SChunyan Zhang
5633d3ebd4SChunyan Zhang		disp_regs: syscon@63100000 {
5733d3ebd4SChunyan Zhang			compatible = "syscon";
5833d3ebd4SChunyan Zhang			reg = <0 0x63100000 0 0x10000>;
5933d3ebd4SChunyan Zhang		};
6033d3ebd4SChunyan Zhang
6133d3ebd4SChunyan Zhang		ap_apb_regs: syscon@70b00000 {
6233d3ebd4SChunyan Zhang			compatible = "syscon";
6333d3ebd4SChunyan Zhang			reg = <0 0x70b00000 0 0x40000>;
6433d3ebd4SChunyan Zhang		};
6533d3ebd4SChunyan Zhang
6609dddc24SKrzysztof Kozlowski		ap-apb@70000000 {
673c0e3abdSOrson Zhai			compatible = "simple-bus";
683c0e3abdSOrson Zhai			#address-cells = <1>;
693c0e3abdSOrson Zhai			#size-cells = <1>;
703c0e3abdSOrson Zhai			ranges = <0 0x0 0x70000000 0x10000000>;
713c0e3abdSOrson Zhai
723c0e3abdSOrson Zhai			uart0: serial@0 {
733c0e3abdSOrson Zhai				compatible = "sprd,sc9860-uart",
743c0e3abdSOrson Zhai					     "sprd,sc9836-uart";
753c0e3abdSOrson Zhai				reg = <0x0 0x100>;
763c0e3abdSOrson Zhai				interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
7715d574fbSBaolin Wang				clocks = <&apapb_gate CLK_UART0_EB>,
78e2e0d455SStanislav Jakubek					 <&ap_clk CLK_UART0>,
79e2e0d455SStanislav Jakubek					 <&ext_26m>;
80e2e0d455SStanislav Jakubek				clock-names = "enable", "uart", "source";
813c0e3abdSOrson Zhai				status = "disabled";
823c0e3abdSOrson Zhai			};
833c0e3abdSOrson Zhai
843c0e3abdSOrson Zhai			uart1: serial@100000 {
853c0e3abdSOrson Zhai				compatible = "sprd,sc9860-uart",
863c0e3abdSOrson Zhai					     "sprd,sc9836-uart";
873c0e3abdSOrson Zhai				reg = <0x100000 0x100>;
883c0e3abdSOrson Zhai				interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
8915d574fbSBaolin Wang				clocks = <&apapb_gate CLK_UART1_EB>,
90e2e0d455SStanislav Jakubek					 <&ap_clk CLK_UART1>,
91e2e0d455SStanislav Jakubek					 <&ext_26m>;
92e2e0d455SStanislav Jakubek				clock-names = "enable", "uart", "source";
933c0e3abdSOrson Zhai				status = "disabled";
943c0e3abdSOrson Zhai			};
953c0e3abdSOrson Zhai
963c0e3abdSOrson Zhai			uart2: serial@200000 {
973c0e3abdSOrson Zhai				compatible = "sprd,sc9860-uart",
983c0e3abdSOrson Zhai					     "sprd,sc9836-uart";
993c0e3abdSOrson Zhai				reg = <0x200000 0x100>;
1003c0e3abdSOrson Zhai				interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
10115d574fbSBaolin Wang				clocks = <&apapb_gate CLK_UART2_EB>,
102e2e0d455SStanislav Jakubek					 <&ap_clk CLK_UART2>,
103e2e0d455SStanislav Jakubek					 <&ext_26m>;
104e2e0d455SStanislav Jakubek				clock-names = "enable", "uart", "source";
1053c0e3abdSOrson Zhai				status = "disabled";
1063c0e3abdSOrson Zhai			};
1073c0e3abdSOrson Zhai
1083c0e3abdSOrson Zhai			uart3: serial@300000 {
1093c0e3abdSOrson Zhai				compatible = "sprd,sc9860-uart",
1103c0e3abdSOrson Zhai					     "sprd,sc9836-uart";
1113c0e3abdSOrson Zhai				reg = <0x300000 0x100>;
1123c0e3abdSOrson Zhai				interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
11315d574fbSBaolin Wang				clocks = <&apapb_gate CLK_UART3_EB>,
114e2e0d455SStanislav Jakubek					 <&ap_clk CLK_UART3>,
115e2e0d455SStanislav Jakubek					 <&ext_26m>;
116e2e0d455SStanislav Jakubek				clock-names = "enable", "uart", "source";
1173c0e3abdSOrson Zhai				status = "disabled";
1183c0e3abdSOrson Zhai			};
1193c0e3abdSOrson Zhai		};
1206c6fbbd1SBaolin Wang
121258e1ae6SBaolin Wang		ap-ahb {
122258e1ae6SBaolin Wang			compatible = "simple-bus";
123258e1ae6SBaolin Wang			#address-cells = <2>;
124258e1ae6SBaolin Wang			#size-cells = <2>;
125258e1ae6SBaolin Wang			ranges;
126258e1ae6SBaolin Wang
127258e1ae6SBaolin Wang			ap_dma: dma-controller@20100000 {
128258e1ae6SBaolin Wang				compatible = "sprd,sc9860-dma";
129258e1ae6SBaolin Wang				reg = <0 0x20100000 0 0x4000>;
130258e1ae6SBaolin Wang				interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
131258e1ae6SBaolin Wang				#dma-cells = <1>;
1326fe1953eSKrzysztof Kozlowski				/* For backwards compatibility: */
133258e1ae6SBaolin Wang				#dma-channels = <32>;
1346fe1953eSKrzysztof Kozlowski				dma-channels = <32>;
135258e1ae6SBaolin Wang				clocks = <&apahb_gate CLK_DMA_EB>;
136e2e0d455SStanislav Jakubek				clock-names = "enable";
137258e1ae6SBaolin Wang			};
138c311f4ffSBaolin Wang
1390dcc2039SStanislav Jakubek			sdio3: mmc@50430000 {
140c311f4ffSBaolin Wang				compatible = "sprd,sdhci-r11";
141c311f4ffSBaolin Wang				reg = <0 0x50430000 0 0x1000>;
142c311f4ffSBaolin Wang				interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
143c311f4ffSBaolin Wang
144c311f4ffSBaolin Wang				clocks = <&aon_prediv CLK_EMMC_2X>,
145c311f4ffSBaolin Wang					 <&apahb_gate CLK_EMMC_EB>,
146c311f4ffSBaolin Wang					 <&aon_gate CLK_EMMC_2X_EN>;
147e2e0d455SStanislav Jakubek				clock-names = "sdio", "enable", "2x_enable";
148c311f4ffSBaolin Wang				assigned-clocks = <&aon_prediv CLK_EMMC_2X>;
149c311f4ffSBaolin Wang				assigned-clock-parents = <&clk_l0_409m6>;
150c311f4ffSBaolin Wang
151c311f4ffSBaolin Wang				sprd,phy-delay-mmc-hs400 = <0x44 0x7f 0x2e 0x2e>;
152c311f4ffSBaolin Wang				sprd,phy-delay-mmc-hs200 = <0x0 0x8c 0x8c 0x8c>;
153c311f4ffSBaolin Wang				sprd,phy-delay-mmc-ddr52 = <0x3f 0x75 0x14 0x14>;
154c311f4ffSBaolin Wang				sprd,phy-delay-mmc-hs400es = <0x3f 0x3f 0x2e 0x2e>;
155c311f4ffSBaolin Wang				vmmc-supply = <&vddemmccore>;
156c311f4ffSBaolin Wang				bus-width = <8>;
157c311f4ffSBaolin Wang				non-removable;
158c311f4ffSBaolin Wang				no-sdio;
159c311f4ffSBaolin Wang				no-sd;
160c311f4ffSBaolin Wang				cap-mmc-hw-reset;
161c311f4ffSBaolin Wang				mmc-hs400-enhanced-strobe;
162c311f4ffSBaolin Wang				mmc-hs400-1_8v;
163c311f4ffSBaolin Wang				mmc-hs200-1_8v;
164c311f4ffSBaolin Wang				mmc-ddr-1_8v;
165c311f4ffSBaolin Wang			};
166258e1ae6SBaolin Wang		};
167258e1ae6SBaolin Wang
1686c6fbbd1SBaolin Wang		aon {
1696c6fbbd1SBaolin Wang			compatible = "simple-bus";
1706c6fbbd1SBaolin Wang			#address-cells = <2>;
1716c6fbbd1SBaolin Wang			#size-cells = <2>;
1726c6fbbd1SBaolin Wang			ranges;
1736c6fbbd1SBaolin Wang
174e254460aSBaolin Wang			adi_bus: spi@40030000 {
175e254460aSBaolin Wang				compatible = "sprd,sc9860-adi";
176e254460aSBaolin Wang				reg = <0 0x40030000 0 0x10000>;
177e254460aSBaolin Wang				hwlocks = <&hwlock 0>;
178e254460aSBaolin Wang				hwlock-names = "adi";
179e254460aSBaolin Wang				#address-cells = <1>;
180e254460aSBaolin Wang				#size-cells = <0>;
181e254460aSBaolin Wang			};
182e254460aSBaolin Wang
1830cb3dad0SBaolin Wang			timer@40050000 {
1840cb3dad0SBaolin Wang				compatible = "sprd,sc9860-timer";
1850cb3dad0SBaolin Wang				reg = <0 0x40050000 0 0x20>;
1860cb3dad0SBaolin Wang				interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
1870cb3dad0SBaolin Wang				clocks = <&ext_32k>;
1880cb3dad0SBaolin Wang			};
1890cb3dad0SBaolin Wang
190b2d94b3fSBaolin Wang			timer@40050020 {
191b2d94b3fSBaolin Wang				compatible = "sprd,sc9860-suspend-timer";
192b2d94b3fSBaolin Wang				reg = <0 0x40050020 0 0x20>;
193b2d94b3fSBaolin Wang				clocks = <&ext_32k>;
194b2d94b3fSBaolin Wang			};
195b2d94b3fSBaolin Wang
1966c6fbbd1SBaolin Wang			hwlock: hwspinlock@40500000 {
1976c6fbbd1SBaolin Wang				compatible = "sprd,hwspinlock-r3p0";
1986c6fbbd1SBaolin Wang				reg = <0 0x40500000 0 0x1000>;
1996c6fbbd1SBaolin Wang				#hwlock-cells = <1>;
2006c6fbbd1SBaolin Wang				clocks = <&aon_gate CLK_SPLK_EB>;
201e2e0d455SStanislav Jakubek				clock-names = "enable";
2026c6fbbd1SBaolin Wang			};
203d85bcd9cSBaolin Wang
2041cea2c22SBaolin Wang			eic_debounce: gpio@40210000 {
2051cea2c22SBaolin Wang				compatible = "sprd,sc9860-eic-debounce";
2061cea2c22SBaolin Wang				reg = <0 0x40210000 0 0x80>;
2071cea2c22SBaolin Wang				gpio-controller;
2081cea2c22SBaolin Wang				#gpio-cells = <2>;
2091cea2c22SBaolin Wang				interrupt-controller;
2101cea2c22SBaolin Wang				#interrupt-cells = <2>;
2111cea2c22SBaolin Wang				interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
2121cea2c22SBaolin Wang			};
2131cea2c22SBaolin Wang
2141cea2c22SBaolin Wang			eic_latch: gpio@40210080 {
2151cea2c22SBaolin Wang				compatible = "sprd,sc9860-eic-latch";
2161cea2c22SBaolin Wang				reg = <0 0x40210080 0 0x20>;
2171cea2c22SBaolin Wang				gpio-controller;
2181cea2c22SBaolin Wang				#gpio-cells = <2>;
2191cea2c22SBaolin Wang				interrupt-controller;
2201cea2c22SBaolin Wang				#interrupt-cells = <2>;
2211cea2c22SBaolin Wang				interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
2221cea2c22SBaolin Wang			};
2231cea2c22SBaolin Wang
2241cea2c22SBaolin Wang			eic_async: gpio@402100a0 {
2251cea2c22SBaolin Wang				compatible = "sprd,sc9860-eic-async";
2261cea2c22SBaolin Wang				reg = <0 0x402100a0 0 0x20>;
2271cea2c22SBaolin Wang				gpio-controller;
2281cea2c22SBaolin Wang				#gpio-cells = <2>;
2291cea2c22SBaolin Wang				interrupt-controller;
2301cea2c22SBaolin Wang				#interrupt-cells = <2>;
2311cea2c22SBaolin Wang				interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
2321cea2c22SBaolin Wang			};
2331cea2c22SBaolin Wang
2341cea2c22SBaolin Wang			eic_sync: gpio@402100c0 {
2351cea2c22SBaolin Wang				compatible = "sprd,sc9860-eic-sync";
2361cea2c22SBaolin Wang				reg = <0 0x402100c0 0 0x20>;
2371cea2c22SBaolin Wang				gpio-controller;
2381cea2c22SBaolin Wang				#gpio-cells = <2>;
2391cea2c22SBaolin Wang				interrupt-controller;
2401cea2c22SBaolin Wang				#interrupt-cells = <2>;
2411cea2c22SBaolin Wang				interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
2421cea2c22SBaolin Wang			};
2431cea2c22SBaolin Wang
2441cea2c22SBaolin Wang			ap_gpio: gpio@40280000 {
2451cea2c22SBaolin Wang				compatible = "sprd,sc9860-gpio";
2461cea2c22SBaolin Wang				reg = <0 0x40280000 0 0x1000>;
2471cea2c22SBaolin Wang				gpio-controller;
2481cea2c22SBaolin Wang				#gpio-cells = <2>;
2491cea2c22SBaolin Wang				interrupt-controller;
2501cea2c22SBaolin Wang				#interrupt-cells = <2>;
2511cea2c22SBaolin Wang				interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
2521cea2c22SBaolin Wang			};
2531cea2c22SBaolin Wang
254d85bcd9cSBaolin Wang			pin_controller: pinctrl@402a0000 {
255d85bcd9cSBaolin Wang				compatible = "sprd,sc9860-pinctrl";
256d85bcd9cSBaolin Wang				reg = <0 0x402a0000 0 0x10000>;
257d85bcd9cSBaolin Wang			};
2584f681369SBaolin Wang
2594f681369SBaolin Wang			watchdog@40310000 {
2604f681369SBaolin Wang				compatible = "sprd,sp9860-wdt";
2614f681369SBaolin Wang				reg = <0 0x40310000 0 0x1000>;
2624f681369SBaolin Wang				interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
2634f681369SBaolin Wang				timeout-sec = <12>;
26421a9883fSBaolin Wang				clocks = <&aon_gate CLK_APCPU_WDG_EB>,
26521a9883fSBaolin Wang					 <&aon_gate CLK_AP_WDG_RTC_EB>;
266e2e0d455SStanislav Jakubek				clock-names = "enable", "rtc_enable";
2674f681369SBaolin Wang			};
2686c6fbbd1SBaolin Wang		};
269258e1ae6SBaolin Wang
270258e1ae6SBaolin Wang		agcp {
271258e1ae6SBaolin Wang			compatible = "simple-bus";
272258e1ae6SBaolin Wang			#address-cells = <2>;
273258e1ae6SBaolin Wang			#size-cells = <2>;
274258e1ae6SBaolin Wang			ranges;
275258e1ae6SBaolin Wang
276258e1ae6SBaolin Wang			agcp_dma: dma-controller@41580000 {
277258e1ae6SBaolin Wang				compatible = "sprd,sc9860-dma";
278258e1ae6SBaolin Wang				reg = <0 0x41580000 0 0x4000>;
279258e1ae6SBaolin Wang				#dma-cells = <1>;
2806fe1953eSKrzysztof Kozlowski				/* For backwards compatibility: */
281258e1ae6SBaolin Wang				#dma-channels = <32>;
2826fe1953eSKrzysztof Kozlowski				dma-channels = <32>;
283258e1ae6SBaolin Wang				clocks = <&agcp_gate CLK_AGCP_DMAAP_EB>,
284258e1ae6SBaolin Wang					 <&agcp_gate CLK_AGCP_AP_ASHB_EB>;
285e2e0d455SStanislav Jakubek				clock-names = "enable", "ashb_eb";
286258e1ae6SBaolin Wang			};
287258e1ae6SBaolin Wang		};
2883c0e3abdSOrson Zhai	};
2893c0e3abdSOrson Zhai
29022f37a24SChunyan Zhang	ext_32k: ext_32k {
29122f37a24SChunyan Zhang		compatible = "fixed-clock";
29222f37a24SChunyan Zhang		#clock-cells = <0>;
29322f37a24SChunyan Zhang		clock-frequency = <32768>;
29422f37a24SChunyan Zhang		clock-output-names = "ext-32k";
29522f37a24SChunyan Zhang	};
29622f37a24SChunyan Zhang
29722f37a24SChunyan Zhang	ext_26m: ext_26m {
2983c0e3abdSOrson Zhai		compatible = "fixed-clock";
2993c0e3abdSOrson Zhai		#clock-cells = <0>;
3003c0e3abdSOrson Zhai		clock-frequency = <26000000>;
30122f37a24SChunyan Zhang		clock-output-names = "ext-26m";
30222f37a24SChunyan Zhang	};
30322f37a24SChunyan Zhang
30422f37a24SChunyan Zhang	ext_rco_100m: ext_rco_100m {
30522f37a24SChunyan Zhang		compatible = "fixed-clock";
30622f37a24SChunyan Zhang		#clock-cells = <0>;
30722f37a24SChunyan Zhang		clock-frequency = <100000000>;
30822f37a24SChunyan Zhang		clock-output-names = "ext-rco-100m";
3093c0e3abdSOrson Zhai	};
310c311f4ffSBaolin Wang
311c311f4ffSBaolin Wang	clk_l0_409m6: clk_l0_409m6 {
312c311f4ffSBaolin Wang		compatible = "fixed-clock";
313c311f4ffSBaolin Wang		#clock-cells = <0>;
314c311f4ffSBaolin Wang		clock-frequency = <409600000>;
315c311f4ffSBaolin Wang		clock-output-names = "ext-409m6";
316c311f4ffSBaolin Wang	};
3173c0e3abdSOrson Zhai};
318