xref: /openbmc/u-boot/arch/arm/dts/sun8i-h3.dtsi (revision 6f443330186676004148930b4dd77f1c2735bd36)
1d6e6d4b3SHans de Goede/*
2d6e6d4b3SHans de Goede * Copyright (C) 2015 Jens Kuske <jenskuske@gmail.com>
3d6e6d4b3SHans de Goede *
4d6e6d4b3SHans de Goede * This file is dual-licensed: you can use it either under the terms
5d6e6d4b3SHans de Goede * of the GPL or the X11 license, at your option. Note that this dual
6d6e6d4b3SHans de Goede * licensing only applies to this file, and not this project as a
7d6e6d4b3SHans de Goede * whole.
8d6e6d4b3SHans de Goede *
9d6e6d4b3SHans de Goede *  a) This file is free software; you can redistribute it and/or
10d6e6d4b3SHans de Goede *     modify it under the terms of the GNU General Public License as
11d6e6d4b3SHans de Goede *     published by the Free Software Foundation; either version 2 of the
12d6e6d4b3SHans de Goede *     License, or (at your option) any later version.
13d6e6d4b3SHans de Goede *
14d6e6d4b3SHans de Goede *     This file is distributed in the hope that it will be useful,
15d6e6d4b3SHans de Goede *     but WITHOUT ANY WARRANTY; without even the implied warranty of
16d6e6d4b3SHans de Goede *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17d6e6d4b3SHans de Goede *     GNU General Public License for more details.
18d6e6d4b3SHans de Goede *
19d6e6d4b3SHans de Goede * Or, alternatively,
20d6e6d4b3SHans de Goede *
21d6e6d4b3SHans de Goede *  b) Permission is hereby granted, free of charge, to any person
22d6e6d4b3SHans de Goede *     obtaining a copy of this software and associated documentation
23d6e6d4b3SHans de Goede *     files (the "Software"), to deal in the Software without
24d6e6d4b3SHans de Goede *     restriction, including without limitation the rights to use,
25d6e6d4b3SHans de Goede *     copy, modify, merge, publish, distribute, sublicense, and/or
26d6e6d4b3SHans de Goede *     sell copies of the Software, and to permit persons to whom the
27d6e6d4b3SHans de Goede *     Software is furnished to do so, subject to the following
28d6e6d4b3SHans de Goede *     conditions:
29d6e6d4b3SHans de Goede *
30d6e6d4b3SHans de Goede *     The above copyright notice and this permission notice shall be
31d6e6d4b3SHans de Goede *     included in all copies or substantial portions of the Software.
32d6e6d4b3SHans de Goede *
33d6e6d4b3SHans de Goede *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34d6e6d4b3SHans de Goede *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35d6e6d4b3SHans de Goede *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36d6e6d4b3SHans de Goede *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37d6e6d4b3SHans de Goede *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38d6e6d4b3SHans de Goede *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39d6e6d4b3SHans de Goede *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40d6e6d4b3SHans de Goede *     OTHER DEALINGS IN THE SOFTWARE.
41d6e6d4b3SHans de Goede */
42d6e6d4b3SHans de Goede
437514ed33SAndre Przywara#include "sunxi-h3-h5.dtsi"
44d6e6d4b3SHans de Goede
45d6e6d4b3SHans de Goede/ {
467514ed33SAndre Przywara	cpu0_opp_table: opp_table0 {
477514ed33SAndre Przywara		compatible = "operating-points-v2";
487514ed33SAndre Przywara		opp-shared;
49d6e6d4b3SHans de Goede
507514ed33SAndre Przywara		opp@648000000 {
517514ed33SAndre Przywara			opp-hz = /bits/ 64 <648000000>;
527514ed33SAndre Przywara			opp-microvolt = <1040000 1040000 1300000>;
537514ed33SAndre Przywara			clock-latency-ns = <244144>; /* 8 32k periods */
547514ed33SAndre Przywara		};
557514ed33SAndre Przywara
567514ed33SAndre Przywara		opp@816000000 {
577514ed33SAndre Przywara			opp-hz = /bits/ 64 <816000000>;
587514ed33SAndre Przywara			opp-microvolt = <1100000 1100000 1300000>;
597514ed33SAndre Przywara			clock-latency-ns = <244144>; /* 8 32k periods */
607514ed33SAndre Przywara		};
617514ed33SAndre Przywara
627514ed33SAndre Przywara		opp@1008000000 {
637514ed33SAndre Przywara			opp-hz = /bits/ 64 <1008000000>;
647514ed33SAndre Przywara			opp-microvolt = <1200000 1200000 1300000>;
657514ed33SAndre Przywara			clock-latency-ns = <244144>; /* 8 32k periods */
667514ed33SAndre Przywara		};
676d7b22a5SChen-Yu Tsai	};
686d7b22a5SChen-Yu Tsai
69d6e6d4b3SHans de Goede	cpus {
70d6e6d4b3SHans de Goede		#address-cells = <1>;
71d6e6d4b3SHans de Goede		#size-cells = <0>;
72d6e6d4b3SHans de Goede
737514ed33SAndre Przywara		cpu0: cpu@0 {
74d6e6d4b3SHans de Goede			compatible = "arm,cortex-a7";
75d6e6d4b3SHans de Goede			device_type = "cpu";
76d6e6d4b3SHans de Goede			reg = <0>;
777514ed33SAndre Przywara			clocks = <&ccu CLK_CPUX>;
787514ed33SAndre Przywara			clock-names = "cpu";
797514ed33SAndre Przywara			operating-points-v2 = <&cpu0_opp_table>;
807514ed33SAndre Przywara			#cooling-cells = <2>;
81d6e6d4b3SHans de Goede		};
82d6e6d4b3SHans de Goede
83d6e6d4b3SHans de Goede		cpu@1 {
84d6e6d4b3SHans de Goede			compatible = "arm,cortex-a7";
85d6e6d4b3SHans de Goede			device_type = "cpu";
86d6e6d4b3SHans de Goede			reg = <1>;
87*4c974eefSAndre Przywara			clocks = <&ccu CLK_CPUX>;
88*4c974eefSAndre Przywara			clock-names = "cpu";
897514ed33SAndre Przywara			operating-points-v2 = <&cpu0_opp_table>;
90*4c974eefSAndre Przywara			#cooling-cells = <2>;
91d6e6d4b3SHans de Goede		};
92d6e6d4b3SHans de Goede
93d6e6d4b3SHans de Goede		cpu@2 {
94d6e6d4b3SHans de Goede			compatible = "arm,cortex-a7";
95d6e6d4b3SHans de Goede			device_type = "cpu";
96d6e6d4b3SHans de Goede			reg = <2>;
97*4c974eefSAndre Przywara			clocks = <&ccu CLK_CPUX>;
98*4c974eefSAndre Przywara			clock-names = "cpu";
997514ed33SAndre Przywara			operating-points-v2 = <&cpu0_opp_table>;
100*4c974eefSAndre Przywara			#cooling-cells = <2>;
101d6e6d4b3SHans de Goede		};
102d6e6d4b3SHans de Goede
103d6e6d4b3SHans de Goede		cpu@3 {
104d6e6d4b3SHans de Goede			compatible = "arm,cortex-a7";
105d6e6d4b3SHans de Goede			device_type = "cpu";
106d6e6d4b3SHans de Goede			reg = <3>;
107*4c974eefSAndre Przywara			clocks = <&ccu CLK_CPUX>;
108*4c974eefSAndre Przywara			clock-names = "cpu";
1097514ed33SAndre Przywara			operating-points-v2 = <&cpu0_opp_table>;
110*4c974eefSAndre Przywara			#cooling-cells = <2>;
111d6e6d4b3SHans de Goede		};
112d6e6d4b3SHans de Goede	};
113d6e6d4b3SHans de Goede
114d6e6d4b3SHans de Goede	timer {
115d6e6d4b3SHans de Goede		compatible = "arm,armv7-timer";
116d6e6d4b3SHans de Goede		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
117d6e6d4b3SHans de Goede			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
118d6e6d4b3SHans de Goede			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
119d6e6d4b3SHans de Goede			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
120d6e6d4b3SHans de Goede	};
121d6e6d4b3SHans de Goede
122d6e6d4b3SHans de Goede	soc {
123*4c974eefSAndre Przywara		system-control@1c00000 {
124*4c974eefSAndre Przywara			compatible = "allwinner,sun8i-h3-system-control";
125*4c974eefSAndre Przywara			reg = <0x01c00000 0x30>;
126*4c974eefSAndre Przywara			#address-cells = <1>;
127*4c974eefSAndre Przywara			#size-cells = <1>;
128*4c974eefSAndre Przywara			ranges;
129*4c974eefSAndre Przywara
130*4c974eefSAndre Przywara			sram_c: sram@1d00000 {
131*4c974eefSAndre Przywara				compatible = "mmio-sram";
132*4c974eefSAndre Przywara				reg = <0x01d00000 0x80000>;
133*4c974eefSAndre Przywara				#address-cells = <1>;
134*4c974eefSAndre Przywara				#size-cells = <1>;
135*4c974eefSAndre Przywara				ranges = <0 0x01d00000 0x80000>;
136*4c974eefSAndre Przywara
137*4c974eefSAndre Przywara				ve_sram: sram-section@0 {
138*4c974eefSAndre Przywara					compatible = "allwinner,sun8i-h3-sram-c1",
139*4c974eefSAndre Przywara						     "allwinner,sun4i-a10-sram-c1";
140*4c974eefSAndre Przywara					reg = <0x000000 0x80000>;
141*4c974eefSAndre Przywara				};
142*4c974eefSAndre Przywara			};
143*4c974eefSAndre Przywara		};
144*4c974eefSAndre Przywara
1457514ed33SAndre Przywara		mali: gpu@1c40000 {
1467514ed33SAndre Przywara			compatible = "allwinner,sun8i-h3-mali", "arm,mali-400";
1477514ed33SAndre Przywara			reg = <0x01c40000 0x10000>;
1487514ed33SAndre Przywara			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
1497514ed33SAndre Przywara				     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
1507514ed33SAndre Przywara				     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
1517514ed33SAndre Przywara				     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
1527514ed33SAndre Przywara				     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
1537514ed33SAndre Przywara				     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
1547514ed33SAndre Przywara				     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
1557514ed33SAndre Przywara			interrupt-names = "gp",
1567514ed33SAndre Przywara					  "gpmmu",
1577514ed33SAndre Przywara					  "pp0",
1587514ed33SAndre Przywara					  "ppmmu0",
1597514ed33SAndre Przywara					  "pp1",
1607514ed33SAndre Przywara					  "ppmmu1",
1617514ed33SAndre Przywara					  "pmu";
1627514ed33SAndre Przywara			clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
1637514ed33SAndre Przywara			clock-names = "bus", "core";
1647514ed33SAndre Przywara			resets = <&ccu RST_BUS_GPU>;
165d6e6d4b3SHans de Goede
1667514ed33SAndre Przywara			assigned-clocks = <&ccu CLK_GPU>;
1677514ed33SAndre Przywara			assigned-clock-rates = <384000000>;
1687514ed33SAndre Przywara		};
1697514ed33SAndre Przywara	};
170860fbdd4SHans de Goede};
171860fbdd4SHans de Goede
1727514ed33SAndre Przywara&ccu {
1737514ed33SAndre Przywara	compatible = "allwinner,sun8i-h3-ccu";
174d6e6d4b3SHans de Goede};
175d6e6d4b3SHans de Goede
1767514ed33SAndre Przywara&display_clocks {
1777514ed33SAndre Przywara	compatible = "allwinner,sun8i-h3-de2-clk";
1787514ed33SAndre Przywara};
1797514ed33SAndre Przywara
1807514ed33SAndre Przywara&mmc0 {
1817514ed33SAndre Przywara	compatible = "allwinner,sun7i-a20-mmc";
182860fbdd4SHans de Goede	clocks = <&ccu CLK_BUS_MMC0>,
183860fbdd4SHans de Goede		 <&ccu CLK_MMC0>,
184860fbdd4SHans de Goede		 <&ccu CLK_MMC0_OUTPUT>,
185860fbdd4SHans de Goede		 <&ccu CLK_MMC0_SAMPLE>;
186d6e6d4b3SHans de Goede	clock-names = "ahb",
187d6e6d4b3SHans de Goede		      "mmc",
188d6e6d4b3SHans de Goede		      "output",
189d6e6d4b3SHans de Goede		      "sample";
190d6e6d4b3SHans de Goede};
191d6e6d4b3SHans de Goede
1927514ed33SAndre Przywara&mmc1 {
1937514ed33SAndre Przywara	compatible = "allwinner,sun7i-a20-mmc";
194860fbdd4SHans de Goede	clocks = <&ccu CLK_BUS_MMC1>,
195860fbdd4SHans de Goede		 <&ccu CLK_MMC1>,
196860fbdd4SHans de Goede		 <&ccu CLK_MMC1_OUTPUT>,
197860fbdd4SHans de Goede		 <&ccu CLK_MMC1_SAMPLE>;
198d6e6d4b3SHans de Goede	clock-names = "ahb",
199d6e6d4b3SHans de Goede		      "mmc",
200d6e6d4b3SHans de Goede		      "output",
201d6e6d4b3SHans de Goede		      "sample";
202d6e6d4b3SHans de Goede};
203d6e6d4b3SHans de Goede
2047514ed33SAndre Przywara&mmc2 {
2057514ed33SAndre Przywara	compatible = "allwinner,sun7i-a20-mmc";
206860fbdd4SHans de Goede	clocks = <&ccu CLK_BUS_MMC2>,
207860fbdd4SHans de Goede		 <&ccu CLK_MMC2>,
208860fbdd4SHans de Goede		 <&ccu CLK_MMC2_OUTPUT>,
209860fbdd4SHans de Goede		 <&ccu CLK_MMC2_SAMPLE>;
210d6e6d4b3SHans de Goede	clock-names = "ahb",
211d6e6d4b3SHans de Goede		      "mmc",
212d6e6d4b3SHans de Goede		      "output",
213d6e6d4b3SHans de Goede		      "sample";
214d6e6d4b3SHans de Goede};
215d6e6d4b3SHans de Goede
2167514ed33SAndre Przywara&pio {
217d6e6d4b3SHans de Goede	compatible = "allwinner,sun8i-h3-pinctrl";
218d6e6d4b3SHans de Goede};
219