1 // SPDX-License-Identifier: GPL-2.0-only
5 * Copyright 2019-2023 Google LLC
6 * Copyright 2023 Linaro Ltd - <peter.griffin@linaro.org>
9 #include <dt-bindings/clock/google,gs101.h>
10 #include <dt-bindings/gpio/gpio.h>
11 #include <dt-bindings/interrupt-controller/arm-gic.h>
12 #include <dt-bindings/soc/samsung,exynos-usi.h>
15 compatible = "google,gs101";
19 interrupt-parent = <&gic>;
22 pinctrl0 = &pinctrl_gpio_alive;
23 pinctrl1 = &pinctrl_far_alive;
24 pinctrl2 = &pinctrl_gsacore;
25 pinctrl3 = &pinctrl_gsactrl;
26 pinctrl4 = &pinctrl_peric0;
27 pinctrl5 = &pinctrl_peric1;
28 pinctrl6 = &pinctrl_hsi1;
29 pinctrl7 = &pinctrl_hsi2;
73 compatible = "arm,cortex-a55";
75 enable-method = "psci";
76 cpu-idle-states = <&ANANKE_CPU_SLEEP>;
77 capacity-dmips-mhz = <250>;
78 dynamic-power-coefficient = <70>;
83 compatible = "arm,cortex-a55";
85 enable-method = "psci";
86 cpu-idle-states = <&ANANKE_CPU_SLEEP>;
87 capacity-dmips-mhz = <250>;
88 dynamic-power-coefficient = <70>;
93 compatible = "arm,cortex-a55";
95 enable-method = "psci";
96 cpu-idle-states = <&ANANKE_CPU_SLEEP>;
97 capacity-dmips-mhz = <250>;
98 dynamic-power-coefficient = <70>;
103 compatible = "arm,cortex-a55";
105 enable-method = "psci";
106 cpu-idle-states = <&ANANKE_CPU_SLEEP>;
107 capacity-dmips-mhz = <250>;
108 dynamic-power-coefficient = <70>;
113 compatible = "arm,cortex-a76";
115 enable-method = "psci";
116 cpu-idle-states = <&ENYO_CPU_SLEEP>;
117 capacity-dmips-mhz = <620>;
118 dynamic-power-coefficient = <284>;
123 compatible = "arm,cortex-a76";
125 enable-method = "psci";
126 cpu-idle-states = <&ENYO_CPU_SLEEP>;
127 capacity-dmips-mhz = <620>;
128 dynamic-power-coefficient = <284>;
133 compatible = "arm,cortex-x1";
135 enable-method = "psci";
136 cpu-idle-states = <&HERA_CPU_SLEEP>;
137 capacity-dmips-mhz = <1024>;
138 dynamic-power-coefficient = <650>;
143 compatible = "arm,cortex-x1";
145 enable-method = "psci";
146 cpu-idle-states = <&HERA_CPU_SLEEP>;
147 capacity-dmips-mhz = <1024>;
148 dynamic-power-coefficient = <650>;
152 entry-method = "psci";
154 ANANKE_CPU_SLEEP: cpu-ananke-sleep {
155 idle-state-name = "c2";
156 compatible = "arm,idle-state";
157 arm,psci-suspend-param = <0x0010000>;
158 entry-latency-us = <70>;
159 exit-latency-us = <160>;
160 min-residency-us = <2000>;
163 ENYO_CPU_SLEEP: cpu-enyo-sleep {
164 idle-state-name = "c2";
165 compatible = "arm,idle-state";
166 arm,psci-suspend-param = <0x0010000>;
167 entry-latency-us = <150>;
168 exit-latency-us = <190>;
169 min-residency-us = <2500>;
172 HERA_CPU_SLEEP: cpu-hera-sleep {
173 idle-state-name = "c2";
174 compatible = "arm,idle-state";
175 arm,psci-suspend-param = <0x0010000>;
176 entry-latency-us = <235>;
177 exit-latency-us = <220>;
178 min-residency-us = <3500>;
183 /* TODO replace with CCF clock */
185 compatible = "fixed-clock";
187 clock-frequency = <12345>;
188 clock-output-names = "pclk";
191 /* ect node is required to be present by bootloader */
196 compatible = "fixed-clock";
198 clock-output-names = "oscclk";
202 compatible = "fixed-clock";
204 clock-output-names = "ext-200m";
208 compatible = "arm,cortex-a55-pmu";
209 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster0>;
213 compatible = "arm,cortex-a76-pmu";
214 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster1>;
218 compatible = "arm,cortex-x1-pmu";
219 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster2>;
223 compatible = "arm,dsu-pmu";
224 interrupts = <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH 0>;
225 cpus = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>,
226 <&cpu4>, <&cpu5>, <&cpu6>, <&cpu7>;
230 compatible = "arm,psci-1.0";
234 reserved_memory: reserved-memory {
235 #address-cells = <2>;
239 gsa_reserved_protected: gsa@90200000 {
240 reg = <0x0 0x90200000 0x400000>;
244 tpu_fw_reserved: tpu-fw@93000000 {
245 reg = <0x0 0x93000000 0x1000000>;
249 aoc_reserve: aoc@94000000 {
250 reg = <0x0 0x94000000 0x03000000>;
254 abl_reserved: abl@f8800000 {
255 reg = <0x0 0xf8800000 0x02000000>;
259 dss_log_reserved: dss-log-reserved@fd3f0000 {
260 reg = <0x0 0xfd3f0000 0x0000e000>;
264 debug_kinfo_reserved: debug-kinfo-reserved@fd3fe000 {
265 reg = <0x0 0xfd3fe000 0x00001000>;
269 bldr_log_reserved: bldr-log-reserved@fd800000 {
270 reg = <0x0 0xfd800000 0x00100000>;
274 bldr_log_hist_reserved: bldr-log-hist-reserved@fd900000 {
275 reg = <0x0 0xfd900000 0x00002000>;
281 compatible = "simple-bus";
282 #address-cells = <1>;
284 ranges = <0x0 0x0 0x0 0x40000000>;
286 cmu_misc: clock-controller@10010000 {
287 compatible = "google,gs101-cmu-misc";
288 reg = <0x10010000 0x8000>;
290 clocks = <&cmu_top CLK_DOUT_CMU_MISC_BUS>,
291 <&cmu_top CLK_DOUT_CMU_MISC_SSS>;
292 clock-names = "bus", "sss";
295 watchdog_cl0: watchdog@10060000 {
296 compatible = "google,gs101-wdt";
297 reg = <0x10060000 0x100>;
298 interrupts = <GIC_SPI 765 IRQ_TYPE_LEVEL_HIGH 0>;
299 clocks = <&cmu_misc CLK_GOUT_MISC_WDT_CLUSTER0_PCLK>,
301 clock-names = "watchdog", "watchdog_src";
302 samsung,syscon-phandle = <&pmu_system_controller>;
303 samsung,cluster-index = <0>;
307 watchdog_cl1: watchdog@10070000 {
308 compatible = "google,gs101-wdt";
309 reg = <0x10070000 0x100>;
310 interrupts = <GIC_SPI 766 IRQ_TYPE_LEVEL_HIGH 0>;
311 clocks = <&cmu_misc CLK_GOUT_MISC_WDT_CLUSTER1_PCLK>,
313 clock-names = "watchdog", "watchdog_src";
314 samsung,syscon-phandle = <&pmu_system_controller>;
315 samsung,cluster-index = <1>;
319 gic: interrupt-controller@10400000 {
320 compatible = "arm,gic-v3";
321 #interrupt-cells = <4>;
322 interrupt-controller;
323 reg = <0x10400000 0x10000>, /* GICD */
324 <0x10440000 0x100000>;/* GICR * 8 */
325 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
328 ppi_cluster0: interrupt-partition-0 {
329 affinity = <&cpu0 &cpu1 &cpu2 &cpu3>;
332 ppi_cluster1: interrupt-partition-1 {
333 affinity = <&cpu4 &cpu5>;
336 ppi_cluster2: interrupt-partition-2 {
337 affinity = <&cpu6 &cpu7>;
342 sysreg_peric0: syscon@10820000 {
343 compatible = "google,gs101-peric0-sysreg", "syscon";
344 reg = <0x10820000 0x10000>;
347 pinctrl_peric0: pinctrl@10840000 {
348 compatible = "google,gs101-pinctrl";
349 reg = <0x10840000 0x00001000>;
350 interrupts = <GIC_SPI 625 IRQ_TYPE_LEVEL_HIGH 0>;
353 usi_uart: usi@10a000c0 {
354 compatible = "google,gs101-usi",
355 "samsung,exynos850-usi";
356 reg = <0x10a000c0 0x20>;
358 #address-cells = <1>;
360 clocks = <&dummy_clk>, <&dummy_clk>;
361 clock-names = "pclk", "ipclk";
362 samsung,sysreg = <&sysreg_peric0 0x1020>;
363 samsung,mode = <USI_V2_UART>;
366 serial_0: serial@10a00000 {
367 compatible = "google,gs101-uart";
368 reg = <0x10a00000 0xc0>;
370 interrupts = <GIC_SPI 634
371 IRQ_TYPE_LEVEL_HIGH 0>;
372 clocks = <&dummy_clk 0>, <&dummy_clk 0>;
373 clock-names = "uart", "clk_uart_baud0";
374 samsung,uart-fifosize = <256>;
379 sysreg_peric1: syscon@10c20000 {
380 compatible = "google,gs101-peric1-sysreg", "syscon";
381 reg = <0x10c20000 0x10000>;
384 pinctrl_peric1: pinctrl@10c40000 {
385 compatible = "google,gs101-pinctrl";
386 reg = <0x10c40000 0x00001000>;
387 interrupts = <GIC_SPI 644 IRQ_TYPE_LEVEL_HIGH 0>;
390 pinctrl_hsi1: pinctrl@11840000 {
391 compatible = "google,gs101-pinctrl";
392 reg = <0x11840000 0x00001000>;
393 interrupts = <GIC_SPI 471 IRQ_TYPE_LEVEL_HIGH 0>;
396 pinctrl_hsi2: pinctrl@14440000 {
397 compatible = "google,gs101-pinctrl";
398 reg = <0x14440000 0x00001000>;
399 interrupts = <GIC_SPI 503 IRQ_TYPE_LEVEL_HIGH 0>;
402 cmu_apm: clock-controller@17400000 {
403 compatible = "google,gs101-cmu-apm";
404 reg = <0x17400000 0x8000>;
407 clocks = <&ext_24_5m>;
408 clock-names = "oscclk";
411 sysreg_apm: syscon@174204e0 {
412 compatible = "google,gs101-apm-sysreg", "syscon";
413 reg = <0x174204e0 0x1000>;
416 pmu_system_controller: system-controller@17460000 {
417 compatible = "google,gs101-pmu", "syscon";
418 reg = <0x17460000 0x10000>;
421 pinctrl_gpio_alive: pinctrl@174d0000 {
422 compatible = "google,gs101-pinctrl";
423 reg = <0x174d0000 0x00001000>;
425 wakeup-interrupt-controller {
426 compatible = "google,gs101-wakeup-eint",
427 "samsung,exynos850-wakeup-eint",
428 "samsung,exynos7-wakeup-eint";
432 pinctrl_far_alive: pinctrl@174e0000 {
433 compatible = "google,gs101-pinctrl";
434 reg = <0x174e0000 0x00001000>;
436 wakeup-interrupt-controller {
437 compatible = "google,gs101-wakeup-eint",
438 "samsung,exynos850-wakeup-eint",
439 "samsung,exynos7-wakeup-eint";
443 pinctrl_gsactrl: pinctrl@17940000 {
444 compatible = "google,gs101-pinctrl";
445 reg = <0x17940000 0x00001000>;
448 pinctrl_gsacore: pinctrl@17a80000 {
449 compatible = "google,gs101-pinctrl";
450 reg = <0x17a80000 0x00001000>;
453 cmu_top: clock-controller@1e080000 {
454 compatible = "google,gs101-cmu-top";
455 reg = <0x1e080000 0x8000>;
458 clocks = <&ext_24_5m>;
459 clock-names = "oscclk";
464 compatible = "arm,armv8-timer";
466 <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW) 0>,
467 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW) 0>,
468 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW) 0>,
469 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW) 0>;
473 #include "gs101-pinctrl.dtsi"