Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1cf0e1be authored by Ganesan Ramalingam's avatar Ganesan Ramalingam Committed by Ralf Baechle
Browse files

MIPS: Netlogic: Built-in DTB for XLP2xx SoC boards



Add a default built-in device tree for XLP2xx SoC. The new file
xlp_fvp.dts has updated entries for I2C and memory.

Signed-off-by: default avatarGanesan Ramalingam <ganesanr@broadcom.com>
Signed-off-by: default avatarJayachandran C <jchandra@broadcom.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/5705/


Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 9eac3591
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -19,6 +19,15 @@ config DT_XLP_SVP
	  pointer to the kernel.  The corresponding DTS file is at
	  arch/mips/netlogic/dts/xlp_svp.dts

config DT_XLP_FVP
	bool "Built-in device tree for XLP FVP boards"
	default y
	help
	  Add an FDT blob for XLP FVP board into the kernel.
	  This DTB will be used if the firmware does not pass in a DTB
	  pointer to the kernel.  The corresponding DTS file is at
	  arch/mips/netlogic/dts/xlp_fvp.dts

config NLM_MULTINODE
	bool "Support for multi-chip boards"
	depends on NLM_XLP_BOARD
+1 −0
Original line number Diff line number Diff line
obj-$(CONFIG_DT_XLP_EVP) := xlp_evp.dtb.o
obj-$(CONFIG_DT_XLP_SVP) += xlp_svp.dtb.o
obj-$(CONFIG_DT_XLP_FVP) += xlp_fvp.dtb.o
+118 −0
Original line number Diff line number Diff line
/*
 * XLP2XX Device Tree Source for FVP boards
 */

/dts-v1/;
/ {
	model = "netlogic,XLP-FVP";
	compatible = "netlogic,xlp";
	#address-cells = <2>;
	#size-cells = <2>;

	soc {
		#address-cells = <2>;
		#size-cells = <1>;
		compatible = "simple-bus";
		ranges = <0 0  0 0x18000000  0x04000000   // PCIe CFG
			  1 0  0 0x16000000  0x02000000>; // GBU chipselects

		serial0: serial@30000 {
			device_type = "serial";
			compatible = "ns16550";
			reg = <0 0x30100 0xa00>;
			reg-shift = <2>;
			reg-io-width = <4>;
			clock-frequency = <133333333>;
			interrupt-parent = <&pic>;
			interrupts = <17>;
		};
		serial1: serial@31000 {
			device_type = "serial";
			compatible = "ns16550";
			reg = <0 0x31100 0xa00>;
			reg-shift = <2>;
			reg-io-width = <4>;
			clock-frequency = <133333333>;
			interrupt-parent = <&pic>;
			interrupts = <18>;
		};
		i2c0: ocores@37100 {
			compatible = "opencores,i2c-ocores";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0 0x37100 0x20>;
			reg-shift = <2>;
			reg-io-width = <4>;
			clock-frequency = <32000000>;
			interrupt-parent = <&pic>;
			interrupts = <30>;
		};
		i2c1: ocores@37120 {
			compatible = "opencores,i2c-ocores";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0 0x37120 0x20>;
			reg-shift = <2>;
			reg-io-width = <4>;
			clock-frequency = <32000000>;
			interrupt-parent = <&pic>;
			interrupts = <31>;

			rtc@68 {
				compatible = "dallas,ds1374";
				reg = <0x68>;
			};

			dtt@4c {
				compatible = "national,lm90";
				reg = <0x4c>;
			};
		};
		pic: pic@4000 {
			compatible = "netlogic,xlp-pic";
			#address-cells = <0>;
			#interrupt-cells = <1>;
			reg = <0 0x4000 0x200>;
			interrupt-controller;
		};

		nor_flash@1,0 {
			compatible = "cfi-flash";
			#address-cells = <1>;
			#size-cells = <1>;
			bank-width = <2>;
			reg = <1 0 0x1000000>;

			partition@0 {
				label = "x-loader";
				reg = <0x0 0x100000>; /* 1M */
				read-only;
			};

			partition@100000 {
				label = "u-boot";
				reg = <0x100000 0x100000>; /* 1M */
			};

			partition@200000 {
				label = "kernel";
				reg = <0x200000 0x500000>; /* 5M */
			};

			partition@700000 {
				label = "rootfs";
				reg = <0x700000 0x800000>; /* 8M */
			};

			partition@f00000 {
				label = "env";
				reg = <0xf00000 0x100000>; /* 1M */
				read-only;
			};
		};
	};

	chosen {
		bootargs = "console=ttyS0,115200 rdinit=/sbin/init";
	};
};
+7 −1
Original line number Diff line number Diff line
@@ -39,12 +39,18 @@
#include <linux/of_platform.h>
#include <linux/of_device.h>

extern u32 __dtb_xlp_evp_begin[], __dtb_xlp_svp_begin[], __dtb_start[];
extern u32 __dtb_xlp_evp_begin[], __dtb_xlp_svp_begin[],
	__dtb_xlp_fvp_begin[], __dtb_start[];

void __init *xlp_dt_init(void *fdtp)
{
	if (!fdtp) {
		switch (current_cpu_data.processor_id & 0xff00) {
#ifdef CONFIG_DT_XLP_FVP
		case PRID_IMP_NETLOGIC_XLP2XX:
			fdtp = __dtb_xlp_fvp_begin;
			break;
#endif
#ifdef CONFIG_DT_XLP_SVP
		case PRID_IMP_NETLOGIC_XLP3XX:
			fdtp = __dtb_xlp_svp_begin;