Root/target/linux/brcm47xx/patches-3.0/951-brcm4716-defines.patch

1--- a/drivers/ssb/scan.c
2+++ b/drivers/ssb/scan.c
3@@ -90,6 +90,14 @@ const char *ssb_core_name(u16 coreid)
4         return "ARM 1176";
5     case SSB_DEV_ARM_7TDMI:
6         return "ARM 7TDMI";
7+ case SSB_DEV_ETHERNET_GBIT2:
8+ return "Gigabit MAC";
9+ case SSB_DEV_MIPS_74K:
10+ return "MIPS 74k";
11+ case SSB_DEV_DDR_CTRLR:
12+ return "DDR1/2 memory controller";
13+ case SSB_DEV_I2S:
14+ return "I2S";
15     }
16     return "UNKNOWN";
17 }
18@@ -148,6 +156,7 @@ static u8 chipid_to_nrcores(u16 chipid)
19     case 0x4710:
20     case 0x4610:
21     case 0x4704:
22+ case 0x4716:
23         return 9;
24     default:
25         ssb_printk(KERN_ERR PFX
26--- a/include/linux/ssb/ssb.h
27+++ b/include/linux/ssb/ssb.h
28@@ -155,9 +155,16 @@ struct ssb_bus_ops {
29 #define SSB_DEV_MINI_MACPHY 0x823
30 #define SSB_DEV_ARM_1176 0x824
31 #define SSB_DEV_ARM_7TDMI 0x825
32+#define SSB_DEV_ETHERNET_GBIT2 0x82d
33+#define SSB_DEV_MIPS_74K 0x82c
34+#define SSB_DEV_DDR_CTRLR 0x82e
35+#define SSB_DEV_I2S 0x834
36+#define SSB_DEV_DEFAULT 0xfff
37 
38 /* Vendor-ID values */
39 #define SSB_VENDOR_BROADCOM 0x4243
40+#define SSB_VENDOR_BROADCOM2 0x04BF
41+#define SSB_VENDOR_ARM 0x43b
42 
43 /* Some kernel subsystems poke with dev->drvdata, so we must use the
44  * following ugly workaround to get from struct device to struct ssb_device */
45--- a/include/linux/ssb/ssb_regs.h
46+++ b/include/linux/ssb/ssb_regs.h
47@@ -11,6 +11,7 @@
48 #define SSB_SDRAM_SWAPPED 0x10000000U /* Byteswapped Physical SDRAM */
49 #define SSB_ENUM_BASE 0x18000000U /* Enumeration space base */
50 #define SSB_ENUM_LIMIT 0x18010000U /* Enumeration space limit */
51+#define SSB_AI_BASE 0x18100000 /* base for AI registers */
52 
53 #define SSB_FLASH2 0x1c000000U /* Flash Region 2 (region 1 shadowed here) */
54 #define SSB_FLASH2_SZ 0x02000000U /* Size of Flash Region 2 */
55@@ -26,6 +27,7 @@
56 #define SSB_EUART (SSB_EXTIF_BASE + 0x00800000)
57 #define SSB_LED (SSB_EXTIF_BASE + 0x00900000)
58 
59+#define SSB_EROM_ASD_SZ_BASE 0x00001000
60 
61 /* Enumeration space constants */
62 #define SSB_CORE_SIZE 0x1000 /* Size of a core MMIO area */
63@@ -499,5 +501,41 @@ enum {
64 #define SSB_ADM_BASE2 0xFFFF0000 /* Type2 base address for the core */
65 #define SSB_ADM_BASE2_SHIFT 16
66 
67+/***** EROM defines for AI type busses *****/
68+#define SSB_EROM_VALID 1
69+#define SSB_EROM_END 0xe
70+#define SSB_EROM_TAG 0xe
71+/* Adress Space Descriptor */
72+#define SSB_EROM_ASD 0x4
73+#define SSB_EROM_ASD_SP_MASK 0x00000f00
74+#define SSB_EROM_ASD_SP_SHIFT 8
75+#define SSB_EROM_ASD_ST_MASK 0x000000c0
76+#define SSB_EROM_ASD_ST_SLAVE 0x00000000
77+#define SSB_EROM_ASD_ST_BRIDGE 0x00000040
78+#define SSB_EROM_ASD_ST_MWRAP 0x000000c0
79+#define SSB_EROM_ASD_ST_SWRAP 0x00000080
80+#define SSB_EROM_ASD_ADDR_MASK 0xfffff000
81+#define SSB_EROM_ASD_AG32 0x00000008
82+#define SSB_EROM_ASD_SZ_MASK 0x00000030
83+#define SSB_EROM_ASD_SZ_SZD 0x00000030
84+#define SSB_EROM_ASD_SZ_SHIFT 4
85+#define SSB_EROM_CI 0
86+#define SSB_EROM_CIA_CID_MASK 0x000fff00
87+#define SSB_EROM_CIA_CID_SHIFT 8
88+#define SSB_EROM_CIA_MFG_MASK 0xfff00000
89+#define SSB_EROM_CIA_MFG_SHIFT 20
90+#define SSB_EROM_CIB_REV_MASK 0xff000000
91+#define SSB_EROM_CIB_REV_SHIFT 24
92+#define SSB_EROM_CIB_NMW_MASK 0x0007c000
93+#define SSB_EROM_CIB_NSW_MASK 0x00f80000
94+#define SSB_EROM_CIB_NSP_MASK 0x00003e00
95+
96+/***** Registers of AI config space *****/
97+#define SSB_AI_RESETCTRL 0x800 /* maybe 0x804 for big endian */
98+#define SSB_AI_RESETCTRL_RESET 1
99+#define SSB_AI_IOCTRL 0x408 /* maybe 0x40c for big endian */
100+#define SSB_CF_FGC 0x0002
101+#define SSB_CF_CLOCK_EN 0x001
102+#define SSB_AI_oobselouta30 0x100
103 
104 #endif /* LINUX_SSB_REGS_H_ */
105

Archive Download this file



interactive