openwrt/target/linux/mpc83xx/patches-2.6.33/025-rb600-dts-qe-boot-fixup...

137 lines
4.2 KiB
Diff

--- a/arch/powerpc/boot/dts/rb600.dts
+++ b/arch/powerpc/boot/dts/rb600.dts
@@ -20,9 +20,11 @@
aliases {
ethernet0 = &enet0;
ethernet1 = &enet1;
+ pci0 = &pci0;
};
chosen {
+ bootargs = "console=ttyS0,115200 board=mpc8323 rootfstype=squashfs,yaffs2,jffs2 root=/dev/mtdblock1 boot=1";
linux,stdout-path = "/soc8343@e0000000/serial@4500";
};
@@ -150,6 +152,45 @@
device_type = "gpio";
};
+ dma@82a8 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "fsl,mpc8349-dma", "fsl,elo-dma";
+ reg = <0x82a8 4>;
+ ranges = <0 0x8100 0x1a8>;
+ interrupt-parent = <&ipic>;
+ interrupts = <71 8>;
+ cell-index = <0>;
+ dma-channel@0 {
+ compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
+ reg = <0 0x80>;
+ cell-index = <0>;
+ interrupt-parent = <&ipic>;
+ interrupts = <71 8>;
+ };
+ dma-channel@80 {
+ compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
+ reg = <0x80 0x80>;
+ cell-index = <1>;
+ interrupt-parent = <&ipic>;
+ interrupts = <71 8>;
+ };
+ dma-channel@100 {
+ compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
+ reg = <0x100 0x80>;
+ cell-index = <2>;
+ interrupt-parent = <&ipic>;
+ interrupts = <71 8>;
+ };
+ dma-channel@180 {
+ compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
+ reg = <0x180 0x28>;
+ cell-index = <3>;
+ interrupt-parent = <&ipic>;
+ interrupts = <71 8>;
+ };
+ };
+
enet0: ethernet@25000 {
#address-cells = <1>;
#size-cells = <1>;
--- a/arch/powerpc/boot/rb600.c 2010-04-01 07:46:37.000000000 +0300
+++ b/arch/powerpc/boot/rb600.c 2010-04-01 08:04:03.000000000 +0300
@@ -45,14 +45,6 @@
clock = fdt_getprop(fw_dtb, node, "clock-frequency", &size);
dt_fixup_cpu_clocks(*clock, *timebase, 0);
- /* Fixup chosen
- * The bootloader reads the kernelparm segment and adds the content to
- * bootargs. This is needed to specify root and other boot flags.
- */
- chosen = finddevice("/chosen");
- node = fdt_path_offset(fw_dtb, "/chosen");
- bootargs = fdt_getprop(fw_dtb, node, "bootargs", &size);
- setprop_str(chosen, "bootargs", bootargs);
}
void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
--- a/arch/powerpc/platforms/83xx/rbppc.c 2010-04-01 09:04:09.000000000 +0300
+++ b/arch/powerpc/platforms/83xx/rbppc.c 2010-04-01 09:02:00.000000000 +0300
@@ -56,6 +56,8 @@
static int beeper_irq;
static unsigned beeper_gpio_pin[2];
+int rb333model = 0;
+
irqreturn_t rbppc_timer_irq(int irq, void *ptr)
{
static int toggle = 0;
@@ -120,6 +122,8 @@
}
#endif
+if (rb333model) {
+
#ifdef CONFIG_QUICC_ENGINE
qe_reset();
@@ -132,6 +136,8 @@
}
#endif
+} /* RB333 */
+
}
void __init rbppc_init_IRQ(void)
@@ -145,6 +151,8 @@
of_node_put(np);
}
+if (rb333model) {
+
#ifdef CONFIG_QUICC_ENGINE
np = of_find_compatible_node(NULL, NULL, "fsl,qe-ic");
if (!np) {
@@ -156,6 +164,8 @@
of_node_put(np);
#endif /* CONFIG_QUICC_ENGINE */
+} /* RB333 */
+
}
static int __init rbppc_probe(void)
@@ -167,8 +177,10 @@
if (!model)
return 0;
- if (strcmp(model, "RB333") == 0)
+ if (strcmp(model, "RB333") == 0) {
+ rb333model = 1;
return 1;
+ }
if (strcmp(model, "RB600") == 0)
return 1;