xref: /openbmc/linux/arch/arm64/boot/dts/qcom/ipq9574.dtsi (revision 46384ac7a61885ee29cf918777d5f81a6446e9e6)
197cb36ffSDevi Priya// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
297cb36ffSDevi Priya/*
397cb36ffSDevi Priya * IPQ9574 SoC device tree source
497cb36ffSDevi Priya *
597cb36ffSDevi Priya * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
697cb36ffSDevi Priya * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
797cb36ffSDevi Priya */
897cb36ffSDevi Priya
997cb36ffSDevi Priya#include <dt-bindings/interrupt-controller/arm-gic.h>
1097cb36ffSDevi Priya#include <dt-bindings/clock/qcom,ipq9574-gcc.h>
1197cb36ffSDevi Priya#include <dt-bindings/reset/qcom,ipq9574-gcc.h>
1297cb36ffSDevi Priya
1397cb36ffSDevi Priya/ {
1497cb36ffSDevi Priya	interrupt-parent = <&intc>;
1597cb36ffSDevi Priya	#address-cells = <2>;
1697cb36ffSDevi Priya	#size-cells = <2>;
1797cb36ffSDevi Priya
1897cb36ffSDevi Priya	clocks {
1997cb36ffSDevi Priya		bias_pll_ubi_nc_clk: bias-pll-ubi-nc-clk {
2097cb36ffSDevi Priya			compatible = "fixed-clock";
2197cb36ffSDevi Priya			clock-frequency = <353000000>;
2297cb36ffSDevi Priya			#clock-cells = <0>;
2397cb36ffSDevi Priya		};
2497cb36ffSDevi Priya
2597cb36ffSDevi Priya		sleep_clk: sleep-clk {
2697cb36ffSDevi Priya			compatible = "fixed-clock";
2797cb36ffSDevi Priya			#clock-cells = <0>;
2897cb36ffSDevi Priya		};
2997cb36ffSDevi Priya
3097cb36ffSDevi Priya		xo_board_clk: xo-board-clk {
3197cb36ffSDevi Priya			compatible = "fixed-clock";
3297cb36ffSDevi Priya			#clock-cells = <0>;
3397cb36ffSDevi Priya		};
3497cb36ffSDevi Priya	};
3597cb36ffSDevi Priya
3697cb36ffSDevi Priya	cpus {
3797cb36ffSDevi Priya		#address-cells = <1>;
3897cb36ffSDevi Priya		#size-cells = <0>;
3997cb36ffSDevi Priya
4097cb36ffSDevi Priya		CPU0: cpu@0 {
4197cb36ffSDevi Priya			device_type = "cpu";
4297cb36ffSDevi Priya			compatible = "arm,cortex-a73";
4397cb36ffSDevi Priya			reg = <0x0>;
4497cb36ffSDevi Priya			enable-method = "psci";
4597cb36ffSDevi Priya			next-level-cache = <&L2_0>;
4697cb36ffSDevi Priya		};
4797cb36ffSDevi Priya
4897cb36ffSDevi Priya		CPU1: cpu@1 {
4997cb36ffSDevi Priya			device_type = "cpu";
5097cb36ffSDevi Priya			compatible = "arm,cortex-a73";
5197cb36ffSDevi Priya			reg = <0x1>;
5297cb36ffSDevi Priya			enable-method = "psci";
5397cb36ffSDevi Priya			next-level-cache = <&L2_0>;
5497cb36ffSDevi Priya		};
5597cb36ffSDevi Priya
5697cb36ffSDevi Priya		CPU2: cpu@2 {
5797cb36ffSDevi Priya			device_type = "cpu";
5897cb36ffSDevi Priya			compatible = "arm,cortex-a73";
5997cb36ffSDevi Priya			reg = <0x2>;
6097cb36ffSDevi Priya			enable-method = "psci";
6197cb36ffSDevi Priya			next-level-cache = <&L2_0>;
6297cb36ffSDevi Priya		};
6397cb36ffSDevi Priya
6497cb36ffSDevi Priya		CPU3: cpu@3 {
6597cb36ffSDevi Priya			device_type = "cpu";
6697cb36ffSDevi Priya			compatible = "arm,cortex-a73";
6797cb36ffSDevi Priya			reg = <0x3>;
6897cb36ffSDevi Priya			enable-method = "psci";
6997cb36ffSDevi Priya			next-level-cache = <&L2_0>;
7097cb36ffSDevi Priya		};
7197cb36ffSDevi Priya
7297cb36ffSDevi Priya		L2_0: l2-cache {
7397cb36ffSDevi Priya			compatible = "cache";
7497cb36ffSDevi Priya			cache-level = <2>;
7597cb36ffSDevi Priya		};
7697cb36ffSDevi Priya	};
7797cb36ffSDevi Priya
78590db411SPoovendhan Selvaraj	firmware {
79590db411SPoovendhan Selvaraj		scm {
80590db411SPoovendhan Selvaraj			compatible = "qcom,scm-ipq9574", "qcom,scm";
81590db411SPoovendhan Selvaraj			qcom,dload-mode = <&tcsr 0x6100>;
82590db411SPoovendhan Selvaraj		};
83590db411SPoovendhan Selvaraj	};
84590db411SPoovendhan Selvaraj
8597cb36ffSDevi Priya	memory@40000000 {
8697cb36ffSDevi Priya		device_type = "memory";
8797cb36ffSDevi Priya		/* We expect the bootloader to fill in the size */
8897cb36ffSDevi Priya		reg = <0x0 0x40000000 0x0 0x0>;
8997cb36ffSDevi Priya	};
9097cb36ffSDevi Priya
9197cb36ffSDevi Priya	pmu {
9297cb36ffSDevi Priya		compatible = "arm,cortex-a73-pmu";
9397cb36ffSDevi Priya		interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
9497cb36ffSDevi Priya	};
9597cb36ffSDevi Priya
9697cb36ffSDevi Priya	psci {
9797cb36ffSDevi Priya		compatible = "arm,psci-1.0";
9897cb36ffSDevi Priya		method = "smc";
9997cb36ffSDevi Priya	};
10097cb36ffSDevi Priya
10197cb36ffSDevi Priya	reserved-memory {
10297cb36ffSDevi Priya		#address-cells = <2>;
10397cb36ffSDevi Priya		#size-cells = <2>;
10497cb36ffSDevi Priya		ranges;
10597cb36ffSDevi Priya
10697cb36ffSDevi Priya		tz_region: tz@4a600000 {
10797cb36ffSDevi Priya			reg = <0x0 0x4a600000 0x0 0x400000>;
10897cb36ffSDevi Priya			no-map;
10997cb36ffSDevi Priya		};
110*46384ac7SPoovendhan Selvaraj
111*46384ac7SPoovendhan Selvaraj		smem@4aa00000 {
112*46384ac7SPoovendhan Selvaraj			compatible = "qcom,smem";
113*46384ac7SPoovendhan Selvaraj			reg = <0x0 0x4aa00000 0x0 0x00100000>;
114*46384ac7SPoovendhan Selvaraj			hwlocks = <&tcsr_mutex 0>;
115*46384ac7SPoovendhan Selvaraj			no-map;
116*46384ac7SPoovendhan Selvaraj		};
11797cb36ffSDevi Priya	};
11897cb36ffSDevi Priya
11997cb36ffSDevi Priya	soc: soc@0 {
12097cb36ffSDevi Priya		compatible = "simple-bus";
12197cb36ffSDevi Priya		#address-cells = <1>;
12297cb36ffSDevi Priya		#size-cells = <1>;
12397cb36ffSDevi Priya		ranges = <0 0 0 0xffffffff>;
12497cb36ffSDevi Priya
12597cb36ffSDevi Priya		tlmm: pinctrl@1000000 {
12697cb36ffSDevi Priya			compatible = "qcom,ipq9574-tlmm";
12797cb36ffSDevi Priya			reg = <0x01000000 0x300000>;
12897cb36ffSDevi Priya			interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
12997cb36ffSDevi Priya			gpio-controller;
13097cb36ffSDevi Priya			#gpio-cells = <2>;
13197cb36ffSDevi Priya			gpio-ranges = <&tlmm 0 0 65>;
13297cb36ffSDevi Priya			interrupt-controller;
13397cb36ffSDevi Priya			#interrupt-cells = <2>;
13497cb36ffSDevi Priya
13597cb36ffSDevi Priya			uart2_pins: uart2-state {
13697cb36ffSDevi Priya				pins = "gpio34", "gpio35";
13797cb36ffSDevi Priya				function = "blsp2_uart";
13897cb36ffSDevi Priya				drive-strength = <8>;
13997cb36ffSDevi Priya				bias-disable;
14097cb36ffSDevi Priya			};
14197cb36ffSDevi Priya		};
14297cb36ffSDevi Priya
14397cb36ffSDevi Priya		gcc: clock-controller@1800000 {
14497cb36ffSDevi Priya			compatible = "qcom,ipq9574-gcc";
14597cb36ffSDevi Priya			reg = <0x01800000 0x80000>;
14697cb36ffSDevi Priya			clocks = <&xo_board_clk>,
14797cb36ffSDevi Priya				 <&sleep_clk>,
14897cb36ffSDevi Priya				 <&bias_pll_ubi_nc_clk>,
14997cb36ffSDevi Priya				 <0>,
15097cb36ffSDevi Priya				 <0>,
15197cb36ffSDevi Priya				 <0>,
15297cb36ffSDevi Priya				 <0>,
15397cb36ffSDevi Priya				 <0>;
15497cb36ffSDevi Priya			#clock-cells = <1>;
15597cb36ffSDevi Priya			#reset-cells = <1>;
15697cb36ffSDevi Priya			#power-domain-cells = <1>;
15797cb36ffSDevi Priya		};
15897cb36ffSDevi Priya
159*46384ac7SPoovendhan Selvaraj		tcsr_mutex: hwlock@1905000 {
160*46384ac7SPoovendhan Selvaraj			compatible = "qcom,tcsr-mutex";
161*46384ac7SPoovendhan Selvaraj			reg = <0x01905000 0x20000>;
162*46384ac7SPoovendhan Selvaraj			#hwlock-cells = <1>;
163*46384ac7SPoovendhan Selvaraj		};
164*46384ac7SPoovendhan Selvaraj
165590db411SPoovendhan Selvaraj		tcsr: syscon@1937000 {
166590db411SPoovendhan Selvaraj			compatible = "qcom,tcsr-ipq9574", "syscon";
167590db411SPoovendhan Selvaraj			reg = <0x01937000 0x21000>;
168590db411SPoovendhan Selvaraj		};
169590db411SPoovendhan Selvaraj
17097cb36ffSDevi Priya		sdhc_1: mmc@7804000 {
17197cb36ffSDevi Priya			compatible = "qcom,ipq9574-sdhci", "qcom,sdhci-msm-v5";
17297cb36ffSDevi Priya			reg = <0x07804000 0x1000>, <0x07805000 0x1000>;
17397cb36ffSDevi Priya			reg-names = "hc", "cqhci";
17497cb36ffSDevi Priya
17597cb36ffSDevi Priya			interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
17697cb36ffSDevi Priya				     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
17797cb36ffSDevi Priya			interrupt-names = "hc_irq", "pwr_irq";
17897cb36ffSDevi Priya
17997cb36ffSDevi Priya			clocks = <&gcc GCC_SDCC1_AHB_CLK>,
18097cb36ffSDevi Priya				 <&gcc GCC_SDCC1_APPS_CLK>,
18197cb36ffSDevi Priya				 <&xo_board_clk>;
18297cb36ffSDevi Priya			clock-names = "iface", "core", "xo";
18397cb36ffSDevi Priya			non-removable;
18497cb36ffSDevi Priya			status = "disabled";
18597cb36ffSDevi Priya		};
18697cb36ffSDevi Priya
18797cb36ffSDevi Priya		blsp1_uart2: serial@78b1000 {
18897cb36ffSDevi Priya			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
18997cb36ffSDevi Priya			reg = <0x078b1000 0x200>;
19097cb36ffSDevi Priya			interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
19197cb36ffSDevi Priya			clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>,
19297cb36ffSDevi Priya				 <&gcc GCC_BLSP1_AHB_CLK>;
19397cb36ffSDevi Priya			clock-names = "core", "iface";
19497cb36ffSDevi Priya			status = "disabled";
19597cb36ffSDevi Priya		};
19697cb36ffSDevi Priya
19797cb36ffSDevi Priya		intc: interrupt-controller@b000000 {
19897cb36ffSDevi Priya			compatible = "qcom,msm-qgic2";
19997cb36ffSDevi Priya			reg = <0x0b000000 0x1000>,  /* GICD */
20097cb36ffSDevi Priya			      <0x0b002000 0x1000>,  /* GICC */
20197cb36ffSDevi Priya			      <0x0b001000 0x1000>,  /* GICH */
20297cb36ffSDevi Priya			      <0x0b004000 0x1000>;  /* GICV */
20397cb36ffSDevi Priya			#address-cells = <1>;
20497cb36ffSDevi Priya			#size-cells = <1>;
20597cb36ffSDevi Priya			interrupt-controller;
20697cb36ffSDevi Priya			#interrupt-cells = <3>;
20797cb36ffSDevi Priya			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
20897cb36ffSDevi Priya			ranges = <0 0x0b00c000 0x3000>;
20997cb36ffSDevi Priya
21097cb36ffSDevi Priya			v2m0: v2m@0 {
21197cb36ffSDevi Priya				compatible = "arm,gic-v2m-frame";
21297cb36ffSDevi Priya				reg = <0x00000000 0xffd>;
21397cb36ffSDevi Priya				msi-controller;
21497cb36ffSDevi Priya			};
21597cb36ffSDevi Priya
21697cb36ffSDevi Priya			v2m1: v2m@1000 {
21797cb36ffSDevi Priya				compatible = "arm,gic-v2m-frame";
21897cb36ffSDevi Priya				reg = <0x00001000 0xffd>;
21997cb36ffSDevi Priya				msi-controller;
22097cb36ffSDevi Priya			};
22197cb36ffSDevi Priya
22297cb36ffSDevi Priya			v2m2: v2m@2000 {
22397cb36ffSDevi Priya				compatible = "arm,gic-v2m-frame";
22497cb36ffSDevi Priya				reg = <0x00002000 0xffd>;
22597cb36ffSDevi Priya				msi-controller;
22697cb36ffSDevi Priya			};
22797cb36ffSDevi Priya		};
22897cb36ffSDevi Priya
22997cb36ffSDevi Priya		timer@b120000 {
23097cb36ffSDevi Priya			compatible = "arm,armv7-timer-mem";
23197cb36ffSDevi Priya			reg = <0x0b120000 0x1000>;
23297cb36ffSDevi Priya			#address-cells = <1>;
23397cb36ffSDevi Priya			#size-cells = <1>;
23497cb36ffSDevi Priya			ranges;
23597cb36ffSDevi Priya
23697cb36ffSDevi Priya			frame@b120000 {
23797cb36ffSDevi Priya				reg = <0x0b121000 0x1000>,
23897cb36ffSDevi Priya				      <0x0b122000 0x1000>;
23997cb36ffSDevi Priya				frame-number = <0>;
24097cb36ffSDevi Priya				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
24197cb36ffSDevi Priya					     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
24297cb36ffSDevi Priya			};
24397cb36ffSDevi Priya
24497cb36ffSDevi Priya			frame@b123000 {
24597cb36ffSDevi Priya				reg = <0x0b123000 0x1000>;
24697cb36ffSDevi Priya				frame-number = <1>;
24797cb36ffSDevi Priya				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
24897cb36ffSDevi Priya				status = "disabled";
24997cb36ffSDevi Priya			};
25097cb36ffSDevi Priya
25197cb36ffSDevi Priya			frame@b124000 {
25297cb36ffSDevi Priya				reg = <0x0b124000 0x1000>;
25397cb36ffSDevi Priya				frame-number = <2>;
25497cb36ffSDevi Priya				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
25597cb36ffSDevi Priya				status = "disabled";
25697cb36ffSDevi Priya			};
25797cb36ffSDevi Priya
25897cb36ffSDevi Priya			frame@b125000 {
25997cb36ffSDevi Priya				reg = <0x0b125000 0x1000>;
26097cb36ffSDevi Priya				frame-number = <3>;
26197cb36ffSDevi Priya				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
26297cb36ffSDevi Priya				status = "disabled";
26397cb36ffSDevi Priya			};
26497cb36ffSDevi Priya
26597cb36ffSDevi Priya			frame@b126000 {
26697cb36ffSDevi Priya				reg = <0x0b126000 0x1000>;
26797cb36ffSDevi Priya				frame-number = <4>;
26897cb36ffSDevi Priya				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
26997cb36ffSDevi Priya				status = "disabled";
27097cb36ffSDevi Priya			};
27197cb36ffSDevi Priya
27297cb36ffSDevi Priya			frame@b127000 {
27397cb36ffSDevi Priya				reg = <0x0b127000 0x1000>;
27497cb36ffSDevi Priya				frame-number = <5>;
27597cb36ffSDevi Priya				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
27697cb36ffSDevi Priya				status = "disabled";
27797cb36ffSDevi Priya			};
27897cb36ffSDevi Priya
27997cb36ffSDevi Priya			frame@b128000 {
28097cb36ffSDevi Priya				reg = <0x0b128000 0x1000>;
28197cb36ffSDevi Priya				frame-number = <6>;
28297cb36ffSDevi Priya				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
28397cb36ffSDevi Priya				status = "disabled";
28497cb36ffSDevi Priya			};
28597cb36ffSDevi Priya		};
28697cb36ffSDevi Priya	};
28797cb36ffSDevi Priya
28897cb36ffSDevi Priya	timer {
28997cb36ffSDevi Priya		compatible = "arm,armv8-timer";
29097cb36ffSDevi Priya		interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
29197cb36ffSDevi Priya			     <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
29297cb36ffSDevi Priya			     <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
29397cb36ffSDevi Priya			     <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
29497cb36ffSDevi Priya	};
29597cb36ffSDevi Priya};
296