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

Commit 2954ff39 authored by Shawn Guo's avatar Shawn Guo
Browse files

ARM: mxs: add initial device tree support for imx23-evk board



It adds initial device tree support for imx23-evk board, and only
serial console is enabled.

Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
Acked-by: default avatarMarek Vasut <marex@denx.de>
parent bc3a59c1
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
Freescale i.MX Platforms Device Tree Bindings
-----------------------------------------------

i.MX23 Evaluation Kit
Required root node properties:
    - compatible = "fsl,imx23-evk", "fsl,imx23";

i.MX28 Evaluation Kit
Required root node properties:
    - compatible = "fsl,imx28-evk", "fsl,imx28";
+32 −0
Original line number Diff line number Diff line
/*
 * Copyright 2012 Freescale Semiconductor, Inc.
 *
 * The code contained herein is licensed under the GNU General Public
 * License. You may obtain a copy of the GNU General Public License
 * Version 2 or later at the following locations:
 *
 * http://www.opensource.org/licenses/gpl-license.html
 * http://www.gnu.org/copyleft/gpl.html
 */

/dts-v1/;
/include/ "imx23.dtsi"

/ {
	model = "Freescale i.MX23 Evaluation Kit";
	compatible = "fsl,imx23-evk", "fsl,imx23";

	memory {
		reg = <0x40000000 0x08000000>;
	};

	apb@80000000 {
		apbx@80040000 {
			duart: serial@80070000 {
				pinctrl-names = "default";
				pinctrl-0 = <&duart_pins_a>;
				status = "okay";
			};
		};
	};
};
+243 −0
Original line number Diff line number Diff line
/*
 * Copyright 2012 Freescale Semiconductor, Inc.
 *
 * The code contained herein is licensed under the GNU General Public
 * License. You may obtain a copy of the GNU General Public License
 * Version 2 or later at the following locations:
 *
 * http://www.opensource.org/licenses/gpl-license.html
 * http://www.gnu.org/copyleft/gpl.html
 */

/include/ "skeleton.dtsi"

