[PATCH v2] lite5200b: flash definition in dts
Domen Puncer
domen.puncer at telargo.com
Tue Aug 7 17:02:30 EST 2007
Add flash definition for in lite5200b dts, and while at it
fix "ranges" for soc node.
Signed-off-by: Domen Puncer <domen.puncer at telargo.com>
---
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>;
};
};
+
+ flash at fe000000 {
+ device_type = "rom";
+ compatible = "direct-mapped";
+ probe-type = "CFI";
+ reg = <fe000000 01000000>;
+ bank-width = <1>;
+ partitions = <00000000 01000000>;
+ partition-names = "data0";
+ };
+
+ flash at ff000000 {
+ 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);
}
More information about the Linuxppc-embedded
mailing list