Эх сурвалжийг харах

[POWERPC] Fix kernel build errors for mpc8272ads and mpc8560ads

Recent update of asm-powerpc/io.h caused cpm-related stuff to break in the
current kernel. Current patch fixes it, as well as other inconsistencies
expressed, that do not permit targets from working properly:

- Updated dts with a chosen node with interrupt controller,
- fixed messed device IDs among CPM2 SoC devices,
- corrected odd header name and fixed type in defines,
- Added 82xx subdir to the powerpc/platforms Makefile, missed during
  initial commit,
- new solely-powerpc header file for 8260 family (was using one from
  arch/ppc, this one cleaned up from the extra stuff), in fact for now
  a placeholder to get the board-specific includes for stuff not yet
  capable to live with devicetree peeks only
- Fixed couple of misprints in reference mpc8272 dts.

Signed-off-by: Vitaly Bordug <vbordug@ru.mvista.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Vitaly Bordug 18 жил өмнө
parent
commit
5427828e83

+ 4 - 4
arch/powerpc/boot/dts/mpc8272ads.dts

@@ -65,8 +65,8 @@
                #size-cells = <1>;
                #size-cells = <1>;
                #interrupt-cells = <2>;
                #interrupt-cells = <2>;
                device_type = "soc";
                device_type = "soc";
