xref: /freebsd/sys/contrib/device-tree/src/arm64/sprd/ums9620.dtsi (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
18d13bc63SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0 OR MIT)
28d13bc63SEmmanuel Vadot/*
38d13bc63SEmmanuel Vadot * Unisoc UMS9620 DTS file
48d13bc63SEmmanuel Vadot *
58d13bc63SEmmanuel Vadot * Copyright (C) 2023, Unisoc Inc.
68d13bc63SEmmanuel Vadot */
78d13bc63SEmmanuel Vadot
88d13bc63SEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
98d13bc63SEmmanuel Vadot
108d13bc63SEmmanuel Vadot/ {
118d13bc63SEmmanuel Vadot	interrupt-parent = <&gic>;
128d13bc63SEmmanuel Vadot	#address-cells = <2>;
138d13bc63SEmmanuel Vadot	#size-cells = <2>;
148d13bc63SEmmanuel Vadot
158d13bc63SEmmanuel Vadot	cpus {
168d13bc63SEmmanuel Vadot		#address-cells = <2>;
178d13bc63SEmmanuel Vadot		#size-cells = <0>;
188d13bc63SEmmanuel Vadot
198d13bc63SEmmanuel Vadot		cpu-map {
208d13bc63SEmmanuel Vadot			cluster0 {
218d13bc63SEmmanuel Vadot				core0 {
228d13bc63SEmmanuel Vadot					cpu = <&CPU0>;
238d13bc63SEmmanuel Vadot				};
248d13bc63SEmmanuel Vadot				core1 {
258d13bc63SEmmanuel Vadot					cpu = <&CPU1>;
268d13bc63SEmmanuel Vadot				};
278d13bc63SEmmanuel Vadot				core2 {
288d13bc63SEmmanuel Vadot					cpu = <&CPU2>;
298d13bc63SEmmanuel Vadot				};
308d13bc63SEmmanuel Vadot				core3 {
318d13bc63SEmmanuel Vadot					cpu = <&CPU3>;
328d13bc63SEmmanuel Vadot				};
338d13bc63SEmmanuel Vadot				core4 {
348d13bc63SEmmanuel Vadot					cpu = <&CPU4>;
358d13bc63SEmmanuel Vadot				};
368d13bc63SEmmanuel Vadot				core5 {
378d13bc63SEmmanuel Vadot					cpu = <&CPU5>;
388d13bc63SEmmanuel Vadot				};
398d13bc63SEmmanuel Vadot				core6 {
408d13bc63SEmmanuel Vadot					cpu = <&CPU6>;
418d13bc63SEmmanuel Vadot				};
428d13bc63SEmmanuel Vadot				core7 {
438d13bc63SEmmanuel Vadot					cpu = <&CPU7>;
448d13bc63SEmmanuel Vadot				};
458d13bc63SEmmanuel Vadot			};
468d13bc63SEmmanuel Vadot		};
478d13bc63SEmmanuel Vadot
488d13bc63SEmmanuel Vadot		CPU0: cpu@0 {
498d13bc63SEmmanuel Vadot			device_type = "cpu";
508d13bc63SEmmanuel Vadot			compatible = "arm,cortex-a55";
518d13bc63SEmmanuel Vadot			reg = <0x0 0x0>;
528d13bc63SEmmanuel Vadot			enable-method = "psci";
538d13bc63SEmmanuel Vadot			cpu-idle-states = <&LIT_CORE_PD>;
548d13bc63SEmmanuel Vadot		};
558d13bc63SEmmanuel Vadot
568d13bc63SEmmanuel Vadot		CPU1: cpu@100 {
578d13bc63SEmmanuel Vadot			device_type = "cpu";
588d13bc63SEmmanuel Vadot			compatible = "arm,cortex-a55";
598d13bc63SEmmanuel Vadot			reg = <0x0 0x100>;
608d13bc63SEmmanuel Vadot			enable-method = "psci";
618d13bc63SEmmanuel Vadot			cpu-idle-states = <&LIT_CORE_PD>;
628d13bc63SEmmanuel Vadot		};
638d13bc63SEmmanuel Vadot
648d13bc63SEmmanuel Vadot		CPU2: cpu@200 {
658d13bc63SEmmanuel Vadot			device_type = "cpu";
668d13bc63SEmmanuel Vadot			compatible = "arm,cortex-a55";
678d13bc63SEmmanuel Vadot			reg = <0x0 0x200>;
688d13bc63SEmmanuel Vadot			enable-method = "psci";
698d13bc63SEmmanuel Vadot			cpu-idle-states = <&LIT_CORE_PD>;
708d13bc63SEmmanuel Vadot		};
718d13bc63SEmmanuel Vadot
728d13bc63SEmmanuel Vadot		CPU3: cpu@300 {
738d13bc63SEmmanuel Vadot			device_type = "cpu";
748d13bc63SEmmanuel Vadot			compatible = "arm,cortex-a55";
758d13bc63SEmmanuel Vadot			reg = <0x0 0x300>;
768d13bc63SEmmanuel Vadot			enable-method = "psci";
778d13bc63SEmmanuel Vadot			cpu-idle-states = <&LIT_CORE_PD>;
788d13bc63SEmmanuel Vadot		};
798d13bc63SEmmanuel Vadot
808d13bc63SEmmanuel Vadot		CPU4: cpu@400 {
818d13bc63SEmmanuel Vadot			device_type = "cpu";
828d13bc63SEmmanuel Vadot			compatible = "arm,cortex-a76";
838d13bc63SEmmanuel Vadot			reg = <0x0 0x400>;
848d13bc63SEmmanuel Vadot			enable-method = "psci";
858d13bc63SEmmanuel Vadot			cpu-idle-states = <&BIG_CORE_PD>;
868d13bc63SEmmanuel Vadot		};
878d13bc63SEmmanuel Vadot
888d13bc63SEmmanuel Vadot		CPU5: cpu@500 {
898d13bc63SEmmanuel Vadot			device_type = "cpu";
908d13bc63SEmmanuel Vadot			compatible = "arm,cortex-a76";
918d13bc63SEmmanuel Vadot			reg = <0x0 0x500>;
928d13bc63SEmmanuel Vadot			enable-method = "psci";
938d13bc63SEmmanuel Vadot			cpu-idle-states = <&BIG_CORE_PD>;
948d13bc63SEmmanuel Vadot		};
958d13bc63SEmmanuel Vadot
968d13bc63SEmmanuel Vadot		CPU6: cpu@600 {
978d13bc63SEmmanuel Vadot			device_type = "cpu";
988d13bc63SEmmanuel Vadot			compatible = "arm,cortex-a76";
998d13bc63SEmmanuel Vadot			reg = <0x0 0x600>;
1008d13bc63SEmmanuel Vadot			enable-method = "psci";
1018d13bc63SEmmanuel Vadot			cpu-idle-states = <&BIG_CORE_PD>;
1028d13bc63SEmmanuel Vadot		};
1038d13bc63SEmmanuel Vadot
1048d13bc63SEmmanuel Vadot		CPU7: cpu@700 {
1058d13bc63SEmmanuel Vadot			device_type = "cpu";
1068d13bc63SEmmanuel Vadot			compatible = "arm,cortex-a76";
1078d13bc63SEmmanuel Vadot			reg = <0x0 0x700>;
1088d13bc63SEmmanuel Vadot			enable-method = "psci";
1098d13bc63SEmmanuel Vadot			cpu-idle-states = <&BIG_CORE_PD>;
1108d13bc63SEmmanuel Vadot		};
1118d13bc63SEmmanuel Vadot	};
1128d13bc63SEmmanuel Vadot
1138d13bc63SEmmanuel Vadot	idle-states {
1148d13bc63SEmmanuel Vadot		entry-method = "psci";
1158d13bc63SEmmanuel Vadot		LIT_CORE_PD: cpu-pd-lit {
1168d13bc63SEmmanuel Vadot			compatible = "arm,idle-state";
1178d13bc63SEmmanuel Vadot			entry-latency-us = <1000>;
1188d13bc63SEmmanuel Vadot			exit-latency-us = <500>;
1198d13bc63SEmmanuel Vadot			min-residency-us = <2500>;
1208d13bc63SEmmanuel Vadot			local-timer-stop;
1218d13bc63SEmmanuel Vadot			arm,psci-suspend-param = <0x00010000>;
1228d13bc63SEmmanuel Vadot		};
1238d13bc63SEmmanuel Vadot
1248d13bc63SEmmanuel Vadot		BIG_CORE_PD: cpu-pd-big {
1258d13bc63SEmmanuel Vadot			compatible = "arm,idle-state";
1268d13bc63SEmmanuel Vadot			entry-latency-us = <4000>;
1278d13bc63SEmmanuel Vadot			exit-latency-us = <4000>;
1288d13bc63SEmmanuel Vadot			min-residency-us = <10000>;
1298d13bc63SEmmanuel Vadot			local-timer-stop;
1308d13bc63SEmmanuel Vadot			arm,psci-suspend-param = <0x00010000>;
1318d13bc63SEmmanuel Vadot		};
1328d13bc63SEmmanuel Vadot	};
1338d13bc63SEmmanuel Vadot
1348d13bc63SEmmanuel Vadot	psci {
1358d13bc63SEmmanuel Vadot		compatible = "arm,psci-0.2";
1368d13bc63SEmmanuel Vadot		method = "smc";
1378d13bc63SEmmanuel Vadot	};
1388d13bc63SEmmanuel Vadot
1398d13bc63SEmmanuel Vadot	timer {
1408d13bc63SEmmanuel Vadot		compatible = "arm,armv8-timer";
1418d13bc63SEmmanuel Vadot		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>, /* Physical Secure PPI */
1428d13bc63SEmmanuel Vadot			     <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>, /* Physical Non-Secure PPI */
1438d13bc63SEmmanuel Vadot			     <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>, /* Virtual PPI */
1448d13bc63SEmmanuel Vadot			     <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>; /* Hipervisor PPI */
1458d13bc63SEmmanuel Vadot	};
1468d13bc63SEmmanuel Vadot
147*0e8011faSEmmanuel Vadot	pmu-a55 {
148*0e8011faSEmmanuel Vadot		compatible = "arm,cortex-a55-pmu";
1498d13bc63SEmmanuel Vadot		interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>,
1508d13bc63SEmmanuel Vadot			     <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>,
1518d13bc63SEmmanuel Vadot			     <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>,
152*0e8011faSEmmanuel Vadot			     <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
153*0e8011faSEmmanuel Vadot		interrupt-affinity = <&CPU0>, <&CPU1>, <&CPU2>, <&CPU3>;
154*0e8011faSEmmanuel Vadot	};
155*0e8011faSEmmanuel Vadot
156*0e8011faSEmmanuel Vadot	pmu-a76 {
157*0e8011faSEmmanuel Vadot		compatible = "arm,cortex-a76-pmu";
158*0e8011faSEmmanuel Vadot		interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
1598d13bc63SEmmanuel Vadot			     <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
1608d13bc63SEmmanuel Vadot			     <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
1618d13bc63SEmmanuel Vadot			     <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
162*0e8011faSEmmanuel Vadot		interrupt-affinity = <&CPU4>, <&CPU5>, <&CPU6>, <&CPU7>;
1638d13bc63SEmmanuel Vadot	};
1648d13bc63SEmmanuel Vadot
1658d13bc63SEmmanuel Vadot	soc: soc {
1668d13bc63SEmmanuel Vadot		compatible = "simple-bus";
1678d13bc63SEmmanuel Vadot		ranges;
1688d13bc63SEmmanuel Vadot		#address-cells = <2>;
1698d13bc63SEmmanuel Vadot		#size-cells = <2>;
1708d13bc63SEmmanuel Vadot
1718d13bc63SEmmanuel Vadot		gic: interrupt-controller@12000000 {
1728d13bc63SEmmanuel Vadot			compatible = "arm,gic-v3";
1738d13bc63SEmmanuel Vadot			reg = <0x0 0x12000000 0 0x20000>,	/* GICD */
1748d13bc63SEmmanuel Vadot			      <0x0 0x12040000 0 0x100000>;	/* GICR */
1758d13bc63SEmmanuel Vadot			#interrupt-cells = <3>;
1768d13bc63SEmmanuel Vadot			#address-cells = <2>;
1778d13bc63SEmmanuel Vadot			#size-cells = <2>;
1788d13bc63SEmmanuel Vadot			redistributor-stride = <0x0 0x20000>;	/* 128KB stride */
1798d13bc63SEmmanuel Vadot			#redistributor-regions = <1>;
1808d13bc63SEmmanuel Vadot			interrupt-controller;
1818d13bc63SEmmanuel Vadot			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
1828d13bc63SEmmanuel Vadot		};
1838d13bc63SEmmanuel Vadot
1848d13bc63SEmmanuel Vadot		apb@20200000 {
1858d13bc63SEmmanuel Vadot			compatible = "simple-bus";
1868d13bc63SEmmanuel Vadot			ranges = <0 0 0x20200000 0x100000>;
1878d13bc63SEmmanuel Vadot			#address-cells = <1>;
1888d13bc63SEmmanuel Vadot			#size-cells = <1>;
1898d13bc63SEmmanuel Vadot
1908d13bc63SEmmanuel Vadot			uart0: serial@0 {
1918d13bc63SEmmanuel Vadot				compatible = "sprd,ums9620-uart",
1928d13bc63SEmmanuel Vadot					     "sprd,sc9836-uart";
1938d13bc63SEmmanuel Vadot				reg = <0 0x100>;
1948d13bc63SEmmanuel Vadot				interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
1958d13bc63SEmmanuel Vadot				clocks = <&ext_26m>;
1968d13bc63SEmmanuel Vadot				status = "disabled";
1978d13bc63SEmmanuel Vadot			};
1988d13bc63SEmmanuel Vadot
1998d13bc63SEmmanuel Vadot			uart1: serial@10000 {
2008d13bc63SEmmanuel Vadot				compatible = "sprd,ums9620-uart",
2018d13bc63SEmmanuel Vadot					     "sprd,sc9836-uart";
2028d13bc63SEmmanuel Vadot				reg = <0x10000 0x100>;
2038d13bc63SEmmanuel Vadot				interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
2048d13bc63SEmmanuel Vadot				clocks = <&ext_26m>;
2058d13bc63SEmmanuel Vadot				status = "disabled";
2068d13bc63SEmmanuel Vadot			};
2078d13bc63SEmmanuel Vadot		};
2088d13bc63SEmmanuel Vadot	};
2098d13bc63SEmmanuel Vadot
2108d13bc63SEmmanuel Vadot	ext_26m: clk-26m {
2118d13bc63SEmmanuel Vadot		compatible = "fixed-clock";
2128d13bc63SEmmanuel Vadot		#clock-cells = <0>;
2138d13bc63SEmmanuel Vadot		clock-frequency = <26000000>;
2148d13bc63SEmmanuel Vadot		clock-output-names = "ext-26m";
2158d13bc63SEmmanuel Vadot	};
2168d13bc63SEmmanuel Vadot
2178d13bc63SEmmanuel Vadot	ext_4m: clk-4m {
2188d13bc63SEmmanuel Vadot		compatible = "fixed-clock";
2198d13bc63SEmmanuel Vadot		#clock-cells = <0>;
2208d13bc63SEmmanuel Vadot		clock-frequency = <4000000>;
2218d13bc63SEmmanuel Vadot		clock-output-names = "ext-4m";
2228d13bc63SEmmanuel Vadot	};
2238d13bc63SEmmanuel Vadot
2248d13bc63SEmmanuel Vadot	ext_32k: clk-32k {
2258d13bc63SEmmanuel Vadot		compatible = "fixed-clock";
2268d13bc63SEmmanuel Vadot		#clock-cells = <0>;
2278d13bc63SEmmanuel Vadot		clock-frequency = <32768>;
2288d13bc63SEmmanuel Vadot		clock-output-names = "ext-32k";
2298d13bc63SEmmanuel Vadot	};
2308d13bc63SEmmanuel Vadot
2318d13bc63SEmmanuel Vadot	rco_100m: clk-100m {
2328d13bc63SEmmanuel Vadot		compatible = "fixed-clock";
2338d13bc63SEmmanuel Vadot		#clock-cells = <0>;
2348d13bc63SEmmanuel Vadot		clock-frequency = <100000000>;
2358d13bc63SEmmanuel Vadot		clock-output-names = "rco-100m";
2368d13bc63SEmmanuel Vadot	};
2378d13bc63SEmmanuel Vadot
2388d13bc63SEmmanuel Vadot	dphy_312m5: dphy-312m5 {
2398d13bc63SEmmanuel Vadot		compatible = "fixed-clock";
2408d13bc63SEmmanuel Vadot		#clock-cells = <0>;
2418d13bc63SEmmanuel Vadot		clock-frequency = <312500000>;
2428d13bc63SEmmanuel Vadot		clock-output-names = "dphy-312m5";
2438d13bc63SEmmanuel Vadot	};
2448d13bc63SEmmanuel Vadot
2458d13bc63SEmmanuel Vadot	dphy_416m7: dphy-416m7 {
2468d13bc63SEmmanuel Vadot		compatible = "fixed-clock";
2478d13bc63SEmmanuel Vadot		#clock-cells = <0>;
2488d13bc63SEmmanuel Vadot		clock-frequency = <416700000>;
2498d13bc63SEmmanuel Vadot		clock-output-names = "dphy-416m7";
2508d13bc63SEmmanuel Vadot	};
2518d13bc63SEmmanuel Vadot};
252