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

Commit f8635abd authored by Linus Walleij's avatar Linus Walleij
Browse files

ARM: nomadik: initial devicetree support



Support basic device tree boot on the Nomadik. Implement the
support in the cpu file with the intent of deleting the board
files later. At this stage IRQ controllers, system timer,
l2x0 cache, UARTs and thus console boot is fully functional.
Patch out the code adding devices by initcalls for now so
as not to disturb the boot.

Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent a352d85a
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
ST-Ericsson Nomadik Device Tree Bindings

For various board the "board" node may contain specific properties
that pertain to this particular board, such as board-specific GPIOs.

Boards with the Nomadik SoC include:

S8815 "MiniKit" manufactured by Calao Systems:

Required root node property:

compatible="calaosystems,usb-s8815";

Required node: usb-s8815

Example:

usb-s8815 {
};
+1 −0
Original line number Diff line number Diff line
@@ -100,6 +100,7 @@ dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \
	imx28-m28evk.dtb \
	imx28-sps1.dtb \
	imx28-tx28.dtb
dtb-$(CONFIG_ARCH_NOMADIK) += ste-nomadik-s8815.dtb
dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
	omap3-beagle.dtb \
	omap3-beagle-xm.dtb \
+20 −0
Original line number Diff line number Diff line
/*
 * Device Tree for the ST-Ericsson Nomadik S8815 board
 * Produced by Calao Systems
 */

/dts-v1/;
/include/ "ste-nomadik-stn8815.dtsi"

/ {
	model = "Calao Systems USB-S8815";
	compatible = "calaosystems,usb-s8815";

	chosen {
		bootargs = "root=/dev/ram0 console=ttyAMA1,115200n8 earlyprintk";
	};

	/* Custom board node with GPIO pins to active etc */
	usb-s8815 {
	};
};
+80 −0
Original line number Diff line number Diff line
/*
 * Device Tree for the ST-Ericsson Nomadik 8815 STn8815 SoC
 */
/include/ "skeleton.dtsi"

/ {
	#address-cells = <1>;
	#size-cells = <1>;

	memory {
		reg = <0x00000000 0x04000000>,
		    <0x08000000 0x04000000>;
	};

	L2: l2-cache {
		compatible = "arm,l210-cache";
		reg = <0x10210000 0x1000>;
		interrupt-parent = <&vica>;
		interrupts = <30>;
		cache-unified;
		cache-level = <2>;
	};

	mtu0 {
		/* Nomadik system timer */
		reg = <0x101e2000 0x1000>;
		interrupt-parent = <&vica>;
		interrupts = <4>;
	};

	mtu1 {
		/* Secondary timer */
		reg = <0x101e3000 0x1000>;
		interrupt-parent = <&vica>;
		interrupts = <5>;
	};

	amba {
		compatible = "arm,amba-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		vica: intc@0x10140000 {
			compatible = "arm,versatile-vic";
			interrupt-controller;
			#interrupt-cells = <1>;
			reg = <0x10140000 0x20>;
		};

		vicb: intc@0x10140020 {
			compatible = "arm,versatile-vic";
			interrupt-controller;
			#interrupt-cells = <1>;
			reg = <0x10140020 0x20>;
		};

		uart0: uart@101fd000 {
			compatible = "arm,pl011", "arm,primecell";
			reg = <0x101fd000 0x1000>;
			interrupt-parent = <&vica>;
			interrupts = <12>;
		};

		uart1: uart@101fb000 {
			compatible = "arm,pl011", "arm,primecell";
			reg = <0x101fb000 0x1000>;
			interrupt-parent = <&vica>;
			interrupts = <17>;
		};

		uart2: uart@101f2000 {
			compatible = "arm,pl011", "arm,primecell";
			reg = <0x101f2000 0x1000>;
			interrupt-parent = <&vica>;
			interrupts = <28>;
			status = "disabled";
		};
	};
};
+4 −0
Original line number Diff line number Diff line
@@ -204,6 +204,10 @@ static int __init nhk8815_mmcsd_init(void)
{
	int ret;

	/* For e.g. devicetree boot */
	if (!machine_is_nomadik())
		return 0;

	ret = gpio_request(112, "card detect bias");
	if (ret)
		return ret;
Loading