/ {
	interrupt-parent = <&icoll>;

	cpus {
		cpu@0 {
			compatible = "arm,arm926ejs";
		};
	};

	apb@80000000 {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0x80000000 0x80000>;
		ranges;

		apbh@80000000 {
			compatible = "simple-bus";
			#address-cells = <1>;
			#size-cells = <1>;
			reg = <0x80000000 0x40000>;
			ranges;

			icoll: interrupt-controller@80000000 {
				compatible = "fsl,imx23-icoll", "fsl,mxs-icoll";
				interrupt-controller;
				#interrupt-cells = <1>;
				reg = <0x80000000 0x2000>;
			};

			dma-apbh@80004000 {
				reg = <0x80004000 2000>;
				status = "disabled";
			};

			ecc@80008000 {
				reg = <0x80008000 2000>;
				status = "disabled";
			};

			bch@8000a000 {
				reg = <0x8000a000 2000>;
				status = "disabled";
			};

			gpmi@8000c000 {
				reg = <0x8000c000 2000>;
				status = "disabled";
			};

			ssp0: ssp@80010000 {
				reg = <0x80010000 2000>;
				status = "disabled";
			};

			etm@80014000 {
				reg = <0x80014000 2000>;
				status = "disabled";
			};

			pinctrl@80018000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,imx23-pinctrl";
				reg = <0x80018000 2000>;

				duart_pins_a: duart@0 {
					reg = <0>;
					fsl,pinmux-ids = <0x11a2 0x11b2>;
					fsl,drive-strength = <0>;
					fsl,voltage = <1>;
					fsl,pull-up = <0>;
				};
			};

			digctl@8001c000 {
				reg = <0x8001c000 2000>;
				status = "disabled";
			};

			emi@80020000 {
				reg = <0x80020000 2000>;
				status = "disabled";
			};

			dma-apbx@80024000 {
				reg = <0x80024000 2000>;
				status = "disabled";
			};

			dcp@80028000 {
				reg = <0x80028000 2000>;
				status = "disabled";
			};

			pxp@8002a000 {
				reg = <0x8002a000 2000>;
				status = "disabled";
			};

			ocotp@8002c000 {
				reg = <0x8002c000 2000>;
				status = "disabled";
			};

			axi-ahb@8002e000 {
				reg = <0x8002e000 2000>;
				status = "disabled";
			};

			lcdif@80030000 {
				reg = <0x80030000 2000>;
				status = "disabled";
			};

			ssp1: ssp@80034000 {
				reg = <0x80034000 2000>;
				status = "disabled";
			};

			tvenc@80038000 {
				reg = <0x80038000 2000>;
				status = "disabled";
			};
                };

		apbx@80040000 {
			compatible = "simple-bus";
			#address-cells = <1>;
			#size-cells = <1>;
			reg = <0x80040000 0x40000>;
			ranges;

			clkctl@80040000 {
				reg = <0x80040000 2000>;
				status = "disabled";
			};

			saif0: saif@80042000 {
				reg = <0x80042000 2000>;
				status = "disabled";
			};

			power@80044000 {
				reg = <0x80044000 2000>;
				status = "disabled";
			};

			saif1: saif@80046000 {
				reg = <0x80046000 2000>;
				status = "disabled";
			};

			audio-out@80048000 {
				reg = <0x80048000 2000>;
				status = "disabled";
			};

			audio-in@8004c000 {
				reg = <0x8004c000 2000>;
				status = "disabled";
			};

			lradc@80050000 {
				reg = <0x80050000 2000>;
				status = "disabled";
			};

			spdif@80054000 {
				reg = <0x80054000 2000>;
				status = "disabled";
			};

			i2c@80058000 {
				reg = <0x80058000 2000>;
				status = "disabled";
			};

			rtc@8005c000 {
				reg = <0x8005c000 2000>;
				status = "disabled";
			};

			pwm@80064000 {
				reg = <0x80064000 2000>;
				status = "disabled";
			};

			timrot@80068000 {
				reg = <0x80068000 2000>;
				status = "disabled";
			};

			auart0: serial@8006c000 {
				reg = <0x8006c000 0x2000>;
				status = "disabled";
			};

			auart1: serial@8006e000 {
				reg = <0x8006e000 0x2000>;
				status = "disabled";
			};

			duart: serial@80070000 {
				compatible = "arm,pl011", "arm,primecell";
				reg = <0x80070000 0x2000>;
				interrupts = <0>;
				status = "disabled";
			};

			usbphy@8007c000 {
				reg = <0x8007c000 0x2000>;
				status = "disabled";
			};
		};
	};

	ahb@80080000 {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0x80080000 0x80000>;
		ranges;

		usbctrl@80080000 {
			reg = <0x80080000 0x10000>;
			status = "disabled";
		};
	};
};
+1 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ comment "MXS platforms:"

config MACH_MXS_DT
	bool "Support MXS platforms from device tree"
	select SOC_IMX23
	select SOC_IMX28
	select USE_OF
	help
+24 −0
Original line number Diff line number Diff line
@@ -41,6 +41,15 @@ static void __init mxs_dt_init_irq(void)
	of_irq_init(mxs_irq_match);
}

static void __init imx23_timer_init(void)
{
	mx23_clocks_init();
}

static struct sys_timer imx23_timer = {
	.init = imx23_timer_init,
};

static void __init imx28_timer_init(void)
{
	mx28_clocks_init();
@@ -69,12 +78,27 @@ static void __init mxs_machine_init(void)
				NULL, NULL);
}

static const char *imx23_dt_compat[] __initdata = {
	"fsl,imx23-evk",
	"fsl,imx23",
	NULL,
};

static const char *imx28_dt_compat[] __initdata = {
	"fsl,imx28-evk",
	"fsl,imx28",
	NULL,
};

DT_MACHINE_START(IMX23, "Freescale i.MX23 (Device Tree)")
	.map_io		= mx23_map_io,
	.init_irq	= mxs_dt_init_irq,
	.timer		= &imx23_timer,
	.init_machine	= mxs_machine_init,
	.dt_compat	= imx23_dt_compat,
	.restart	= mxs_restart,
MACHINE_END

DT_MACHINE_START(IMX28, "Freescale i.MX28 (Device Tree)")
	.map_io		= mx28_map_io,
	.init_irq	= mxs_dt_init_irq,
Loading