ARM: mxs: Add support for the Armadeus Systems APF28 module
authorJulien Boibessot <julien.boibessot@armadeus.com>
Thu, 18 Oct 2012 09:50:26 +0000 (11:50 +0200)
committerShawn Guo <shawn.guo@linaro.org>
Fri, 19 Oct 2012 08:45:20 +0000 (16:45 +0800)
The APF28 is a small SOM built around an i.MX28 processor with 128MBytes DDR2,
256MBytes NAND Flash and an Ethernet PHY.

Signed-off-by: Julien Boibessot <julien.boibessot@armadeus.com>
Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@armadeus.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/imx28-apf28.dts [new file with mode: 0644]
arch/arm/mach-mxs/mach-mxs.c

index c1ce813fcc4a1ea9094eb450ce4e50efd3d6048b..9bca96f0438fd96eb935d5f831e9e903b3eb2b47 100644 (file)
@@ -54,6 +54,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx51-babbage.dtb \
 dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \
        imx23-olinuxino.dtb \
        imx23-stmp378x_devb.dtb \
+       imx28-apf28.dtb \
        imx28-apx4devkit.dtb \
        imx28-cfa10036.dtb \
        imx28-cfa10049.dtb \
diff --git a/arch/arm/boot/dts/imx28-apf28.dts b/arch/arm/boot/dts/imx28-apf28.dts
new file mode 100644 (file)
index 0000000..7eb0758
--- /dev/null
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2012 Armadeus Systems - <support@armadeus.com>
+ *
+ * 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/ "imx28.dtsi"
+
+/ {
+       model = "Armadeus Systems APF28 module";
+       compatible = "armadeus,imx28-apf28", "fsl,imx28";
+
+       memory {
+               reg = <0x40000000 0x08000000>;
+       };
+
+       apb@80000000 {
+               apbh@80000000 {
+                       gpmi-nand@8000c000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>;
+                               status = "okay";
+
+                               partition@0 {
+                                       label = "u-boot";
+                                       reg = <0x0 0x300000>;
+                               };
+
+                               partition@300000 {
+                                       label = "env";
+                                       reg = <0x300000 0x80000>;
+                               };
+
+                               partition@380000 {
+                                       label = "env2";
+                                       reg = <0x380000 0x80000>;
+                               };
+
+                               partition@400000 {
+                                       label = "dtb";
+                                       reg = <0x400000 0x80000>;
+                               };
+
+                               partition@480000 {
+                                       label = "splash";
+                                       reg = <0x480000 0x80000>;
+                               };
+
+                               partition@500000 {
+                                       label = "kernel";
+                                       reg = <0x500000 0x800000>;
+                               };
+
+                               partition@d00000 {
+                                       label = "rootfs";
+                                       reg = <0xd00000 0xf300000>;
+                               };
+                       };
+               };
+
+               apbx@80040000 {
+                       duart: serial@80074000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&duart_pins_a>;
+                               status = "okay";
+                       };
+               };
+       };
+
+       ahb@80080000 {
+               mac0: ethernet@800f0000 {
+                       phy-mode = "rmii";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&mac0_pins_a>;
+                       phy-reset-gpios = <&gpio4 13 0>;
+                       status = "okay";
+               };
+       };
+};
index b8c452a1b0ae4fe01c264c0625da22923896efdb..9cfb25cb0e900a14a24bec78b17debf2cc9fe69f 100644 (file)
@@ -367,6 +367,11 @@ static void __init cfa10049_init(void)
        update_fec_mac_prop(OUI_CRYSTALFONTZ);
 }
 
+static void __init apf28_init(void)
+{
+       enable_clk_enet_out();
+}
+
 static void __init mxs_machine_init(void)
 {
        if (of_machine_is_compatible("fsl,imx28-evk"))
@@ -379,6 +384,8 @@ static void __init mxs_machine_init(void)
                apx4devkit_init();
        else if (of_machine_is_compatible("crystalfontz,cfa10049"))
                cfa10049_init();
+       else if (of_machine_is_compatible("armadeus,imx28-apf28"))
+               apf28_init();
 
        of_platform_populate(NULL, of_default_bus_match_table,
                             mxs_auxdata_lookup, NULL);