xref: /openbmc/linux/arch/arm64/boot/dts/ti/k3-j784s4.dtsi (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
14664ebd8SApurva Nandan// SPDX-License-Identifier: GPL-2.0
24664ebd8SApurva Nandan/*
34664ebd8SApurva Nandan * Device Tree Source for J784S4 SoC Family
44664ebd8SApurva Nandan *
55e880618SNishanth Menon * TRM (SPRUJ43 JULY 2022): https://www.ti.com/lit/zip/spruj52
64664ebd8SApurva Nandan *
74664ebd8SApurva Nandan * Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com/
84664ebd8SApurva Nandan *
94664ebd8SApurva Nandan */
104664ebd8SApurva Nandan
114664ebd8SApurva Nandan#include <dt-bindings/interrupt-controller/irq.h>
124664ebd8SApurva Nandan#include <dt-bindings/interrupt-controller/arm-gic.h>
134664ebd8SApurva Nandan#include <dt-bindings/soc/ti,sci_pm_domain.h>
144664ebd8SApurva Nandan
15fe49f2d7SNishanth Menon#include "k3-pinctrl.h"
16fe49f2d7SNishanth Menon
174664ebd8SApurva Nandan/ {
184664ebd8SApurva Nandan	model = "Texas Instruments K3 J784S4 SoC";
194664ebd8SApurva Nandan	compatible = "ti,j784s4";
204664ebd8SApurva Nandan	interrupt-parent = <&gic500>;
214664ebd8SApurva Nandan	#address-cells = <2>;
224664ebd8SApurva Nandan	#size-cells = <2>;
234664ebd8SApurva Nandan
244664ebd8SApurva Nandan	cpus {
254664ebd8SApurva Nandan		#address-cells = <1>;
264664ebd8SApurva Nandan		#size-cells = <0>;
274664ebd8SApurva Nandan		cpu-map {
284664ebd8SApurva Nandan			cluster0: cluster0 {
294664ebd8SApurva Nandan				core0 {
304664ebd8SApurva Nandan					cpu = <&cpu0>;
314664ebd8SApurva Nandan				};
324664ebd8SApurva Nandan
334664ebd8SApurva Nandan				core1 {
344664ebd8SApurva Nandan					cpu = <&cpu1>;
354664ebd8SApurva Nandan				};
364664ebd8SApurva Nandan
374664ebd8SApurva Nandan				core2 {
384664ebd8SApurva Nandan					cpu = <&cpu2>;
394664ebd8SApurva Nandan				};
404664ebd8SApurva Nandan
414664ebd8SApurva Nandan				core3 {
424664ebd8SApurva Nandan					cpu = <&cpu3>;
434664ebd8SApurva Nandan				};
444664ebd8SApurva Nandan			};
454664ebd8SApurva Nandan
464664ebd8SApurva Nandan			cluster1: cluster1 {
474664ebd8SApurva Nandan				core0 {
484664ebd8SApurva Nandan					cpu = <&cpu4>;
494664ebd8SApurva Nandan				};
504664ebd8SApurva Nandan
514664ebd8SApurva Nandan				core1 {
524664ebd8SApurva Nandan					cpu = <&cpu5>;
534664ebd8SApurva Nandan				};
544664ebd8SApurva Nandan
554664ebd8SApurva Nandan				core2 {
564664ebd8SApurva Nandan					cpu = <&cpu6>;
574664ebd8SApurva Nandan				};
584664ebd8SApurva Nandan
594664ebd8SApurva Nandan				core3 {
604664ebd8SApurva Nandan					cpu = <&cpu7>;
614664ebd8SApurva Nandan				};
624664ebd8SApurva Nandan			};
634664ebd8SApurva Nandan		};
644664ebd8SApurva Nandan
654664ebd8SApurva Nandan		cpu0: cpu@0 {
664664ebd8SApurva Nandan			compatible = "arm,cortex-a72";
674664ebd8SApurva Nandan			reg = <0x000>;
684664ebd8SApurva Nandan			device_type = "cpu";
694664ebd8SApurva Nandan			enable-method = "psci";
704664ebd8SApurva Nandan			i-cache-size = <0xc000>;
714664ebd8SApurva Nandan			i-cache-line-size = <64>;
724664ebd8SApurva Nandan			i-cache-sets = <256>;
734664ebd8SApurva Nandan			d-cache-size = <0x8000>;
744664ebd8SApurva Nandan			d-cache-line-size = <64>;
754664ebd8SApurva Nandan			d-cache-sets = <256>;
764664ebd8SApurva Nandan			next-level-cache = <&L2_0>;
774664ebd8SApurva Nandan		};
784664ebd8SApurva Nandan
794664ebd8SApurva Nandan		cpu1: cpu@1 {
804664ebd8SApurva Nandan			compatible = "arm,cortex-a72";
814664ebd8SApurva Nandan			reg = <0x001>;
824664ebd8SApurva Nandan			device_type = "cpu";
834664ebd8SApurva Nandan			enable-method = "psci";
844664ebd8SApurva Nandan			i-cache-size = <0xc000>;
854664ebd8SApurva Nandan			i-cache-line-size = <64>;
864664ebd8SApurva Nandan			i-cache-sets = <256>;
874664ebd8SApurva Nandan			d-cache-size = <0x8000>;
884664ebd8SApurva Nandan			d-cache-line-size = <64>;
894664ebd8SApurva Nandan			d-cache-sets = <256>;
904664ebd8SApurva Nandan			next-level-cache = <&L2_0>;
914664ebd8SApurva Nandan		};
924664ebd8SApurva Nandan
934664ebd8SApurva Nandan		cpu2: cpu@2 {
944664ebd8SApurva Nandan			compatible = "arm,cortex-a72";
954664ebd8SApurva Nandan			reg = <0x002>;
964664ebd8SApurva Nandan			device_type = "cpu";
974664ebd8SApurva Nandan			enable-method = "psci";
984664ebd8SApurva Nandan			i-cache-size = <0xc000>;
994664ebd8SApurva Nandan			i-cache-line-size = <64>;
1004664ebd8SApurva Nandan			i-cache-sets = <256>;
1014664ebd8SApurva Nandan			d-cache-size = <0x8000>;
1024664ebd8SApurva Nandan			d-cache-line-size = <64>;
1034664ebd8SApurva Nandan			d-cache-sets = <256>;
1044664ebd8SApurva Nandan			next-level-cache = <&L2_0>;
1054664ebd8SApurva Nandan		};
1064664ebd8SApurva Nandan
1074664ebd8SApurva Nandan		cpu3: cpu@3 {
1084664ebd8SApurva Nandan			compatible = "arm,cortex-a72";
1094664ebd8SApurva Nandan			reg = <0x003>;
1104664ebd8SApurva Nandan			device_type = "cpu";
1114664ebd8SApurva Nandan			enable-method = "psci";
1124664ebd8SApurva Nandan			i-cache-size = <0xc000>;
1134664ebd8SApurva Nandan			i-cache-line-size = <64>;
1144664ebd8SApurva Nandan			i-cache-sets = <256>;
1154664ebd8SApurva Nandan			d-cache-size = <0x8000>;
1164664ebd8SApurva Nandan			d-cache-line-size = <64>;
1174664ebd8SApurva Nandan			d-cache-sets = <256>;
1184664ebd8SApurva Nandan			next-level-cache = <&L2_0>;
1194664ebd8SApurva Nandan		};
1204664ebd8SApurva Nandan
1214664ebd8SApurva Nandan		cpu4: cpu@100 {
1224664ebd8SApurva Nandan			compatible = "arm,cortex-a72";
1234664ebd8SApurva Nandan			reg = <0x100>;
1244664ebd8SApurva Nandan			device_type = "cpu";
1254664ebd8SApurva Nandan			enable-method = "psci";
1264664ebd8SApurva Nandan			i-cache-size = <0xc000>;
1274664ebd8SApurva Nandan			i-cache-line-size = <64>;
1284664ebd8SApurva Nandan			i-cache-sets = <256>;
1294664ebd8SApurva Nandan			d-cache-size = <0x8000>;
1304664ebd8SApurva Nandan			d-cache-line-size = <64>;
1314664ebd8SApurva Nandan			d-cache-sets = <256>;
1324664ebd8SApurva Nandan			next-level-cache = <&L2_1>;
1334664ebd8SApurva Nandan		};
1344664ebd8SApurva Nandan
1354664ebd8SApurva Nandan		cpu5: cpu@101 {
1364664ebd8SApurva Nandan			compatible = "arm,cortex-a72";
1374664ebd8SApurva Nandan			reg = <0x101>;
1384664ebd8SApurva Nandan			device_type = "cpu";
1394664ebd8SApurva Nandan			enable-method = "psci";
1404664ebd8SApurva Nandan			i-cache-size = <0xc000>;
1414664ebd8SApurva Nandan			i-cache-line-size = <64>;
1424664ebd8SApurva Nandan			i-cache-sets = <256>;
1434664ebd8SApurva Nandan			d-cache-size = <0x8000>;
1444664ebd8SApurva Nandan			d-cache-line-size = <64>;
1454664ebd8SApurva Nandan			d-cache-sets = <256>;
1464664ebd8SApurva Nandan			next-level-cache = <&L2_1>;
1474664ebd8SApurva Nandan		};
1484664ebd8SApurva Nandan
1494664ebd8SApurva Nandan		cpu6: cpu@102 {
1504664ebd8SApurva Nandan			compatible = "arm,cortex-a72";
1514664ebd8SApurva Nandan			reg = <0x102>;
1524664ebd8SApurva Nandan			device_type = "cpu";
1534664ebd8SApurva Nandan			enable-method = "psci";
1544664ebd8SApurva Nandan			i-cache-size = <0xc000>;
1554664ebd8SApurva Nandan			i-cache-line-size = <64>;
1564664ebd8SApurva Nandan			i-cache-sets = <256>;
1574664ebd8SApurva Nandan			d-cache-size = <0x8000>;
1584664ebd8SApurva Nandan			d-cache-line-size = <64>;
1594664ebd8SApurva Nandan			d-cache-sets = <256>;
1604664ebd8SApurva Nandan			next-level-cache = <&L2_1>;
1614664ebd8SApurva Nandan		};
1624664ebd8SApurva Nandan
1634664ebd8SApurva Nandan		cpu7: cpu@103 {
1644664ebd8SApurva Nandan			compatible = "arm,cortex-a72";
1654664ebd8SApurva Nandan			reg = <0x103>;
1664664ebd8SApurva Nandan			device_type = "cpu";
1674664ebd8SApurva Nandan			enable-method = "psci";
1684664ebd8SApurva Nandan			i-cache-size = <0xc000>;
1694664ebd8SApurva Nandan			i-cache-line-size = <64>;
1704664ebd8SApurva Nandan			i-cache-sets = <256>;
1714664ebd8SApurva Nandan			d-cache-size = <0x8000>;
1724664ebd8SApurva Nandan			d-cache-line-size = <64>;
1734664ebd8SApurva Nandan			d-cache-sets = <256>;
1744664ebd8SApurva Nandan			next-level-cache = <&L2_1>;
1754664ebd8SApurva Nandan		};
1764664ebd8SApurva Nandan	};
1774664ebd8SApurva Nandan
1784664ebd8SApurva Nandan	L2_0: l2-cache0 {
1794664ebd8SApurva Nandan		compatible = "cache";
1804664ebd8SApurva Nandan		cache-level = <2>;
1814664ebd8SApurva Nandan		cache-unified;
1824664ebd8SApurva Nandan		cache-size = <0x200000>;
1834664ebd8SApurva Nandan		cache-line-size = <64>;
1844664ebd8SApurva Nandan		cache-sets = <1024>;
1854664ebd8SApurva Nandan		next-level-cache = <&msmc_l3>;
1864664ebd8SApurva Nandan	};
1874664ebd8SApurva Nandan
1884664ebd8SApurva Nandan	L2_1: l2-cache1 {
1894664ebd8SApurva Nandan		compatible = "cache";
1904664ebd8SApurva Nandan		cache-level = <2>;
1914664ebd8SApurva Nandan		cache-unified;
1924664ebd8SApurva Nandan		cache-size = <0x200000>;
1934664ebd8SApurva Nandan		cache-line-size = <64>;
1944664ebd8SApurva Nandan		cache-sets = <1024>;
1954664ebd8SApurva Nandan		next-level-cache = <&msmc_l3>;
1964664ebd8SApurva Nandan	};
1974664ebd8SApurva Nandan
1984664ebd8SApurva Nandan	msmc_l3: l3-cache0 {
1994664ebd8SApurva Nandan		compatible = "cache";
2004664ebd8SApurva Nandan		cache-level = <3>;
2014664ebd8SApurva Nandan		cache-unified;
2024664ebd8SApurva Nandan	};
2034664ebd8SApurva Nandan
2044664ebd8SApurva Nandan	firmware {
2054664ebd8SApurva Nandan		optee {
2064664ebd8SApurva Nandan			compatible = "linaro,optee-tz";
2074664ebd8SApurva Nandan			method = "smc";
2084664ebd8SApurva Nandan		};
2094664ebd8SApurva Nandan
2104664ebd8SApurva Nandan		psci: psci {
2114664ebd8SApurva Nandan			compatible = "arm,psci-1.0";
2124664ebd8SApurva Nandan			method = "smc";
2134664ebd8SApurva Nandan		};
2144664ebd8SApurva Nandan	};
2154664ebd8SApurva Nandan
2164664ebd8SApurva Nandan	a72_timer0: timer-cl0-cpu0 {
2174664ebd8SApurva Nandan		compatible = "arm,armv8-timer";
2184664ebd8SApurva Nandan		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* cntpsirq */
2194664ebd8SApurva Nandan			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* cntpnsirq */
2204664ebd8SApurva Nandan			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* cntvirq */
2214664ebd8SApurva Nandan			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* cnthpirq */
2224664ebd8SApurva Nandan	};
2234664ebd8SApurva Nandan
2244664ebd8SApurva Nandan	pmu: pmu {
2254664ebd8SApurva Nandan		compatible = "arm,cortex-a72-pmu";
2264664ebd8SApurva Nandan		/* Recommendation from GIC500 TRM Table A.3 */
2274664ebd8SApurva Nandan		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
2284664ebd8SApurva Nandan	};
2294664ebd8SApurva Nandan
2304664ebd8SApurva Nandan	cbass_main: bus@100000 {
231*3a408698SApurva Nandan		bootph-all;
2324664ebd8SApurva Nandan		compatible = "simple-bus";
2334664ebd8SApurva Nandan		#address-cells = <2>;
2344664ebd8SApurva Nandan		#size-cells = <2>;
2354664ebd8SApurva Nandan		ranges = <0x00 0x00100000 0x00 0x00100000 0x00 0x00020000>, /* ctrl mmr */
2364664ebd8SApurva Nandan			 <0x00 0x00600000 0x00 0x00600000 0x00 0x00031100>, /* GPIO */
2374664ebd8SApurva Nandan			 <0x00 0x01000000 0x00 0x01000000 0x00 0x0d000000>, /* Most peripherals */
2384664ebd8SApurva Nandan			 <0x00 0x0d000000 0x00 0x0d000000 0x00 0x01000000>, /* PCIe Core*/
2394664ebd8SApurva Nandan			 <0x00 0x10000000 0x00 0x10000000 0x00 0x08000000>, /* PCIe0 DAT0 */
2404664ebd8SApurva Nandan			 <0x00 0x18000000 0x00 0x18000000 0x00 0x08000000>, /* PCIe1 DAT0 */
2414664ebd8SApurva Nandan			 <0x00 0x64800000 0x00 0x64800000 0x00 0x0070c000>, /* C71_1 */
2424664ebd8SApurva Nandan			 <0x00 0x65800000 0x00 0x65800000 0x00 0x0070c000>, /* C71_2 */
2434664ebd8SApurva Nandan			 <0x00 0x66800000 0x00 0x66800000 0x00 0x0070c000>, /* C71_3 */
2444664ebd8SApurva Nandan			 <0x00 0x67800000 0x00 0x67800000 0x00 0x0070c000>, /* C71_4 */
2454664ebd8SApurva Nandan			 <0x00 0x6f000000 0x00 0x6f000000 0x00 0x00310000>, /* A72 PERIPHBASE */
2464664ebd8SApurva Nandan			 <0x00 0x70000000 0x00 0x70000000 0x00 0x00400000>, /* MSMC RAM */
2474664ebd8SApurva Nandan			 <0x00 0x30000000 0x00 0x30000000 0x00 0x0c400000>, /* MAIN NAVSS */
2484664ebd8SApurva Nandan			 <0x41 0x00000000 0x41 0x00000000 0x01 0x00000000>, /* PCIe1 DAT1 */
2494664ebd8SApurva Nandan			 <0x4e 0x20000000 0x4e 0x20000000 0x00 0x00080000>, /* GPU */
2504664ebd8SApurva Nandan
2514664ebd8SApurva Nandan			 /* MCUSS_WKUP Range */
2524664ebd8SApurva Nandan			 <0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>,
2534664ebd8SApurva Nandan			 <0x00 0x40200000 0x00 0x40200000 0x00 0x00998400>,
2544664ebd8SApurva Nandan			 <0x00 0x40f00000 0x00 0x40f00000 0x00 0x00020000>,
2554664ebd8SApurva Nandan			 <0x00 0x41000000 0x00 0x41000000 0x00 0x00020000>,
2564664ebd8SApurva Nandan			 <0x00 0x41400000 0x00 0x41400000 0x00 0x00020000>,
2574664ebd8SApurva Nandan			 <0x00 0x41c00000 0x00 0x41c00000 0x00 0x00100000>,
2584664ebd8SApurva Nandan			 <0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>,
2594664ebd8SApurva Nandan			 <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>,
2604664ebd8SApurva Nandan			 <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>,
2614664ebd8SApurva Nandan			 <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>,
2624664ebd8SApurva Nandan			 <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>,
2634664ebd8SApurva Nandan			 <0x05 0x00000000 0x05 0x00000000 0x01 0x00000000>,
2644664ebd8SApurva Nandan			 <0x07 0x00000000 0x07 0x00000000 0x01 0x00000000>;
2654664ebd8SApurva Nandan
2664664ebd8SApurva Nandan		cbass_mcu_wakeup: bus@28380000 {
267*3a408698SApurva Nandan			bootph-all;
2684664ebd8SApurva Nandan			compatible = "simple-bus";
2694664ebd8SApurva Nandan			#address-cells = <2>;
2704664ebd8SApurva Nandan			#size-cells = <2>;
2714664ebd8SApurva Nandan			ranges = <0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>, /* MCU NAVSS*/
2724664ebd8SApurva Nandan				 <0x00 0x40200000 0x00 0x40200000 0x00 0x00998400>, /* First peripheral window */
2734664ebd8SApurva Nandan				 <0x00 0x40f00000 0x00 0x40f00000 0x00 0x00020000>, /* CTRL_MMR0 */
2744664ebd8SApurva Nandan				 <0x00 0x41000000 0x00 0x41000000 0x00 0x00020000>, /* MCU R5F Core0 */
2754664ebd8SApurva Nandan				 <0x00 0x41400000 0x00 0x41400000 0x00 0x00020000>, /* MCU R5F Core1 */
2764664ebd8SApurva Nandan				 <0x00 0x41c00000 0x00 0x41c00000 0x00 0x00100000>, /* MCU SRAM */
2774664ebd8SApurva Nandan				 <0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>, /* WKUP peripheral window */
2784664ebd8SApurva Nandan				 <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>, /* MMRs, remaining NAVSS */
2794664ebd8SApurva Nandan				 <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>, /* CPSW */
2804664ebd8SApurva Nandan				 <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>, /* OSPI register space */
2814664ebd8SApurva Nandan				 <0x00 0x50000000 0x00 0x50000000 0x00 0x10000000>, /* FSS OSPI0/1 data region 0 */
2824664ebd8SApurva Nandan				 <0x05 0x00000000 0x05 0x00000000 0x01 0x00000000>, /* FSS OSPI0 data region 3 */
2834664ebd8SApurva Nandan				 <0x07 0x00000000 0x07 0x00000000 0x01 0x00000000>; /* FSS OSPI1 data region 3*/
2844664ebd8SApurva Nandan		};
2854664ebd8SApurva Nandan	};
28664821fbfSKeerthy
28764821fbfSKeerthy	thermal_zones: thermal-zones {
28864821fbfSKeerthy		#include "k3-j784s4-thermal.dtsi"
28964821fbfSKeerthy	};
2904664ebd8SApurva Nandan};
2914664ebd8SApurva Nandan
2924664ebd8SApurva Nandan/* Now include peripherals from each bus segment */
2934664ebd8SApurva Nandan#include "k3-j784s4-main.dtsi"
2944664ebd8SApurva Nandan#include "k3-j784s4-mcu-wakeup.dtsi"
295