// SPDX-License-Identifier: GPL-2.0
/*
 * Device Tree file for HPE GXP
 */

/dts-v1/;
/ {
	model = "Hewlett Packard Enterprise GXP BMC";
	compatible = "hpe,gxp";
	#address-cells = <1>;
	#size-cells = <1>;

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu@0 {
			compatible = "arm,cortex-a9";
			reg = <0>;
			device_type = "cpu";
			next-level-cache = <&L2>;
		};
	};

	clocks {
		pll: clock-0 {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <1600000000>;
		};

		iopclk: clock-1 {
			compatible = "fixed-factor-clock";
			#clock-cells = <0>;
			clock-div = <4>;
			clock-mult = <1>;
			clocks = <&pll>;
		};
	};

	axi {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;
		dma-ranges;

		L2: cache-controller@b0040000 {
			compatible = "arm,pl310-cache";
			reg = <0xb0040000 0x1000>;
			cache-unified;
			cache-level = <2>;
		};

		ahb@c0000000 {
			compatible = "simple-bus";
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0x0 0xc0000000 0x30000000>;
			dma-ranges;

			vic0: interrupt-controller@eff0000 {
				compatible = "arm,pl192-vic";
				reg = <0xeff0000 0x1000>;
				interrupt-controller;
				#interrupt-cells = <1>;
			};

			vic1: interrupt-controller@80f00000 {
				compatible = "arm,pl192-vic";
				reg = <0x80f00000 0x1000>;
				interrupt-controller;
				#interrupt-cells = <1>;
			};

			uarta: serial@e0 {
				compatible = "ns16550a";
				reg = <0xe0 0x8>;
				interrupts = <17>;
				interrupt-parent = <&vic0>;
				clock-frequency = <1846153>;
				reg-shift = <0>;
			};

			uartb: serial@e8 {
				compatible = "ns16550a";
				reg = <0xe8 0x8>;
				interrupts = <18>;
				interrupt-parent = <&vic0>;
				clock-frequency = <1846153>;
				reg-shift = <0>;
			};

			uartc: serial@f0 {
				compatible = "ns16550a";
				reg = <0xf0 0x8>;
				interrupts = <19>;
				interrupt-parent = <&vic0>;
				clock-frequency = <1846153>;
				reg-shift = <0>;
			};

			usb0: usb@efe0000 {
				compatible = "hpe,gxp-ehci", "generic-ehci";
				reg = <0xefe0000 0x100>;
				interrupts = <7>;
				interrupt-parent = <&vic0>;
			};

			st: timer@80 {
				compatible = "hpe,gxp-timer";
				reg = <0x80 0x16>;
				interrupts = <0>;
				interrupt-parent = <&vic0>;
				clocks = <&iopclk>;
				clock-names = "iop";
			};

			usb1: usb@efe0100 {
				compatible = "hpe,gxp-ohci", "generic-ohci";
				reg = <0xefe0100 0x110>;
				interrupts = <6>;
				interrupt-parent = <&vic0>;
			};
		};
	};
};
