xref: /freebsd/sys/contrib/device-tree/src/arm64/ti/k3-j721s2.dtsi (revision e67e85659c0de33e617e5fbf1028c6e8b49eee53)
1*e67e8565SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
2*e67e8565SEmmanuel Vadot/*
3*e67e8565SEmmanuel Vadot * Device Tree Source for J721S2 SoC Family
4*e67e8565SEmmanuel Vadot *
5*e67e8565SEmmanuel Vadot * TRM (SPRUJ28 – NOVEMBER 2021) : http://www.ti.com/lit/pdf/spruj28
6*e67e8565SEmmanuel Vadot *
7*e67e8565SEmmanuel Vadot * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
8*e67e8565SEmmanuel Vadot *
9*e67e8565SEmmanuel Vadot */
10*e67e8565SEmmanuel Vadot
11*e67e8565SEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
12*e67e8565SEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
13*e67e8565SEmmanuel Vadot#include <dt-bindings/pinctrl/k3.h>
14*e67e8565SEmmanuel Vadot#include <dt-bindings/soc/ti,sci_pm_domain.h>
15*e67e8565SEmmanuel Vadot
16*e67e8565SEmmanuel Vadot/ {
17*e67e8565SEmmanuel Vadot
18*e67e8565SEmmanuel Vadot	model = "Texas Instruments K3 J721S2 SoC";
19*e67e8565SEmmanuel Vadot	compatible = "ti,j721s2";
20*e67e8565SEmmanuel Vadot	interrupt-parent = <&gic500>;
21*e67e8565SEmmanuel Vadot	#address-cells = <2>;
22*e67e8565SEmmanuel Vadot	#size-cells = <2>;
23*e67e8565SEmmanuel Vadot
24*e67e8565SEmmanuel Vadot	chosen { };
25*e67e8565SEmmanuel Vadot
26*e67e8565SEmmanuel Vadot	cpus {
27*e67e8565SEmmanuel Vadot		#address-cells = <1>;
28*e67e8565SEmmanuel Vadot		#size-cells = <0>;
29*e67e8565SEmmanuel Vadot		cpu-map {
30*e67e8565SEmmanuel Vadot			cluster0: cluster0 {
31*e67e8565SEmmanuel Vadot				core0 {
32*e67e8565SEmmanuel Vadot					cpu = <&cpu0>;
33*e67e8565SEmmanuel Vadot				};
34*e67e8565SEmmanuel Vadot
35*e67e8565SEmmanuel Vadot				core1 {
36*e67e8565SEmmanuel Vadot					cpu = <&cpu1>;
37*e67e8565SEmmanuel Vadot				};
38*e67e8565SEmmanuel Vadot			};
39*e67e8565SEmmanuel Vadot		};
40*e67e8565SEmmanuel Vadot
41*e67e8565SEmmanuel Vadot		cpu0: cpu@0 {
42*e67e8565SEmmanuel Vadot			compatible = "arm,cortex-a72";
43*e67e8565SEmmanuel Vadot			reg = <0x000>;
44*e67e8565SEmmanuel Vadot			device_type = "cpu";
45*e67e8565SEmmanuel Vadot			enable-method = "psci";
46*e67e8565SEmmanuel Vadot			i-cache-size = <0xc000>;
47*e67e8565SEmmanuel Vadot			i-cache-line-size = <64>;
48*e67e8565SEmmanuel Vadot			i-cache-sets = <256>;
49*e67e8565SEmmanuel Vadot			d-cache-size = <0x8000>;
50*e67e8565SEmmanuel Vadot			d-cache-line-size = <64>;
51*e67e8565SEmmanuel Vadot			d-cache-sets = <256>;
52*e67e8565SEmmanuel Vadot			next-level-cache = <&L2_0>;
53*e67e8565SEmmanuel Vadot		};
54*e67e8565SEmmanuel Vadot
55*e67e8565SEmmanuel Vadot		cpu1: cpu@1 {
56*e67e8565SEmmanuel Vadot			compatible = "arm,cortex-a72";
57*e67e8565SEmmanuel Vadot			reg = <0x001>;
58*e67e8565SEmmanuel Vadot			device_type = "cpu";
59*e67e8565SEmmanuel Vadot			enable-method = "psci";
60*e67e8565SEmmanuel Vadot			i-cache-size = <0xc000>;
61*e67e8565SEmmanuel Vadot			i-cache-line-size = <64>;
62*e67e8565SEmmanuel Vadot			i-cache-sets = <256>;
63*e67e8565SEmmanuel Vadot			d-cache-size = <0x8000>;
64*e67e8565SEmmanuel Vadot			d-cache-line-size = <64>;
65*e67e8565SEmmanuel Vadot			d-cache-sets = <256>;
66*e67e8565SEmmanuel Vadot			next-level-cache = <&L2_0>;
67*e67e8565SEmmanuel Vadot		};
68*e67e8565SEmmanuel Vadot	};
69*e67e8565SEmmanuel Vadot
70*e67e8565SEmmanuel Vadot	L2_0: l2-cache0 {
71*e67e8565SEmmanuel Vadot		compatible = "cache";
72*e67e8565SEmmanuel Vadot		cache-level = <2>;
73*e67e8565SEmmanuel Vadot		cache-size = <0x100000>;
74*e67e8565SEmmanuel Vadot		cache-line-size = <64>;
75*e67e8565SEmmanuel Vadot		cache-sets = <1024>;
76*e67e8565SEmmanuel Vadot		next-level-cache = <&msmc_l3>;
77*e67e8565SEmmanuel Vadot	};
78*e67e8565SEmmanuel Vadot
79*e67e8565SEmmanuel Vadot	msmc_l3: l3-cache0 {
80*e67e8565SEmmanuel Vadot		compatible = "cache";
81*e67e8565SEmmanuel Vadot		cache-level = <3>;
82*e67e8565SEmmanuel Vadot	};
83*e67e8565SEmmanuel Vadot
84*e67e8565SEmmanuel Vadot	firmware {
85*e67e8565SEmmanuel Vadot		optee {
86*e67e8565SEmmanuel Vadot			compatible = "linaro,optee-tz";
87*e67e8565SEmmanuel Vadot			method = "smc";
88*e67e8565SEmmanuel Vadot		};
89*e67e8565SEmmanuel Vadot
90*e67e8565SEmmanuel Vadot		psci: psci {
91*e67e8565SEmmanuel Vadot			compatible = "arm,psci-1.0";
92*e67e8565SEmmanuel Vadot			method = "smc";
93*e67e8565SEmmanuel Vadot		};
94*e67e8565SEmmanuel Vadot	};
95*e67e8565SEmmanuel Vadot
96*e67e8565SEmmanuel Vadot	a72_timer0: timer-cl0-cpu0 {
97*e67e8565SEmmanuel Vadot		compatible = "arm,armv8-timer";
98*e67e8565SEmmanuel Vadot		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* cntpsirq */
99*e67e8565SEmmanuel Vadot			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* cntpnsirq */
100*e67e8565SEmmanuel Vadot			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* cntvirq */
101*e67e8565SEmmanuel Vadot			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* cnthpirq */
102*e67e8565SEmmanuel Vadot
103*e67e8565SEmmanuel Vadot	};
104*e67e8565SEmmanuel Vadot
105*e67e8565SEmmanuel Vadot	pmu: pmu {
106*e67e8565SEmmanuel Vadot		compatible = "arm,cortex-a72-pmu";
107*e67e8565SEmmanuel Vadot		/* Recommendation from GIC500 TRM Table A.3 */
108*e67e8565SEmmanuel Vadot		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
109*e67e8565SEmmanuel Vadot	};
110*e67e8565SEmmanuel Vadot
111*e67e8565SEmmanuel Vadot	cbass_main: bus@100000 {
112*e67e8565SEmmanuel Vadot		compatible = "simple-bus";
113*e67e8565SEmmanuel Vadot		#address-cells = <2>;
114*e67e8565SEmmanuel Vadot		#size-cells = <2>;
115*e67e8565SEmmanuel Vadot		ranges = <0x00 0x00100000 0x00 0x00100000 0x00 0x00020000>, /* ctrl mmr */
116*e67e8565SEmmanuel Vadot			 <0x00 0x00600000 0x00 0x00600000 0x00 0x00031100>, /* GPIO */
117*e67e8565SEmmanuel Vadot			 <0x00 0x01000000 0x00 0x01000000 0x00 0x0d000000>, /* Most peripherals */
118*e67e8565SEmmanuel Vadot			 <0x00 0x0d800000 0x00 0x0d800000 0x00 0x00800000>, /* PCIe Core*/
119*e67e8565SEmmanuel Vadot			 <0x00 0x18000000 0x00 0x18000000 0x00 0x08000000>, /* PCIe1 DAT0 */
120*e67e8565SEmmanuel Vadot			 <0x00 0x64800000 0x00 0x64800000 0x00 0x0070c000>, /* C71_1 */
121*e67e8565SEmmanuel Vadot			 <0x00 0x65800000 0x00 0x65800000 0x00 0x0070c000>, /* C71_2 */
122*e67e8565SEmmanuel Vadot			 <0x00 0x70000000 0x00 0x70000000 0x00 0x00400000>, /* MSMC RAM */
123*e67e8565SEmmanuel Vadot			 <0x00 0x30000000 0x00 0x30000000 0x00 0x0c400000>, /* MAIN NAVSS */
124*e67e8565SEmmanuel Vadot			 <0x41 0x00000000 0x41 0x00000000 0x01 0x00000000>, /* PCIe1 DAT1 */
125*e67e8565SEmmanuel Vadot			 <0x4e 0x20000000 0x4e 0x20000000 0x00 0x00080000>, /* GPU */
126*e67e8565SEmmanuel Vadot
127*e67e8565SEmmanuel Vadot			 /* MCUSS_WKUP Range */
128*e67e8565SEmmanuel Vadot			 <0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>,
129*e67e8565SEmmanuel Vadot			 <0x00 0x40200000 0x00 0x40200000 0x00 0x00998400>,
130*e67e8565SEmmanuel Vadot			 <0x00 0x40f00000 0x00 0x40f00000 0x00 0x00020000>,
131*e67e8565SEmmanuel Vadot			 <0x00 0x41000000 0x00 0x41000000 0x00 0x00020000>,
132*e67e8565SEmmanuel Vadot			 <0x00 0x41400000 0x00 0x41400000 0x00 0x00020000>,
133*e67e8565SEmmanuel Vadot			 <0x00 0x41c00000 0x00 0x41c00000 0x00 0x00100000>,
134*e67e8565SEmmanuel Vadot			 <0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>,
135*e67e8565SEmmanuel Vadot			 <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>,
136*e67e8565SEmmanuel Vadot			 <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>,
137*e67e8565SEmmanuel Vadot			 <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>,
138*e67e8565SEmmanuel Vadot			 <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>,
139*e67e8565SEmmanuel Vadot			 <0x05 0x00000000 0x05 0x00000000 0x01 0x00000000>,
140*e67e8565SEmmanuel Vadot			 <0x07 0x00000000 0x07 0x00000000 0x01 0x00000000>;
141*e67e8565SEmmanuel Vadot
142*e67e8565SEmmanuel Vadot		cbass_mcu_wakeup: bus@28380000 {
143*e67e8565SEmmanuel Vadot			compatible = "simple-bus";
144*e67e8565SEmmanuel Vadot			#address-cells = <2>;
145*e67e8565SEmmanuel Vadot			#size-cells = <2>;
146*e67e8565SEmmanuel Vadot			ranges = <0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>, /* MCU NAVSS*/
147*e67e8565SEmmanuel Vadot				 <0x00 0x40200000 0x00 0x40200000 0x00 0x00998400>, /* First peripheral window */
148*e67e8565SEmmanuel Vadot				 <0x00 0x40f00000 0x00 0x40f00000 0x00 0x00020000>, /* CTRL_MMR0 */
149*e67e8565SEmmanuel Vadot				 <0x00 0x41000000 0x00 0x41000000 0x00 0x00020000>, /* MCU R5F Core0 */
150*e67e8565SEmmanuel Vadot				 <0x00 0x41400000 0x00 0x41400000 0x00 0x00020000>, /* MCU R5F Core1 */
151*e67e8565SEmmanuel Vadot				 <0x00 0x41c00000 0x00 0x41c00000 0x00 0x00100000>, /* MCU SRAM */
152*e67e8565SEmmanuel Vadot				 <0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>, /* WKUP peripheral window */
153*e67e8565SEmmanuel Vadot				 <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>, /* MMRs, remaining NAVSS */
154*e67e8565SEmmanuel Vadot				 <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>, /* CPSW */
155*e67e8565SEmmanuel Vadot				 <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>, /* OSPI register space */
156*e67e8565SEmmanuel Vadot				 <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>, /* FSS OSPI0/1 data region 0 */
157*e67e8565SEmmanuel Vadot				 <0x05 0x00000000 0x05 0x00000000 0x01 0x00000000>, /* FSS OSPI0 data region 3 */
158*e67e8565SEmmanuel Vadot				 <0x07 0x00000000 0x07 0x00000000 0x01 0x00000000>; /* FSS OSPI1 data region 3*/
159*e67e8565SEmmanuel Vadot
160*e67e8565SEmmanuel Vadot		};
161*e67e8565SEmmanuel Vadot
162*e67e8565SEmmanuel Vadot	};
163*e67e8565SEmmanuel Vadot};
164*e67e8565SEmmanuel Vadot
165*e67e8565SEmmanuel Vadot/* Now include peripherals from each bus segment */
166*e67e8565SEmmanuel Vadot#include "k3-j721s2-main.dtsi"
167*e67e8565SEmmanuel Vadot#include "k3-j721s2-mcu-wakeup.dtsi"
168