xref: /freebsd/sys/contrib/device-tree/src/mips/mobileye/eyeq5.dtsi (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
101950c46SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
201950c46SEmmanuel Vadot/*
301950c46SEmmanuel Vadot* Copyright 2023 Mobileye Vision Technologies Ltd.
401950c46SEmmanuel Vadot*/
501950c46SEmmanuel Vadot
601950c46SEmmanuel Vadot#include <dt-bindings/interrupt-controller/mips-gic.h>
701950c46SEmmanuel Vadot
8*0e8011faSEmmanuel Vadot#include "eyeq5-clocks.dtsi"
901950c46SEmmanuel Vadot
1001950c46SEmmanuel Vadot/ {
1101950c46SEmmanuel Vadot	#address-cells = <2>;
1201950c46SEmmanuel Vadot	#size-cells = <2>;
1301950c46SEmmanuel Vadot	cpus {
1401950c46SEmmanuel Vadot		#address-cells = <1>;
1501950c46SEmmanuel Vadot		#size-cells = <0>;
1601950c46SEmmanuel Vadot		cpu@0 {
1701950c46SEmmanuel Vadot			device_type = "cpu";
1801950c46SEmmanuel Vadot			compatible = "img,i6500";
1901950c46SEmmanuel Vadot			reg = <0>;
2001950c46SEmmanuel Vadot			clocks = <&core0_clk>;
2101950c46SEmmanuel Vadot		};
2201950c46SEmmanuel Vadot	};
2301950c46SEmmanuel Vadot
2401950c46SEmmanuel Vadot	reserved-memory {
2501950c46SEmmanuel Vadot		#address-cells = <2>;
2601950c46SEmmanuel Vadot		#size-cells = <2>;
2701950c46SEmmanuel Vadot		ranges;
2801950c46SEmmanuel Vadot
2901950c46SEmmanuel Vadot		/* These reserved memory regions are also defined in bootmanager
3001950c46SEmmanuel Vadot		* for configuring inbound translation for BARS, don't change
3101950c46SEmmanuel Vadot		* these without syncing with bootmanager
3201950c46SEmmanuel Vadot		*/
3301950c46SEmmanuel Vadot		shmem0_reserved: shmem@804000000 {
3401950c46SEmmanuel Vadot			reg = <0x8 0x04000000 0x0 0x1000000>;
3501950c46SEmmanuel Vadot		};
3601950c46SEmmanuel Vadot		shmem1_reserved: shmem@805000000 {
3701950c46SEmmanuel Vadot			reg = <0x8 0x05000000 0x0 0x1000000>;
3801950c46SEmmanuel Vadot		};
3901950c46SEmmanuel Vadot		pci0_msi_reserved: pci0-msi@806000000 {
4001950c46SEmmanuel Vadot			reg = <0x8 0x06000000 0x0 0x100000>;
4101950c46SEmmanuel Vadot		};
4201950c46SEmmanuel Vadot		pci1_msi_reserved: pci1-msi@806100000 {
4301950c46SEmmanuel Vadot			reg = <0x8 0x06100000 0x0 0x100000>;
4401950c46SEmmanuel Vadot		};
4501950c46SEmmanuel Vadot
4601950c46SEmmanuel Vadot		mini_coredump0_reserved: mini-coredump0@806200000 {
4701950c46SEmmanuel Vadot			reg = <0x8 0x06200000 0x0 0x100000>;
4801950c46SEmmanuel Vadot		};
4901950c46SEmmanuel Vadot		mhm_reserved_0: the-mhm-reserved-0@0 {
5001950c46SEmmanuel Vadot			reg = <0x8 0x00000000 0x0 0x0000800>;
5101950c46SEmmanuel Vadot		};
5201950c46SEmmanuel Vadot	};
5301950c46SEmmanuel Vadot
5401950c46SEmmanuel Vadot	aliases {
5501950c46SEmmanuel Vadot		serial0 = &uart0;
5601950c46SEmmanuel Vadot		serial1 = &uart1;
5701950c46SEmmanuel Vadot		serial2 = &uart2;
5801950c46SEmmanuel Vadot	};
5901950c46SEmmanuel Vadot
6001950c46SEmmanuel Vadot	cpu_intc: interrupt-controller {
6101950c46SEmmanuel Vadot		compatible = "mti,cpu-interrupt-controller";
6201950c46SEmmanuel Vadot		interrupt-controller;
6301950c46SEmmanuel Vadot		#address-cells = <0>;
6401950c46SEmmanuel Vadot		#interrupt-cells = <1>;
6501950c46SEmmanuel Vadot	};
6601950c46SEmmanuel Vadot
6701950c46SEmmanuel Vadot	soc: soc {
6801950c46SEmmanuel Vadot		#address-cells = <2>;
6901950c46SEmmanuel Vadot		#size-cells = <2>;
7001950c46SEmmanuel Vadot		ranges;
7101950c46SEmmanuel Vadot		compatible = "simple-bus";
7201950c46SEmmanuel Vadot
7301950c46SEmmanuel Vadot		uart0: serial@800000 {
7401950c46SEmmanuel Vadot			compatible = "arm,pl011", "arm,primecell";
7501950c46SEmmanuel Vadot			reg = <0 0x800000 0x0 0x1000>;
7601950c46SEmmanuel Vadot			reg-io-width = <4>;
7701950c46SEmmanuel Vadot			interrupt-parent = <&gic>;
7801950c46SEmmanuel Vadot			interrupts = <GIC_SHARED 6 IRQ_TYPE_LEVEL_HIGH>;
7901950c46SEmmanuel Vadot			clocks  = <&uart_clk>, <&occ_periph>;
8001950c46SEmmanuel Vadot			clock-names = "uartclk", "apb_pclk";
81*0e8011faSEmmanuel Vadot			resets = <&olb 0 10>;
82*0e8011faSEmmanuel Vadot			pinctrl-names = "default";
83*0e8011faSEmmanuel Vadot			pinctrl-0 = <&uart0_pins>;
8401950c46SEmmanuel Vadot		};
8501950c46SEmmanuel Vadot
8601950c46SEmmanuel Vadot		uart1: serial@900000 {
8701950c46SEmmanuel Vadot			compatible = "arm,pl011", "arm,primecell";
8801950c46SEmmanuel Vadot			reg = <0 0x900000 0x0 0x1000>;
8901950c46SEmmanuel Vadot			reg-io-width = <4>;
9001950c46SEmmanuel Vadot			interrupt-parent = <&gic>;
9101950c46SEmmanuel Vadot			interrupts = <GIC_SHARED 6 IRQ_TYPE_LEVEL_HIGH>;
9201950c46SEmmanuel Vadot			clocks  = <&uart_clk>, <&occ_periph>;
9301950c46SEmmanuel Vadot			clock-names = "uartclk", "apb_pclk";
94*0e8011faSEmmanuel Vadot			resets = <&olb 0 11>;
95*0e8011faSEmmanuel Vadot			pinctrl-names = "default";
96*0e8011faSEmmanuel Vadot			pinctrl-0 = <&uart1_pins>;
9701950c46SEmmanuel Vadot		};
9801950c46SEmmanuel Vadot
9901950c46SEmmanuel Vadot		uart2: serial@a00000 {
10001950c46SEmmanuel Vadot			compatible = "arm,pl011", "arm,primecell";
10101950c46SEmmanuel Vadot			reg = <0 0xa00000 0x0 0x1000>;
10201950c46SEmmanuel Vadot			reg-io-width = <4>;
10301950c46SEmmanuel Vadot			interrupt-parent = <&gic>;
10401950c46SEmmanuel Vadot			interrupts = <GIC_SHARED 6 IRQ_TYPE_LEVEL_HIGH>;
10501950c46SEmmanuel Vadot			clocks  = <&uart_clk>, <&occ_periph>;
10601950c46SEmmanuel Vadot			clock-names = "uartclk", "apb_pclk";
107*0e8011faSEmmanuel Vadot			resets = <&olb 0 12>;
108*0e8011faSEmmanuel Vadot			pinctrl-names = "default";
109*0e8011faSEmmanuel Vadot			pinctrl-0 = <&uart2_pins>;
110*0e8011faSEmmanuel Vadot		};
111*0e8011faSEmmanuel Vadot
112*0e8011faSEmmanuel Vadot		olb: system-controller@e00000 {
113*0e8011faSEmmanuel Vadot			compatible = "mobileye,eyeq5-olb", "syscon";
114*0e8011faSEmmanuel Vadot			reg = <0 0xe00000 0x0 0x400>;
115*0e8011faSEmmanuel Vadot			#reset-cells = <2>;
116*0e8011faSEmmanuel Vadot			#clock-cells = <1>;
117*0e8011faSEmmanuel Vadot			clocks = <&xtal>;
118*0e8011faSEmmanuel Vadot			clock-names = "ref";
11901950c46SEmmanuel Vadot		};
12001950c46SEmmanuel Vadot
12101950c46SEmmanuel Vadot		gic: interrupt-controller@140000 {
12201950c46SEmmanuel Vadot			compatible = "mti,gic";
12301950c46SEmmanuel Vadot			reg = <0x0 0x140000 0x0 0x20000>;
12401950c46SEmmanuel Vadot			interrupt-controller;
12501950c46SEmmanuel Vadot			#interrupt-cells = <3>;
12601950c46SEmmanuel Vadot
12701950c46SEmmanuel Vadot			/*
12801950c46SEmmanuel Vadot			* Declare the interrupt-parent even though the mti,gic
12901950c46SEmmanuel Vadot			* binding doesn't require it, such that the kernel can
13001950c46SEmmanuel Vadot			* figure out that cpu_intc is the root interrupt
13101950c46SEmmanuel Vadot			* controller & should be probed first.
13201950c46SEmmanuel Vadot			*/
13301950c46SEmmanuel Vadot			interrupt-parent = <&cpu_intc>;
13401950c46SEmmanuel Vadot
13501950c46SEmmanuel Vadot			timer {
13601950c46SEmmanuel Vadot				compatible = "mti,gic-timer";
13701950c46SEmmanuel Vadot				interrupts = <GIC_LOCAL 1 IRQ_TYPE_NONE>;
13801950c46SEmmanuel Vadot				clocks = <&core0_clk>;
13901950c46SEmmanuel Vadot			};
14001950c46SEmmanuel Vadot		};
14101950c46SEmmanuel Vadot	};
14201950c46SEmmanuel Vadot};
143*0e8011faSEmmanuel Vadot
144*0e8011faSEmmanuel Vadot#include "eyeq5-pins.dtsi"
145