Use devicetree to define NAND partitions. Use D-link partition scheme by
default, to be vaguely compatible with their userland.

Signed-off-by: Jamie Lentin <j...@lentin.co.uk>
---
 arch/arm/boot/dts/kirkwood-dns320.dts |   35 +++++++++++++++++++++++++++++++++
 arch/arm/boot/dts/kirkwood-dns325.dts |   35 +++++++++++++++++++++++++++++++++
 arch/arm/mach-kirkwood/board-dnskw.c  |   31 -----------------------------
 3 files changed, 70 insertions(+), 31 deletions(-)

diff --git a/arch/arm/boot/dts/kirkwood-dns320.dts 
b/arch/arm/boot/dts/kirkwood-dns320.dts
index 58de7f2..fbf55ff 100644
--- a/arch/arm/boot/dts/kirkwood-dns320.dts
+++ b/arch/arm/boot/dts/kirkwood-dns320.dts
@@ -25,5 +25,40 @@
                        clock-frequency = <166666667>;
                        status = "ok";
                };
+
+               nand@3000000 {
+                       status = "ok";
+
+                       partition@0 {
+                               label = "u-boot";
+                               reg = <0x0000000 0x100000>;
+                               read-only;
+                       };
+
+                       partition@100000 {
+                               label = "uImage";
+                               reg = <0x0100000 0x500000>;
+                       };
+
+                       partition@600000 {
+                               label = "ramdisk";
+                               reg = <0x0600000 0x500000>;
+                       };
+
+                       partition@b00000 {
+                               label = "image";
+                               reg = <0x0b00000 0x6600000>;
+                       };
+
+                       partition@7100000 {
+                               label = "mini firmware";
+                               reg = <0x7100000 0xa00000>;
+                       };
+
+                       partition@7b00000 {
+                               label = "config";
+                               reg = <0x7b00000 0x500000>;
+                       };
+               };
        };
 };
diff --git a/arch/arm/boot/dts/kirkwood-dns325.dts 
b/arch/arm/boot/dts/kirkwood-dns325.dts
index 79b1133..b6238db 100644
--- a/arch/arm/boot/dts/kirkwood-dns325.dts
+++ b/arch/arm/boot/dts/kirkwood-dns325.dts
@@ -20,5 +20,40 @@
                        clock-frequency = <200000000>;
                        status = "ok";
                };
+
+               nand@3000000 {
+                       status = "ok";
+
+                       partition@0 {
+                               label = "u-boot";
+                               reg = <0x0000000 0x100000>;
+                               read-only;
+                       };
+
+                       partition@100000 {
+                               label = "uImage";
+                               reg = <0x0100000 0x500000>;
+                       };
+
+                       partition@600000 {
+                               label = "ramdisk";
+                               reg = <0x0600000 0x500000>;
+                       };
+
+                       partition@b00000 {
+                               label = "image";
+                               reg = <0x0b00000 0x6600000>;
+                       };
+
+                       partition@7100000 {
+                               label = "mini firmware";
+                               reg = <0x7100000 0xa00000>;
+                       };
+
+                       partition@7b00000 {
+                               label = "config";
+                               reg = <0x7b00000 0x500000>;
+                       };
+               };
        };
 };
diff --git a/arch/arm/mach-kirkwood/board-dnskw.c 
b/arch/arm/mach-kirkwood/board-dnskw.c
index 7cb7f6a..dc4e80a 100644
--- a/arch/arm/mach-kirkwood/board-dnskw.c
+++ b/arch/arm/mach-kirkwood/board-dnskw.c
@@ -23,7 +23,6 @@
 #include <linux/gpio_keys.h>
 #include <linux/gpio-fan.h>
 #include <linux/leds.h>
-#include <linux/mtd/physmap.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -32,35 +31,6 @@
 #include "common.h"
 #include "mpp.h"
 
-static struct mtd_partition dnskw_nand_parts[] = {
-       {
-               .name           = "u-boot",
-               .offset         = 0,
-               .size           = SZ_1M,
-               .mask_flags     = MTD_WRITEABLE
-       }, {
-               .name           = "uImage",
-               .offset         = MTDPART_OFS_NXTBLK,
-               .size           = 5 * SZ_1M
-       }, {
-               .name           = "ramdisk",
-               .offset         = MTDPART_OFS_NXTBLK,
-               .size           = 5 * SZ_1M
-       }, {
-               .name           = "image",
-               .offset         = MTDPART_OFS_NXTBLK,
-               .size           = 102 * SZ_1M
-       }, {
-               .name           = "mini firmware",
-               .offset         = MTDPART_OFS_NXTBLK,
-               .size           = 10 * SZ_1M
-       }, {
-               .name           = "config",
-               .offset         = MTDPART_OFS_NXTBLK,
-               .size           = 5 * SZ_1M
-       },
-};
-
 static struct mv643xx_eth_platform_data dnskw_ge00_data = {
        .phy_addr       = MV643XX_ETH_PHY_ADDR(8),
 };
@@ -272,7 +242,6 @@ static void __init dnskw_gpio_register(unsigned gpio, char 
*name, int def)
 void __init dnskw_init(void)
 {
        kirkwood_mpp_conf(dnskw_mpp_config);
-       kirkwood_nand_init(ARRAY_AND_SIZE(dnskw_nand_parts), 25);
 
        kirkwood_ehci_init();
        kirkwood_ge00_init(&dnskw_ge00_data);
-- 
1.7.9.1

_______________________________________________
devicetree-discuss mailing list
devicetree-discuss@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/devicetree-discuss

Reply via email to