xref: /freebsd/sys/contrib/device-tree/src/arm64/ti/k3-j722s.dtsi (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
101950c46SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-only OR MIT
201950c46SEmmanuel Vadot/*
301950c46SEmmanuel Vadot * Device Tree Source for J722S SoC Family
401950c46SEmmanuel Vadot *
501950c46SEmmanuel Vadot * Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
601950c46SEmmanuel Vadot */
701950c46SEmmanuel Vadot
801950c46SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
901950c46SEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
1001950c46SEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
1101950c46SEmmanuel Vadot#include <dt-bindings/soc/ti,sci_pm_domain.h>
1201950c46SEmmanuel Vadot
13*0e8011faSEmmanuel Vadot#include "k3-pinctrl.h"
1401950c46SEmmanuel Vadot
1501950c46SEmmanuel Vadot/ {
1601950c46SEmmanuel Vadot	model = "Texas Instruments K3 J722S SoC";
1701950c46SEmmanuel Vadot	compatible = "ti,j722s";
18*0e8011faSEmmanuel Vadot	interrupt-parent = <&gic500>;
19*0e8011faSEmmanuel Vadot	#address-cells = <2>;
20*0e8011faSEmmanuel Vadot	#size-cells = <2>;
21*0e8011faSEmmanuel Vadot
22*0e8011faSEmmanuel Vadot	cpus {
23*0e8011faSEmmanuel Vadot		#address-cells = <1>;
24*0e8011faSEmmanuel Vadot		#size-cells = <0>;
25*0e8011faSEmmanuel Vadot
26*0e8011faSEmmanuel Vadot		cpu-map {
27*0e8011faSEmmanuel Vadot			cluster0: cluster0 {
28*0e8011faSEmmanuel Vadot				core0 {
29*0e8011faSEmmanuel Vadot					cpu = <&cpu0>;
30*0e8011faSEmmanuel Vadot				};
31*0e8011faSEmmanuel Vadot
32*0e8011faSEmmanuel Vadot				core1 {
33*0e8011faSEmmanuel Vadot					cpu = <&cpu1>;
34*0e8011faSEmmanuel Vadot				};
35*0e8011faSEmmanuel Vadot
36*0e8011faSEmmanuel Vadot				core2 {
37*0e8011faSEmmanuel Vadot					cpu = <&cpu2>;
38*0e8011faSEmmanuel Vadot				};
39*0e8011faSEmmanuel Vadot
40*0e8011faSEmmanuel Vadot				core3 {
41*0e8011faSEmmanuel Vadot					cpu = <&cpu3>;
42*0e8011faSEmmanuel Vadot				};
43*0e8011faSEmmanuel Vadot			};
44*0e8011faSEmmanuel Vadot		};
45*0e8011faSEmmanuel Vadot
46*0e8011faSEmmanuel Vadot		cpu0: cpu@0 {
47*0e8011faSEmmanuel Vadot			compatible = "arm,cortex-a53";
48*0e8011faSEmmanuel Vadot			reg = <0x000>;
49*0e8011faSEmmanuel Vadot			device_type = "cpu";
50*0e8011faSEmmanuel Vadot			enable-method = "psci";
51*0e8011faSEmmanuel Vadot			i-cache-size = <0x8000>;
52*0e8011faSEmmanuel Vadot			i-cache-line-size = <64>;
53*0e8011faSEmmanuel Vadot			i-cache-sets = <256>;
54*0e8011faSEmmanuel Vadot			d-cache-size = <0x8000>;
55*0e8011faSEmmanuel Vadot			d-cache-line-size = <64>;
56*0e8011faSEmmanuel Vadot			d-cache-sets = <128>;
57*0e8011faSEmmanuel Vadot			next-level-cache = <&l2_0>;
58*0e8011faSEmmanuel Vadot			clocks = <&k3_clks 135 0>;
59*0e8011faSEmmanuel Vadot		};
60*0e8011faSEmmanuel Vadot
61*0e8011faSEmmanuel Vadot		cpu1: cpu@1 {
62*0e8011faSEmmanuel Vadot			compatible = "arm,cortex-a53";
63*0e8011faSEmmanuel Vadot			reg = <0x001>;
64*0e8011faSEmmanuel Vadot			device_type = "cpu";
65*0e8011faSEmmanuel Vadot			enable-method = "psci";
66*0e8011faSEmmanuel Vadot			i-cache-size = <0x8000>;
67*0e8011faSEmmanuel Vadot			i-cache-line-size = <64>;
68*0e8011faSEmmanuel Vadot			i-cache-sets = <256>;
69*0e8011faSEmmanuel Vadot			d-cache-size = <0x8000>;
70*0e8011faSEmmanuel Vadot			d-cache-line-size = <64>;
71*0e8011faSEmmanuel Vadot			d-cache-sets = <128>;
72*0e8011faSEmmanuel Vadot			next-level-cache = <&l2_0>;
73*0e8011faSEmmanuel Vadot			clocks = <&k3_clks 136 0>;
74*0e8011faSEmmanuel Vadot		};
75*0e8011faSEmmanuel Vadot
76*0e8011faSEmmanuel Vadot		cpu2: cpu@2 {
77*0e8011faSEmmanuel Vadot			compatible = "arm,cortex-a53";
78*0e8011faSEmmanuel Vadot			reg = <0x002>;
79*0e8011faSEmmanuel Vadot			device_type = "cpu";
80*0e8011faSEmmanuel Vadot			enable-method = "psci";
81*0e8011faSEmmanuel Vadot			i-cache-size = <0x8000>;
82*0e8011faSEmmanuel Vadot			i-cache-line-size = <64>;
83*0e8011faSEmmanuel Vadot			i-cache-sets = <256>;
84*0e8011faSEmmanuel Vadot			d-cache-size = <0x8000>;
85*0e8011faSEmmanuel Vadot			d-cache-line-size = <64>;
86*0e8011faSEmmanuel Vadot			d-cache-sets = <128>;
87*0e8011faSEmmanuel Vadot			next-level-cache = <&l2_0>;
88*0e8011faSEmmanuel Vadot			clocks = <&k3_clks 137 0>;
89*0e8011faSEmmanuel Vadot		};
90*0e8011faSEmmanuel Vadot
91*0e8011faSEmmanuel Vadot		cpu3: cpu@3 {
92*0e8011faSEmmanuel Vadot			compatible = "arm,cortex-a53";
93*0e8011faSEmmanuel Vadot			reg = <0x003>;
94*0e8011faSEmmanuel Vadot			device_type = "cpu";
95*0e8011faSEmmanuel Vadot			enable-method = "psci";
96*0e8011faSEmmanuel Vadot			i-cache-size = <0x8000>;
97*0e8011faSEmmanuel Vadot			i-cache-line-size = <64>;
98*0e8011faSEmmanuel Vadot			i-cache-sets = <256>;
99*0e8011faSEmmanuel Vadot			d-cache-size = <0x8000>;
100*0e8011faSEmmanuel Vadot			d-cache-line-size = <64>;
101*0e8011faSEmmanuel Vadot			d-cache-sets = <128>;
102*0e8011faSEmmanuel Vadot			next-level-cache = <&l2_0>;
103*0e8011faSEmmanuel Vadot			clocks = <&k3_clks 138 0>;
104*0e8011faSEmmanuel Vadot		};
105*0e8011faSEmmanuel Vadot	};
106*0e8011faSEmmanuel Vadot
107*0e8011faSEmmanuel Vadot	l2_0: l2-cache0 {
108*0e8011faSEmmanuel Vadot		compatible = "cache";
109*0e8011faSEmmanuel Vadot		cache-unified;
110*0e8011faSEmmanuel Vadot		cache-level = <2>;
111*0e8011faSEmmanuel Vadot		cache-size = <0x80000>;
112*0e8011faSEmmanuel Vadot		cache-line-size = <64>;
113*0e8011faSEmmanuel Vadot		cache-sets = <512>;
114*0e8011faSEmmanuel Vadot	};
115*0e8011faSEmmanuel Vadot
116*0e8011faSEmmanuel Vadot	firmware {
117*0e8011faSEmmanuel Vadot		optee {
118*0e8011faSEmmanuel Vadot			compatible = "linaro,optee-tz";
119*0e8011faSEmmanuel Vadot			method = "smc";
120*0e8011faSEmmanuel Vadot		};
121*0e8011faSEmmanuel Vadot
122*0e8011faSEmmanuel Vadot		psci: psci {
123*0e8011faSEmmanuel Vadot			compatible = "arm,psci-1.0";
124*0e8011faSEmmanuel Vadot			method = "smc";
125*0e8011faSEmmanuel Vadot		};
126*0e8011faSEmmanuel Vadot	};
127*0e8011faSEmmanuel Vadot
128*0e8011faSEmmanuel Vadot	a53_timer0: timer-cl0-cpu0 {
129*0e8011faSEmmanuel Vadot		compatible = "arm,armv8-timer";
130*0e8011faSEmmanuel Vadot		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* cntpsirq */
131*0e8011faSEmmanuel Vadot			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* cntpnsirq */
132*0e8011faSEmmanuel Vadot			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* cntvirq */
133*0e8011faSEmmanuel Vadot			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* cnthpirq */
134*0e8011faSEmmanuel Vadot	};
135*0e8011faSEmmanuel Vadot
136*0e8011faSEmmanuel Vadot	pmu: pmu {
137*0e8011faSEmmanuel Vadot		compatible = "arm,cortex-a53-pmu";
138*0e8011faSEmmanuel Vadot		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
139*0e8011faSEmmanuel Vadot	};
14001950c46SEmmanuel Vadot
14101950c46SEmmanuel Vadot	cbass_main: bus@f0000 {
14201950c46SEmmanuel Vadot		compatible = "simple-bus";
14301950c46SEmmanuel Vadot		#address-cells = <2>;
14401950c46SEmmanuel Vadot		#size-cells = <2>;
14501950c46SEmmanuel Vadot
14601950c46SEmmanuel Vadot		ranges = <0x00 0x000f0000 0x00 0x000f0000 0x00 0x00030000>, /* Main MMRs */
14701950c46SEmmanuel Vadot			 <0x00 0x00420000 0x00 0x00420000 0x00 0x00001000>, /* ESM0 */
14801950c46SEmmanuel Vadot			 <0x00 0x00600000 0x00 0x00600000 0x00 0x00001100>, /* GPIO */
14901950c46SEmmanuel Vadot			 <0x00 0x00703000 0x00 0x00703000 0x00 0x00000200>, /* USB0 debug trace */
15001950c46SEmmanuel Vadot			 <0x00 0x0070c000 0x00 0x0070c000 0x00 0x00000200>, /* USB1 debug trace */
15101950c46SEmmanuel Vadot			 <0x00 0x00a40000 0x00 0x00a40000 0x00 0x00000800>, /* Timesync router */
15201950c46SEmmanuel Vadot			 <0x00 0x01000000 0x00 0x01000000 0x00 0x01b28400>, /* First peripheral window */
15301950c46SEmmanuel Vadot			 <0x00 0x08000000 0x00 0x08000000 0x00 0x00200000>, /* Main CPSW */
15401950c46SEmmanuel Vadot			 <0x00 0x0d000000 0x00 0x0d000000 0x00 0x00800000>, /* PCIE_0 */
15501950c46SEmmanuel Vadot			 <0x00 0x0e000000 0x00 0x0e000000 0x00 0x01d20000>, /* Second peripheral window */
15601950c46SEmmanuel Vadot			 <0x00 0x0fd80000 0x00 0x0fd80000 0x00 0x00080000>, /* GPU */
15701950c46SEmmanuel Vadot			 <0x00 0x0fd20000 0x00 0x0fd20000 0x00 0x00000100>, /* JPEGENC0_CORE */
15801950c46SEmmanuel Vadot			 <0x00 0x0fd20200 0x00 0x0fd20200 0x00 0x00000200>, /* JPEGENC0_CORE_MMU */
15901950c46SEmmanuel Vadot			 <0x00 0x20000000 0x00 0x20000000 0x00 0x0a008000>, /* Third peripheral window */
16001950c46SEmmanuel Vadot			 <0x00 0x30040000 0x00 0x30040000 0x00 0x00080000>, /* PRUSS-M */
16101950c46SEmmanuel Vadot			 <0x00 0x301C0000 0x00 0x301C0000 0x00 0x00001000>, /* DPHY-TX */
16201950c46SEmmanuel Vadot			 <0x00 0x30101000 0x00 0x30101000 0x00 0x00080100>, /* CSI window */
16301950c46SEmmanuel Vadot			 <0x00 0x30200000 0x00 0x30200000 0x00 0x00010000>, /* DSS */
16401950c46SEmmanuel Vadot			 <0x00 0x30210000 0x00 0x30210000 0x00 0x00010000>, /* VPU */
16501950c46SEmmanuel Vadot			 <0x00 0x30220000 0x00 0x30220000 0x00 0x00010000>, /* DSS1 */
16601950c46SEmmanuel Vadot			 <0x00 0x30270000 0x00 0x30270000 0x00 0x00010000>, /* DSI-base1 */
16701950c46SEmmanuel Vadot			 <0x00 0x30500000 0x00 0x30500000 0x00 0x00100000>, /* DSI-base2 */
16801950c46SEmmanuel Vadot			 <0x00 0x31000000 0x00 0x31000000 0x00 0x00050000>, /* USB0 DWC3 Core window */
16901950c46SEmmanuel Vadot			 <0x00 0x31200000 0x00 0x31200000 0x00 0x00040000>, /* USB1 DWC3 Core window */
17001950c46SEmmanuel Vadot			 <0x00 0x40900000 0x00 0x40900000 0x00 0x00030000>, /* SA3UL */
17101950c46SEmmanuel Vadot			 <0x00 0x43600000 0x00 0x43600000 0x00 0x00010000>, /* SA3 sproxy data */
17201950c46SEmmanuel Vadot			 <0x00 0x44043000 0x00 0x44043000 0x00 0x00000fe0>, /* TI SCI DEBUG */
17301950c46SEmmanuel Vadot			 <0x00 0x44860000 0x00 0x44860000 0x00 0x00040000>, /* SA3 sproxy config */
17401950c46SEmmanuel Vadot			 <0x00 0x48000000 0x00 0x48000000 0x00 0x06408000>, /* DMSS */
17501950c46SEmmanuel Vadot			 <0x00 0x60000000 0x00 0x60000000 0x00 0x08000000>, /* FSS0 DAT1 */
17601950c46SEmmanuel Vadot			 <0x00 0x68000000 0x00 0x68000000 0x00 0x08000000>, /* PCIe0 DAT0 */
17701950c46SEmmanuel Vadot			 <0x00 0x70000000 0x00 0x70000000 0x00 0x00040000>, /* OCSRAM */
17801950c46SEmmanuel Vadot			 <0x00 0x78400000 0x00 0x78400000 0x00 0x00008000>, /* MAIN R5FSS0 ATCM */
17901950c46SEmmanuel Vadot			 <0x00 0x78500000 0x00 0x78500000 0x00 0x00008000>, /* MAIN R5FSS0 BTCM */
18001950c46SEmmanuel Vadot			 <0x00 0x7e000000 0x00 0x7e000000 0x00 0x00200000>, /* C7X_0 L2SRAM */
18101950c46SEmmanuel Vadot			 <0x00 0x7e200000 0x00 0x7e200000 0x00 0x00200000>, /* C7X_1 L2SRAM */
18201950c46SEmmanuel Vadot			 <0x01 0x00000000 0x01 0x00000000 0x00 0x00310000>, /* A53 PERIPHBASE */
18301950c46SEmmanuel Vadot			 <0x05 0x00000000 0x05 0x00000000 0x01 0x00000000>, /* FSS0 DAT3 */
18401950c46SEmmanuel Vadot			 <0x06 0x00000000 0x06 0x00000000 0x01 0x00000000>, /* PCIe0 DAT1 */
18501950c46SEmmanuel Vadot
18601950c46SEmmanuel Vadot			 /* MCU Domain Range */
18701950c46SEmmanuel Vadot			 <0x00 0x04000000 0x00 0x04000000 0x00 0x01ff1400>,
18801950c46SEmmanuel Vadot			 <0x00 0x79000000 0x00 0x79000000 0x00 0x00008000>,
18901950c46SEmmanuel Vadot			 <0x00 0x79020000 0x00 0x79020000 0x00 0x00008000>,
19001950c46SEmmanuel Vadot			 <0x00 0x79100000 0x00 0x79100000 0x00 0x00040000>,
19101950c46SEmmanuel Vadot			 <0x00 0x79140000 0x00 0x79140000 0x00 0x00040000>,
19201950c46SEmmanuel Vadot
19301950c46SEmmanuel Vadot			 /* Wakeup Domain Range */
19401950c46SEmmanuel Vadot			 <0x00 0x00b00000 0x00 0x00b00000 0x00 0x00002400>,
19501950c46SEmmanuel Vadot			 <0x00 0x2b000000 0x00 0x2b000000 0x00 0x00300400>,
19601950c46SEmmanuel Vadot			 <0x00 0x43000000 0x00 0x43000000 0x00 0x00020000>,
19701950c46SEmmanuel Vadot			 <0x00 0x78000000 0x00 0x78000000 0x00 0x00008000>,
19801950c46SEmmanuel Vadot			 <0x00 0x78100000 0x00 0x78100000 0x00 0x00008000>;
199*0e8011faSEmmanuel Vadot
200*0e8011faSEmmanuel Vadot		cbass_mcu: bus@4000000 {
201*0e8011faSEmmanuel Vadot			compatible = "simple-bus";
202*0e8011faSEmmanuel Vadot			#address-cells = <2>;
203*0e8011faSEmmanuel Vadot			#size-cells = <2>;
204*0e8011faSEmmanuel Vadot			ranges = <0x00 0x04000000 0x00 0x04000000 0x00 0x01ff1400>, /* Peripheral window */
205*0e8011faSEmmanuel Vadot				 <0x00 0x79000000 0x00 0x79000000 0x00 0x00008000>, /* MCU R5 ATCM */
206*0e8011faSEmmanuel Vadot				 <0x00 0x79020000 0x00 0x79020000 0x00 0x00008000>, /* MCU R5 BTCM */
207*0e8011faSEmmanuel Vadot				 <0x00 0x79100000 0x00 0x79100000 0x00 0x00040000>, /* MCU IRAM0 */
208*0e8011faSEmmanuel Vadot				 <0x00 0x79140000 0x00 0x79140000 0x00 0x00040000>; /* MCU IRAM1 */
209*0e8011faSEmmanuel Vadot			bootph-all;
210*0e8011faSEmmanuel Vadot		};
211*0e8011faSEmmanuel Vadot
212*0e8011faSEmmanuel Vadot		cbass_wakeup: bus@b00000 {
213*0e8011faSEmmanuel Vadot			compatible = "simple-bus";
214*0e8011faSEmmanuel Vadot			#address-cells = <2>;
215*0e8011faSEmmanuel Vadot			#size-cells = <2>;
216*0e8011faSEmmanuel Vadot			ranges = <0x00 0x00b00000 0x00 0x00b00000 0x00 0x00002400>, /* VTM */
217*0e8011faSEmmanuel Vadot				 <0x00 0x2b000000 0x00 0x2b000000 0x00 0x00300400>, /* Peripheral Window */
218*0e8011faSEmmanuel Vadot				 <0x00 0x43000000 0x00 0x43000000 0x00 0x00020000>, /* WKUP CTRL MMR */
219*0e8011faSEmmanuel Vadot				 <0x00 0x78000000 0x00 0x78000000 0x00 0x00008000>, /* DM R5 ATCM*/
220*0e8011faSEmmanuel Vadot				 <0x00 0x78100000 0x00 0x78100000 0x00 0x00008000>; /* DM R5 BTCM*/
221*0e8011faSEmmanuel Vadot			bootph-all;
22201950c46SEmmanuel Vadot		};
22301950c46SEmmanuel Vadot	};
22401950c46SEmmanuel Vadot
225*0e8011faSEmmanuel Vadot	#include "k3-am62p-j722s-common-thermal.dtsi"
22601950c46SEmmanuel Vadot};
22701950c46SEmmanuel Vadot
228*0e8011faSEmmanuel Vadot/* Include peripherals shared with AM62P */
229*0e8011faSEmmanuel Vadot#include "k3-am62p-j722s-common-main.dtsi"
230*0e8011faSEmmanuel Vadot#include "k3-am62p-j722s-common-mcu.dtsi"
231*0e8011faSEmmanuel Vadot#include "k3-am62p-j722s-common-wakeup.dtsi"
232*0e8011faSEmmanuel Vadot
233*0e8011faSEmmanuel Vadot/* Include J722S specific peripherals */
234*0e8011faSEmmanuel Vadot#include "k3-j722s-main.dtsi"
235