// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright (C) 2019 Philippe Reynes <philippe.reynes@softathome.com>
 */

#include "skeleton64.dtsi"

/ {
	compatible = "brcm,bcm63158";
	#address-cells = <2>;
	#size-cells = <2>;

	aliases {
		spi0 = &hsspi;
	};

	cpus {
		#address-cells = <2>;
		#size-cells = <0>;
		u-boot,dm-pre-reloc;

		cpu0: cpu@0 {
			compatible = "arm,cortex-a53", "arm,armv8";
			device_type = "cpu";
			reg = <0x0 0x0>;
			next-level-cache = <&l2>;
			u-boot,dm-pre-reloc;
		};

		cpu1: cpu@1 {
			compatible = "arm,cortex-a53", "arm,armv8";
			device_type = "cpu";
			reg = <0x0 0x1>;
			next-level-cache = <&l2>;
			u-boot,dm-pre-reloc;
		};

		cpu2: cpu@2 {
			compatible = "arm,cortex-a53", "arm,armv8";
			device_type = "cpu";
			reg = <0x0 0x2>;
			next-level-cache = <&l2>;
			u-boot,dm-pre-reloc;
		};

		cpu3: cpu@3 {
			compatible = "arm,cortex-a53", "arm,armv8";
			device_type = "cpu";
			reg = <0x0 0x3>;
			next-level-cache = <&l2>;
			u-boot,dm-pre-reloc;
		};

		l2: l2-cache0 {
			compatible = "cache";
			u-boot,dm-pre-reloc;
		};
	};

	clocks {
		compatible = "simple-bus";
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;
		u-boot,dm-pre-reloc;

		periph_osc: periph-osc {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <0xbebc200>;
			u-boot,dm-pre-reloc;
		};

		hsspi_pll: hsspi-pll {
			compatible = "fixed-factor-clock";
			#clock-cells = <0>;
			clocks = <&periph_osc>;
			clock-mult = <2>;
			clock-div = <1>;
		};

		refclk50mhz: refclk50mhz {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <50000000>;
		};
	};

	ubus {
		compatible = "simple-bus";
		#address-cells = <2>;
		#size-cells = <2>;
		u-boot,dm-pre-reloc;

		uart0: serial@ff812000 {
			compatible = "arm,pl011", "arm,primecell";
			reg = <0x0 0xff812000 0x0 0x1000>;
			clock = <50000000>;

			status = "disabled";
		};

		leds: led-controller@ff800800 {
			compatible = "brcm,bcm6858-leds";
			reg = <0x0 0xff800800 0x0 0xe4>;

			status = "disabled";
		};

		wdt1: watchdog@ff800480 {
			compatible = "brcm,bcm6345-wdt";
			reg = <0x0 0xff800480 0x0 0x14>;
			clocks = <&refclk50mhz>;
		};

		wdt2: watchdog@ff8004c0 {
			compatible = "brcm,bcm6345-wdt";
			reg = <0x0 0xff8004c0 0x0 0x14>;
			clocks = <&refclk50mhz>;
		};

		wdt-reboot {
			compatible = "wdt-reboot";
			wdt = <&wdt1>;
		};

		gpio0: gpio-controller@0xff800500 {
			compatible = "brcm,bcm6345-gpio";
			reg = <0x0 0xff800500 0x0 0x4>,
			      <0x0 0xff800520 0x0 0x4>;
			gpio-controller;
			#gpio-cells = <2>;

			status = "disabled";
		};

		gpio1: gpio-controller@0xff800504 {
			compatible = "brcm,bcm6345-gpio";
			reg = <0x0 0xff800504 0x0 0x4>,
			      <0x0 0xff800524 0x0 0x4>;
			gpio-controller;
			#gpio-cells = <2>;

			status = "disabled";
		};

		gpio2: gpio-controller@0xff800508 {
			compatible = "brcm,bcm6345-gpio";
			reg = <0x0 0xff800508 0x0 0x4>,
			      <0x0 0xff800528 0x0 0x4>;
			gpio-controller;
			#gpio-cells = <2>;

			status = "disabled";
		};

		gpio3: gpio-controller@0xff80050c {
			compatible = "brcm,bcm6345-gpio";
			reg = <0x0 0xff80050c 0x0 0x4>,
			      <0x0 0xff80052c 0x0 0x4>;
			gpio-controller;
			#gpio-cells = <2>;

			status = "disabled";
		};

		gpio4: gpio-controller@0xff800510 {
			compatible = "brcm,bcm6345-gpio";
			reg = <0x0 0xff800510 0x0 0x4>,
			      <0x0 0xff800530 0x0 0x4>;
			gpio-controller;
			#gpio-cells = <2>;

			status = "disabled";
		};

		gpio5: gpio-controller@0xff800514 {
			compatible = "brcm,bcm6345-gpio";
			reg = <0x0 0xff800514 0x0 0x4>,
			      <0x0 0xff800534 0x0 0x4>;
			gpio-controller;
			#gpio-cells = <2>;

			status = "disabled";
		};

		gpio6: gpio-controller@0xff800518 {
			compatible = "brcm,bcm6345-gpio";
			reg = <0x0 0xff800518 0x0 0x4>,
			      <0x0 0xff800538 0x0 0x4>;
			gpio-controller;
			#gpio-cells = <2>;

			status = "disabled";
		};

		gpio7: gpio-controller@0xff80051c {
			compatible = "brcm,bcm6345-gpio";
			reg = <0x0 0xff80051c 0x0 0x4>,
			      <0x0 0xff80053c 0x0 0x4>;
			gpio-controller;
			#gpio-cells = <2>;

			status = "disabled";
		};

		hsspi: spi-controller@ff801000 {
			compatible = "brcm,bcm6328-hsspi";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x0 0xff801000 0x0 0x600>;
			clocks = <&hsspi_pll>, <&hsspi_pll>;
			clock-names = "hsspi", "pll";
			spi-max-frequency = <100000000>;
			num-cs = <8>;

			status = "disabled";
		};

		nand: nand-controller@ff801800 {
			compatible = "brcm,nand-bcm63158",
				     "brcm,brcmnand-v5.0",
				     "brcm,brcmnand";
			reg-names = "nand", "nand-int-base", "nand-cache";
			reg = <0x0 0xff801800 0x0 0x180>,
			      <0x0 0xff802000 0x0 0x10>,
			      <0x0 0xff801c00 0x0 0x200>;
			parameter-page-big-endian = <0>;

			status = "disabled";
		};
	};
};
