Add flash definition for in lite5200b dts, and while at it
fix "ranges" for soc node.


Signed-off-by: Domen Puncer <[EMAIL PROTECTED]>

---
OK.

Then how about something like this?

# ls /sys/devices/
total 0
drwxr-xr-x 34 root root 0 Dec  9  1993 f0000000.soc5200
drwxr-xr-x  3 root root 0 Dec  9  1993 fe000000.flash
drwxr-xr-x  3 root root 0 Dec  9  1993 ff000000.flash
drwxr-xr-x  4 root root 0 Dec  9  1993 pci0000:00
drwxr-xr-x  5 root root 0 Dec  9  1993 platform
drwxr-xr-x  6 root root 0 Aug  7 08:39 system

# cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 01000000 00020000 "data0"
mtd1: 00f00000 00020000 "data1"
mtd2: 00100000 00020000 "u-boot"


        Domen

 arch/powerpc/boot/dts/lite5200b.dts          |   23 ++++++++++++++++++++++-
 arch/powerpc/platforms/52xx/mpc52xx_common.c |   15 +++++++++++++++
 2 files changed, 37 insertions(+), 1 deletion(-)

Index: clean-powerpc.git/arch/powerpc/boot/dts/lite5200b.dts
===================================================================
--- clean-powerpc.git.orig/arch/powerpc/boot/dts/lite5200b.dts
+++ clean-powerpc.git/arch/powerpc/boot/dts/lite5200b.dts
@@ -52,7 +52,7 @@
                revision = "";                  // from bootloader
                #interrupt-cells = <3>;
                device_type = "soc";
-               ranges = <0 f0000000 f0010000>;
+               ranges = <00000000 f0000000 00010000>;
                reg = <f0000000 00010000>;
                bus-frequency = <0>;            // from bootloader
                system-frequency = <0>;         // from bootloader
@@ -345,4 +345,25 @@
                        reg = <8000 4000>;
                };
        };
+
+       [EMAIL PROTECTED] {
+               device_type = "rom";
+               compatible = "direct-mapped";
+               probe-type = "CFI";
+               reg = <fe000000 01000000>;
+               bank-width = <1>;
+               partitions = <00000000 01000000>;
+               partition-names = "data0";
+       };
+
+       [EMAIL PROTECTED] {
+               device_type = "rom";
+               compatible = "direct-mapped";
+               probe-type = "CFI";
+               reg = <ff000000 01000000>;
+               bank-width = <1>;
+               partitions = <00000000 00f00000
+                             00f00000 00100000>;
+               partition-names = "data1", "u-boot";
+       };
 };
Index: clean-powerpc.git/arch/powerpc/platforms/52xx/mpc52xx_common.c
===================================================================
--- clean-powerpc.git.orig/arch/powerpc/platforms/52xx/mpc52xx_common.c
+++ clean-powerpc.git/arch/powerpc/platforms/52xx/mpc52xx_common.c
@@ -119,9 +119,24 @@ unmap_regs:
 void __init
 mpc52xx_declare_of_platform_devices(void)
 {
+       struct device_node *root, *child;
+       static const struct of_device_id matches[] = {
+               { .type = "rom", .compatible = "direct-mapped", },
+               {}
+       };
+
        /* Find every child of the SOC node and add it to of_platform */
        if (of_platform_bus_probe(NULL, NULL, NULL))
                printk(KERN_ERR __FILE__ ": "
                        "Error while probing of_platform bus\n");
+
+       /* add flash chips */
+       root = of_find_node_by_path("/");
+       child = NULL;
+       while ((child = of_get_next_child(root, child))) {
+               if (of_match_node(matches, child))
+                       of_platform_device_create(child, NULL, NULL);
+       }
+       of_node_put(root);
 }
 
_______________________________________________
Linuxppc-embedded mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-embedded

Reply via email to