// SPDX-License-Identifier: GPL-2.0+ OR X11
/*
 * NXP ls1028a SOC common device tree source
 *
 * Copyright 2019 NXP
 *
 */

/ {
	compatible = "fsl,ls1028a";
	interrupt-parent = <&gic>;
	#address-cells = <2>;
	#size-cells = <2>;

	sysclk: sysclk {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <100000000>;
		clock-output-names = "sysclk";
	};

	clockgen: clocking@1300000 {
		compatible = "fsl,ls1028a-clockgen";
		reg = <0x0 0x1300000 0x0 0xa0000>;
		#clock-cells = <2>;
		clocks = <&sysclk>;
	};

	memory@01080000 {
		device_type = "memory";
		reg = <0x00000000 0x01080000 0 0x80000000>;
		      /* DRAM space - 1, size : 2 GB DRAM */
	};

	gic: interrupt-controller@6000000 {
		compatible = "arm,gic-v3";
		reg = <0x0 0x06000000 0 0x10000>, /* GIC Dist */
			  <0x0 0x06040000 0 0x40000>;
		#interrupt-cells = <3>;
		interrupt-controller;
		interrupts = <1 9 0x4>;
	};

	timer {
		compatible = "arm,armv8-timer";
		interrupts = <1 13 0x8>, /* Physical Secure PPI, active-low */
			     <1 14 0x8>, /* Physical Non-Secure PPI, active-low */
			     <1 11 0x8>, /* Virtual PPI, active-low */
			     <1 10 0x8>; /* Hypervisor PPI, active-low */
	};

	fspi: flexspi@20C0000 {
		compatible = "nxp,dn-fspi";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x0 0x20C0000 0x0 0x10000>,
			<0x0 0x20000000 0x0 0x10000000>; /*64MB flash*/
		reg-names = "FSPI", "FSPI-memory";
		num-cs = <1>;
		status = "disabled";
	};

	serial0: serial@21c0500 {
		device_type = "serial";
		compatible = "fsl,ns16550", "ns16550a";
		reg = <0x0 0x21c0500 0x0 0x100>;
		interrupts = <0 32 0x1>; /* edge triggered */
		status = "disabled";
	};

	serial1: serial@21c0600 {
		device_type = "serial";
		compatible = "fsl,ns16550", "ns16550a";
		reg = <0x0 0x21c0600 0x0 0x100>;
		interrupts = <0 32 0x1>; /* edge triggered */
		status = "disabled";
	};

	pcie@3400000 {
	       compatible = "fsl,ls-pcie", "fsl,ls1028-pcie", "snps,dw-pcie";
	       reg = <0x00 0x03400000 0x0 0x80000
		       0x00 0x03480000 0x0 0x40000   /* lut registers */
		       0x00 0x034c0000 0x0 0x40000  /* pf controls registers */
		       0x80 0x00000000 0x0 0x20000>; /* configuration space */
	       reg-names = "dbi", "lut", "ctrl", "config";
	       #address-cells = <3>;
	       #size-cells = <2>;
	       device_type = "pci";
	       num-lanes = <4>;
	       bus-range = <0x0 0xff>;
	       ranges = <0x81000000 0x0 0x00000000 0x80 0x00020000 0x0 0x00010000   /* downstream I/O */
		       0x82000000 0x0 0x40000000 0x80 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
	};

	pcie@3500000 {
	       compatible = "fsl,ls-pcie", "fsl,ls1028-pcie", "snps,dw-pcie";
	       reg = <0x00 0x03500000 0x0 0x80000
		       0x00 0x03580000 0x0 0x40000   /* lut registers */
		       0x00 0x035c0000 0x0 0x40000  /* pf controls registers */
		       0x88 0x00000000 0x0 0x20000>; /* configuration space */
	       reg-names = "dbi", "lut", "ctrl", "config";
	       #address-cells = <3>;
	       #size-cells = <2>;
	       device_type = "pci";
	       num-lanes = <4>;
	       bus-range = <0x0 0xff>;
	       ranges = <0x81000000 0x0 0x00000000 0x88 0x00020000 0x0 0x00010000   /* downstream I/O */
		       0x82000000 0x0 0x40000000 0x88 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
	};

	pcie@1f0000000 {
		compatible = "pci-host-ecam-generic";
		/* ECAM bus 0, HW has more space reserved but not populated */
		bus-range = <0x0 0x0>;
		reg = <0x01 0xf0000000 0x0 0x100000>;
		#address-cells = <3>;
		#size-cells = <2>;
		device_type = "pci";
		ranges= <0x82000000 0x0 0x00000000 0x1 0xf8000000 0x0 0x160000>;
		enetc0: pci@0,0 {
			reg = <0x000000 0 0 0 0>;
			status = "disabled";
		};
		enetc1: pci@0,1 {
			reg = <0x000100 0 0 0 0>;
			status = "disabled";
		};
		enetc2: pci@0,2 {
			reg = <0x000200 0 0 0 0>;
			status = "okay";
			phy-mode = "internal";
		};
		mdio0: pci@0,3 {
			#address-cells=<0>;
			#size-cells=<1>;
			reg = <0x000300 0 0 0 0>;
			status = "disabled";
		};
		enetc6: pci@0,6 {
			reg = <0x000600 0 0 0 0>;
			status = "okay";
			phy-mode = "internal";
		};
	};

	i2c0: i2c@2000000 {
		compatible = "fsl,vf610-i2c";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x0 0x2000000 0x0 0x10000>;
		interrupts = <0 34 0x4>;
		clock-names = "i2c";
		clocks = <&clockgen 4 0>;
		status = "disabled";
	};

	i2c1: i2c@2010000 {
		compatible = "fsl,vf610-i2c";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x0 0x2010000 0x0 0x10000>;
		interrupts = <0 34 0x4>;
		clock-names = "i2c";
		clocks = <&clockgen 4 0>;
		status = "disabled";
	};

	i2c2: i2c@2020000 {
		compatible = "fsl,vf610-i2c";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x0 0x2020000 0x0 0x10000>;
		interrupts = <0 35 0x4>;
		clock-names = "i2c";
		clocks = <&clockgen 4 0>;
		status = "disabled";
	};

	i2c3: i2c@2030000 {
		compatible = "fsl,vf610-i2c";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x0 0x2030000 0x0 0x10000>;
		interrupts = <0 35 0x4>;
		clock-names = "i2c";
		clocks = <&clockgen 4 0>;
		status = "disabled";
	};

	i2c4: i2c@2040000 {
		compatible = "fsl,vf610-i2c";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x0 0x2040000 0x0 0x10000>;
		interrupts = <0 74 0x4>;
		clock-names = "i2c";
		clocks = <&clockgen 4 0>;
		status = "disabled";
	};

	i2c5: i2c@2050000 {
		compatible = "fsl,vf610-i2c";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x0 0x2050000 0x0 0x10000>;
		interrupts = <0 74 0x4>;
		clock-names = "i2c";
		clocks = <&clockgen 4 0>;
		status = "disabled";
	};

	i2c6: i2c@2060000 {
		compatible = "fsl,vf610-i2c";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x0 0x2060000 0x0 0x10000>;
		interrupts = <0 75 0x4>;
		clock-names = "i2c";
		clocks = <&clockgen 4 0>;
		status = "disabled";
	};

	i2c7: i2c@2070000 {
		compatible = "fsl,vf610-i2c";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x0 0x2070000 0x0 0x10000>;
		interrupts = <0 75 0x4>;
		clock-names = "i2c";
		clocks = <&clockgen 4 0>;
		status = "disabled";
	};

	usb1: usb3@3100000 {
		compatible = "fsl,layerscape-dwc3";
		reg = <0x0 0x3100000 0x0 0x10000>;
		interrupts = <0 80 0x4>;
		dr_mode = "host";
		status = "disabled";
	};

	usb2: usb3@3110000 {
		compatible = "fsl,layerscape-dwc3";
		reg = <0x0 0x3110000 0x0 0x10000>;
		interrupts = <0 81 0x4>;
		dr_mode = "host";
		status = "disabled";
	};

	dspi0: dspi@2100000 {
		compatible = "fsl,vf610-dspi";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x0 0x2100000 0x0 0x10000>;
		interrupts = <0 26 0x4>;
		clock-names = "dspi";
		clocks = <&clockgen 4 0>;
		num-cs = <5>;
		litte-endian;
		status = "disabled";
	};

	dspi1: dspi@2110000 {
		compatible = "fsl,vf610-dspi";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x0 0x2110000 0x0 0x10000>;
		interrupts = <0 26 0x4>;
		clock-names = "dspi";
		clocks = <&clockgen 4 0>;
		num-cs = <5>;
		little-endian;
		status = "disabled";
	};

	dspi2: dspi@2120000 {
		compatible = "fsl,vf610-dspi";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x0 0x2120000 0x0 0x10000>;
		interrupts = <0 26 0x4>;
		clock-names = "dspi";
		clocks = <&clockgen 4 0>;
		num-cs = <5>;
		little-endian;
		status = "disabled";
	};

	esdhc0: esdhc@2140000 {
		compatible = "fsl,esdhc";
		reg = <0x0 0x2140000 0x0 0x10000>;
		interrupts = <0 28 0x4>;
		big-endian;
		bus-width = <4>;
		status = "disabled";
	};

	esdhc1: esdhc@2150000 {
		compatible = "fsl,esdhc";
		reg = <0x0 0x2150000 0x0 0x10000>;
		interrupts = <0 63 0x4>;
		big-endian;
		non-removable;
		bus-width = <4>;
		status = "disabled";
	};

	sata: sata@3200000 {
		compatible = "fsl,ls1028a-ahci";
		reg = <0x0 0x3200000 0x0 0x10000	/* ccsr sata base */
		       0x7 0x100520  0x0 0x4>;		/* ecc sata addr*/
		reg-names = "sata-base", "ecc-addr";
		interrupts = <0 133 4>;
		status = "disabled";
	};

	cluster1_core0_watchdog: wdt@c000000 {
		compatible = "arm,sp805-wdt";
		reg = <0x0 0xc000000 0x0 0x1000>;
	};
};