-               ranges = < 0 0 2 00000000 f0000000 00053000>;
-               reg = <f0000000 0>;
+               ranges = <00000000 f0000000 00053000>;
+               reg = <f0000000 10000>;
 
 
                mdio@0 {
                mdio@0 {
                        device_type = "mdio";
                        device_type = "mdio";
@@ -130,8 +130,8 @@
                        #interrupt-cells = <2>;
                        #interrupt-cells = <2>;
                        device_type = "cpm";
                        device_type = "cpm";
                        model = "CPM2";
                        model = "CPM2";
-                       ranges = <00000000 00000000 3ffff>;
-                       reg = <10d80 3280>;
+                       ranges = <00000000 00000000 20000>;
+                       reg = <0 20000>;
                        command-proc = <119c0>;
                        command-proc = <119c0>;
                        brg-frequency = <17D7840>;
                        brg-frequency = <17D7840>;
                        cpm_clk = <BEBC200>;
                        cpm_clk = <BEBC200>;

+ 1 - 1
arch/powerpc/platforms/82xx/mpc82xx.c

@@ -50,7 +50,7 @@
 #include <sysdev/fsl_soc.h>
 #include <sysdev/fsl_soc.h>
 #include <sysdev/cpm2_pic.h>
 #include <sysdev/cpm2_pic.h>
 
 
-#include "pq2ads_pd.h"
+#include "pq2ads.h"
 
 
 static int __init get_freq(char *name, unsigned long *val)
 static int __init get_freq(char *name, unsigned long *val)
 {
 {

+ 1 - 1
arch/powerpc/platforms/82xx/mpc82xx_ads.c

@@ -51,7 +51,7 @@
 #include <sysdev/fsl_soc.h>
 #include <sysdev/fsl_soc.h>
 #include <../sysdev/cpm2_pic.h>
 #include <../sysdev/cpm2_pic.h>
 
 
-#include "pq2ads_pd.h"
+#include "pq2ads.h"
 
 
 #ifdef CONFIG_PCI
 #ifdef CONFIG_PCI
 static uint pci_clk_frq;
 static uint pci_clk_frq;

+ 3 - 2
arch/powerpc/platforms/82xx/pq2ads.h

@@ -22,6 +22,7 @@
 #ifndef __MACH_ADS8260_DEFS
 #ifndef __MACH_ADS8260_DEFS
 #define __MACH_ADS8260_DEFS
 #define __MACH_ADS8260_DEFS
 
 
+#include <linux/seq_file.h>
 #include <asm/ppcboot.h>
 #include <asm/ppcboot.h>
 
 
 /* For our show_cpuinfo hooks. */
 /* For our show_cpuinfo hooks. */
@@ -46,12 +47,12 @@
 #define BCSR1_RS232_EN1		((uint)0x02000000)      /* 0 ==enable */
 #define BCSR1_RS232_EN1		((uint)0x02000000)      /* 0 ==enable */
 #define BCSR1_RS232_EN2		((uint)0x01000000)      /* 0 ==enable */
 #define BCSR1_RS232_EN2		((uint)0x01000000)      /* 0 ==enable */
 #define BCSR3_FETHIEN2		((uint)0x10000000)      /* 0 == enable*/
 #define BCSR3_FETHIEN2		((uint)0x10000000)      /* 0 == enable*/
-#define BCSR3_FETH2_RS		((uint)0x80000000)      /* 0 == reset */
+#define BCSR3_FETH2_RST		((uint)0x80000000)      /* 0 == reset */
 
 
 /* cpm serial driver works with constants below */
 /* cpm serial driver works with constants below */
 
 
 #define SIU_INT_SMC1		((uint)0x04+CPM_IRQ_OFFSET)
 #define SIU_INT_SMC1		((uint)0x04+CPM_IRQ_OFFSET)
-#define SIU_INT_SMC2i		((uint)0x05+CPM_IRQ_OFFSET)
+#define SIU_INT_SMC2		((uint)0x05+CPM_IRQ_OFFSET)
 #define SIU_INT_SCC1		((uint)0x28+CPM_IRQ_OFFSET)
 #define SIU_INT_SCC1		((uint)0x28+CPM_IRQ_OFFSET)
 #define SIU_INT_SCC2		((uint)0x29+CPM_IRQ_OFFSET)
 #define SIU_INT_SCC2		((uint)0x29+CPM_IRQ_OFFSET)
 #define SIU_INT_SCC3		((uint)0x2a+CPM_IRQ_OFFSET)
 #define SIU_INT_SCC3		((uint)0x2a+CPM_IRQ_OFFSET)

+ 1 - 0
arch/powerpc/platforms/Makefile

@@ -9,6 +9,7 @@ obj-$(CONFIG_PPC_MPC52xx)	+= 52xx/
 obj-$(CONFIG_PPC_CHRP)		+= chrp/
 obj-$(CONFIG_PPC_CHRP)		+= chrp/
 obj-$(CONFIG_4xx)		+= 4xx/
 obj-$(CONFIG_4xx)		+= 4xx/
 obj-$(CONFIG_PPC_8xx)		+= 8xx/
 obj-$(CONFIG_PPC_8xx)		+= 8xx/
+obj-$(CONFIG_PPC_82xx)		+= 82xx/
 obj-$(CONFIG_PPC_83xx)		+= 83xx/
 obj-$(CONFIG_PPC_83xx)		+= 83xx/
 obj-$(CONFIG_PPC_85xx)		+= 85xx/
 obj-$(CONFIG_PPC_85xx)		+= 85xx/
 obj-$(CONFIG_PPC_86xx)		+= 86xx/
 obj-$(CONFIG_PPC_86xx)		+= 86xx/

+ 1 - 0
drivers/net/fs_enet/fs_enet.h

@@ -9,6 +9,7 @@
 #include <linux/dma-mapping.h>
 #include <linux/dma-mapping.h>
 
 
 #include <linux/fs_enet_pd.h>
 #include <linux/fs_enet_pd.h>
+#include <asm/fs_pd.h>
 
 
 #ifdef CONFIG_CPM1
 #ifdef CONFIG_CPM1
 #include <asm/commproc.h>
 #include <asm/commproc.h>

+ 0 - 3
drivers/serial/cpm_uart/cpm_uart_cpm1.h

@@ -20,9 +20,6 @@
 #define SCC3_IRQ	(CPM_IRQ_OFFSET + CPMVEC_SCC3)
 #define SCC3_IRQ	(CPM_IRQ_OFFSET + CPMVEC_SCC3)
 #define SCC4_IRQ	(CPM_IRQ_OFFSET + CPMVEC_SCC4)
 #define SCC4_IRQ	(CPM_IRQ_OFFSET + CPMVEC_SCC4)
 
 
-/* the CPM address */
-#define CPM_ADDR	IMAP_ADDR
-
 static inline void cpm_set_brg(int brg, int baud)
 static inline void cpm_set_brg(int brg, int baud)
 {
 {
 	cpm_setbrg(brg, baud);
 	cpm_setbrg(brg, baud);

+ 0 - 3
drivers/serial/cpm_uart/cpm_uart_cpm2.h

@@ -20,9 +20,6 @@
 #define SCC3_IRQ	SIU_INT_SCC3
 #define SCC3_IRQ	SIU_INT_SCC3
 #define SCC4_IRQ	SIU_INT_SCC4
 #define SCC4_IRQ	SIU_INT_SCC4
 
 
-/* the CPM address */
-#define CPM_ADDR	CPM_MAP_ADDR
-
 static inline void cpm_set_brg(int brg, int baud)
 static inline void cpm_set_brg(int brg, int baud)
 {
 {
 	cpm_setbrg(brg, baud);
 	cpm_setbrg(brg, baud);

+ 6 - 0
include/asm-powerpc/fs_pd.h

@@ -17,6 +17,12 @@
 #ifdef CONFIG_CPM2
 #ifdef CONFIG_CPM2
 #include <asm/cpm2.h>
 #include <asm/cpm2.h>
 
 
+#if defined(CONFIG_8260)
+#include <asm/mpc8260.h>
+#elif defined(CONFIG_85xx)
+#include <asm/mpc85xx.h>
+#endif
+
 #define cpm2_map(member)						\
 #define cpm2_map(member)						\
 ({									\
 ({									\
 	u32 offset = offsetof(cpm2_map_t, member);			\
 	u32 offset = offsetof(cpm2_map_t, member);			\

+ 6 - 0
include/asm-powerpc/io.h

@@ -732,6 +732,12 @@ static inline void * bus_to_virt(unsigned long address)
 
 
 #endif /* CONFIG_PPC32 */
 #endif /* CONFIG_PPC32 */
 
 
+/* access ports */
+#define setbits32(_addr, _v) out_be32((_addr), in_be32(_addr) |  (_v))
+#define clrbits32(_addr, _v) out_be32((_addr), in_be32(_addr) & ~(_v))
+
+#define setbits16(_addr, _v) out_be16((_addr), in_be16(_addr) |  (_v))
+#define clrbits16(_addr, _v) out_be16((_addr), in_be16(_addr) & ~(_v))
 
 
 #endif /* __KERNEL__ */
 #endif /* __KERNEL__ */