mpc83xx: add 2.6.33 support
[openwrt/svn-archive/archive.git] / target / linux / mpc83xx / patches-2.6.33 / 025-rb600-dts-qe-boot-fixups.patch
diff --git a/target/linux/mpc83xx/patches-2.6.33/025-rb600-dts-qe-boot-fixups.patch b/target/linux/mpc83xx/patches-2.6.33/025-rb600-dts-qe-boot-fixups.patch
new file mode 100644 (file)
index 0000000..fc7c4da
--- /dev/null
@@ -0,0 +1,136 @@
+--- 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;