xref: /freebsd/sys/contrib/device-tree/src/arm64/blaize/blaize-blzp1600.dtsi (revision ae5de77ed78ae54d86cead5604869212e8008e6b)
12846c905SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0+
22846c905SEmmanuel Vadot/*
32846c905SEmmanuel Vadot * Copyright (c) 2024 Blaize, Inc. All rights reserved.
42846c905SEmmanuel Vadot */
52846c905SEmmanuel Vadot
62846c905SEmmanuel Vadot/dts-v1/;
72846c905SEmmanuel Vadot
82846c905SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
92846c905SEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
102846c905SEmmanuel Vadot
112846c905SEmmanuel Vadot/ {
122846c905SEmmanuel Vadot	interrupt-parent = <&gic>;
132846c905SEmmanuel Vadot	#address-cells = <2>;
142846c905SEmmanuel Vadot	#size-cells = <2>;
152846c905SEmmanuel Vadot
162846c905SEmmanuel Vadot	cpus {
172846c905SEmmanuel Vadot		#address-cells = <2>;
182846c905SEmmanuel Vadot		#size-cells = <0>;
192846c905SEmmanuel Vadot
202846c905SEmmanuel Vadot		cpu0: cpu@0 {
212846c905SEmmanuel Vadot			compatible = "arm,cortex-a53";
222846c905SEmmanuel Vadot			reg = <0x0 0x0>;
232846c905SEmmanuel Vadot			device_type = "cpu";
242846c905SEmmanuel Vadot			enable-method = "psci";
252846c905SEmmanuel Vadot			next-level-cache = <&l2>;
262846c905SEmmanuel Vadot		};
272846c905SEmmanuel Vadot
282846c905SEmmanuel Vadot		cpu1: cpu@1 {
292846c905SEmmanuel Vadot			compatible = "arm,cortex-a53";
302846c905SEmmanuel Vadot			reg = <0x0 0x1>;
312846c905SEmmanuel Vadot			device_type = "cpu";
322846c905SEmmanuel Vadot			enable-method = "psci";
332846c905SEmmanuel Vadot			next-level-cache = <&l2>;
342846c905SEmmanuel Vadot		};
352846c905SEmmanuel Vadot
362846c905SEmmanuel Vadot		l2: l2-cache0 {
372846c905SEmmanuel Vadot			compatible = "cache";
382846c905SEmmanuel Vadot			cache-level = <2>;
392846c905SEmmanuel Vadot			cache-unified;
402846c905SEmmanuel Vadot		};
412846c905SEmmanuel Vadot	};
422846c905SEmmanuel Vadot
432846c905SEmmanuel Vadot	firmware {
442846c905SEmmanuel Vadot		scmi {
452846c905SEmmanuel Vadot			compatible = "arm,scmi-smc";
462846c905SEmmanuel Vadot			arm,smc-id = <0x82002000>;
472846c905SEmmanuel Vadot			#address-cells = <1>;
482846c905SEmmanuel Vadot			#size-cells = <0>;
492846c905SEmmanuel Vadot
502846c905SEmmanuel Vadot			shmem = <&scmi0_shm>;
512846c905SEmmanuel Vadot
522846c905SEmmanuel Vadot			scmi_clk: protocol@14 {
532846c905SEmmanuel Vadot				reg = <0x14>;
542846c905SEmmanuel Vadot				#clock-cells = <1>;
552846c905SEmmanuel Vadot			};
562846c905SEmmanuel Vadot
572846c905SEmmanuel Vadot			scmi_rst: protocol@16 {
582846c905SEmmanuel Vadot				reg = <0x16>;
592846c905SEmmanuel Vadot				#reset-cells = <1>;
602846c905SEmmanuel Vadot			};
612846c905SEmmanuel Vadot		};
622846c905SEmmanuel Vadot	};
632846c905SEmmanuel Vadot
642846c905SEmmanuel Vadot	pmu {
652846c905SEmmanuel Vadot		compatible = "arm,cortex-a53-pmu";
662846c905SEmmanuel Vadot		interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
672846c905SEmmanuel Vadot			     <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
682846c905SEmmanuel Vadot		interrupt-affinity = <&cpu0>, <&cpu1>;
692846c905SEmmanuel Vadot	};
702846c905SEmmanuel Vadot
712846c905SEmmanuel Vadot	psci {
722846c905SEmmanuel Vadot		compatible = "arm,psci-1.0", "arm,psci-0.2";
732846c905SEmmanuel Vadot		method = "smc";
742846c905SEmmanuel Vadot	};
752846c905SEmmanuel Vadot
762846c905SEmmanuel Vadot	reserved-memory {
772846c905SEmmanuel Vadot		#address-cells = <2>;
782846c905SEmmanuel Vadot		#size-cells = <2>;
792846c905SEmmanuel Vadot		ranges;
802846c905SEmmanuel Vadot
812846c905SEmmanuel Vadot		/* SCMI reserved buffer space on DDR space */
822846c905SEmmanuel Vadot		scmi0_shm: scmi-shmem@800 {
832846c905SEmmanuel Vadot			compatible = "arm,scmi-shmem";
842846c905SEmmanuel Vadot			reg = <0x0 0x800 0x0 0x80>;
852846c905SEmmanuel Vadot		};
862846c905SEmmanuel Vadot	};
872846c905SEmmanuel Vadot
882846c905SEmmanuel Vadot	timer {
892846c905SEmmanuel Vadot		compatible = "arm,armv8-timer";
902846c905SEmmanuel Vadot		interrupts = /* Physical Secure PPI */
912846c905SEmmanuel Vadot			     <GIC_PPI 13 (GIC_CPU_MASK_RAW(0x3) |
922846c905SEmmanuel Vadot					  IRQ_TYPE_LEVEL_LOW)>,
932846c905SEmmanuel Vadot			     /* Physical Non-Secure PPI */
942846c905SEmmanuel Vadot			     <GIC_PPI 14 (GIC_CPU_MASK_RAW(0x3) |
952846c905SEmmanuel Vadot					  IRQ_TYPE_LEVEL_LOW)>,
962846c905SEmmanuel Vadot			     /* Hypervisor PPI */
972846c905SEmmanuel Vadot			     <GIC_PPI 10 (GIC_CPU_MASK_RAW(0x3) |
982846c905SEmmanuel Vadot					  IRQ_TYPE_LEVEL_LOW)>,
992846c905SEmmanuel Vadot			     /* Virtual PPI */
1002846c905SEmmanuel Vadot			     <GIC_PPI 11 (GIC_CPU_MASK_RAW(0x3) |
1012846c905SEmmanuel Vadot					  IRQ_TYPE_LEVEL_LOW)>;
1022846c905SEmmanuel Vadot	};
1032846c905SEmmanuel Vadot
1042846c905SEmmanuel Vadot	soc@200000000 {
1052846c905SEmmanuel Vadot		compatible = "simple-bus";
1062846c905SEmmanuel Vadot		#address-cells = <1>;
1072846c905SEmmanuel Vadot		#size-cells = <1>;
1082846c905SEmmanuel Vadot		ranges = <0x0 0x2 0x0 0x850000>;
1092846c905SEmmanuel Vadot
1102846c905SEmmanuel Vadot		gic: interrupt-controller@410000 {
1112846c905SEmmanuel Vadot			compatible = "arm,gic-400";
1122846c905SEmmanuel Vadot			reg = <0x410000 0x20000>,
1132846c905SEmmanuel Vadot			      <0x420000 0x20000>,
1142846c905SEmmanuel Vadot			      <0x440000 0x20000>,
1152846c905SEmmanuel Vadot			      <0x460000 0x20000>;
1162846c905SEmmanuel Vadot			#interrupt-cells = <3>;
1172846c905SEmmanuel Vadot			#address-cells = <0>;
1182846c905SEmmanuel Vadot			interrupt-controller;
1192846c905SEmmanuel Vadot			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_RAW(0x3) |
1202846c905SEmmanuel Vadot						 IRQ_TYPE_LEVEL_LOW)>;
1212846c905SEmmanuel Vadot		};
1222846c905SEmmanuel Vadot
123*ae5de77eSEmmanuel Vadot		gpio0: gpio@4c0000 {
124*ae5de77eSEmmanuel Vadot			compatible = "blaize,blzp1600-gpio";
125*ae5de77eSEmmanuel Vadot			reg = <0x4c0000 0x1000>;
126*ae5de77eSEmmanuel Vadot			gpio-controller;
127*ae5de77eSEmmanuel Vadot			#gpio-cells = <2>;
128*ae5de77eSEmmanuel Vadot			ngpios = <32>;
129*ae5de77eSEmmanuel Vadot			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
130*ae5de77eSEmmanuel Vadot			interrupt-controller;
131*ae5de77eSEmmanuel Vadot			#interrupt-cells = <2>;
132*ae5de77eSEmmanuel Vadot			status = "disabled";
133*ae5de77eSEmmanuel Vadot		};
134*ae5de77eSEmmanuel Vadot
1352846c905SEmmanuel Vadot		uart0: serial@4d0000 {
1362846c905SEmmanuel Vadot			compatible = "ns16550a";
1372846c905SEmmanuel Vadot			reg = <0x4d0000 0x1000>;
1382846c905SEmmanuel Vadot			clocks = <&scmi_clk 59>;
1392846c905SEmmanuel Vadot			resets = <&scmi_rst 59>;
1402846c905SEmmanuel Vadot			reg-shift = <2>;
1412846c905SEmmanuel Vadot			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
1422846c905SEmmanuel Vadot			status = "disabled";
1432846c905SEmmanuel Vadot		};
1442846c905SEmmanuel Vadot
1452846c905SEmmanuel Vadot		uart1: serial@4e0000 {
1462846c905SEmmanuel Vadot			compatible = "ns16550a";
1472846c905SEmmanuel Vadot			reg = <0x4e0000 0x1000>;
1482846c905SEmmanuel Vadot			clocks = <&scmi_clk 60>;
1492846c905SEmmanuel Vadot			resets = <&scmi_rst 60>;
1502846c905SEmmanuel Vadot			reg-shift = <2>;
1512846c905SEmmanuel Vadot			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
1522846c905SEmmanuel Vadot			status = "disabled";
1532846c905SEmmanuel Vadot		};
1542846c905SEmmanuel Vadot
1552846c905SEmmanuel Vadot		i2c0: i2c@4f0000 {
1562846c905SEmmanuel Vadot			compatible = "snps,designware-i2c";
1572846c905SEmmanuel Vadot			reg = <0x4f0000 0x1000>;
1582846c905SEmmanuel Vadot			interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
1592846c905SEmmanuel Vadot			clocks = <&scmi_clk 54>;
1602846c905SEmmanuel Vadot			resets = <&scmi_rst 54>;
1612846c905SEmmanuel Vadot			#address-cells = <1>;
1622846c905SEmmanuel Vadot			#size-cells = <0>;
1632846c905SEmmanuel Vadot			status = "disabled";
1642846c905SEmmanuel Vadot		};
1652846c905SEmmanuel Vadot
1662846c905SEmmanuel Vadot		i2c1: i2c@500000 {
1672846c905SEmmanuel Vadot			compatible = "snps,designware-i2c";
1682846c905SEmmanuel Vadot			reg = <0x500000 0x1000>;
1692846c905SEmmanuel Vadot			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
1702846c905SEmmanuel Vadot			clocks = <&scmi_clk 55>;
1712846c905SEmmanuel Vadot			resets = <&scmi_rst 55>;
1722846c905SEmmanuel Vadot			#address-cells = <1>;
1732846c905SEmmanuel Vadot			#size-cells = <0>;
1742846c905SEmmanuel Vadot			status = "disabled";
1752846c905SEmmanuel Vadot		};
1762846c905SEmmanuel Vadot
1772846c905SEmmanuel Vadot		i2c2: i2c@510000 {
1782846c905SEmmanuel Vadot			compatible = "snps,designware-i2c";
1792846c905SEmmanuel Vadot			reg = <0x510000 0x1000>;
1802846c905SEmmanuel Vadot			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
1812846c905SEmmanuel Vadot			clocks = <&scmi_clk 56>;
1822846c905SEmmanuel Vadot			resets = <&scmi_rst 56>;
1832846c905SEmmanuel Vadot			#address-cells = <1>;
1842846c905SEmmanuel Vadot			#size-cells = <0>;
1852846c905SEmmanuel Vadot			status = "disabled";
1862846c905SEmmanuel Vadot		};
1872846c905SEmmanuel Vadot
1882846c905SEmmanuel Vadot		i2c3: i2c@520000 {
1892846c905SEmmanuel Vadot			compatible = "snps,designware-i2c";
1902846c905SEmmanuel Vadot			reg = <0x520000 0x1000>;
1912846c905SEmmanuel Vadot			interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1922846c905SEmmanuel Vadot			clocks = <&scmi_clk 57>;
1932846c905SEmmanuel Vadot			resets = <&scmi_rst 57>;
1942846c905SEmmanuel Vadot			#address-cells = <1>;
1952846c905SEmmanuel Vadot			#size-cells = <0>;
1962846c905SEmmanuel Vadot			status = "disabled";
1972846c905SEmmanuel Vadot		};
1982846c905SEmmanuel Vadot
1992846c905SEmmanuel Vadot		i2c4: i2c@530000 {
2002846c905SEmmanuel Vadot			compatible = "snps,designware-i2c";
2012846c905SEmmanuel Vadot			reg = <0x530000 0x1000>;
2022846c905SEmmanuel Vadot			interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
2032846c905SEmmanuel Vadot			clocks = <&scmi_clk 58>;
2042846c905SEmmanuel Vadot			resets = <&scmi_rst 58>;
2052846c905SEmmanuel Vadot			#address-cells = <1>;
2062846c905SEmmanuel Vadot			#size-cells = <0>;
2072846c905SEmmanuel Vadot			status = "disabled";
2082846c905SEmmanuel Vadot		};
2092846c905SEmmanuel Vadot
2102846c905SEmmanuel Vadot		arm_cc712: crypto@550000 {
2112846c905SEmmanuel Vadot			compatible = "arm,cryptocell-712-ree";
2122846c905SEmmanuel Vadot			reg = <0x550000 0x1000>;
2132846c905SEmmanuel Vadot			interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
2142846c905SEmmanuel Vadot			clocks = <&scmi_clk 7>;
2152846c905SEmmanuel Vadot		};
2162846c905SEmmanuel Vadot	};
2172846c905SEmmanuel Vadot};
218