diff options
Diffstat (limited to 'drivers/net/wireless/ti/wl12xx/main.c')
-rw-r--r-- | drivers/net/wireless/ti/wl12xx/main.c | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/drivers/net/wireless/ti/wl12xx/main.c b/drivers/net/wireless/ti/wl12xx/main.c index 0d3ed7d7893..ea8480c1fae 100644 --- a/drivers/net/wireless/ti/wl12xx/main.c +++ b/drivers/net/wireless/ti/wl12xx/main.c | |||
@@ -27,7 +27,7 @@ | |||
27 | #include "../wlcore/wlcore.h" | 27 | #include "../wlcore/wlcore.h" |
28 | #include "../wlcore/debug.h" | 28 | #include "../wlcore/debug.h" |
29 | 29 | ||
30 | #include "../wlcore/reg.h" | 30 | #include "reg.h" |
31 | 31 | ||
32 | static struct wlcore_ops wl12xx_ops = { | 32 | static struct wlcore_ops wl12xx_ops = { |
33 | }; | 33 | }; |
@@ -52,6 +52,26 @@ static struct wlcore_partition_set wl12xx_ptable[PART_TABLE_LEN] = { | |||
52 | }, | 52 | }, |
53 | }, | 53 | }, |
54 | 54 | ||
55 | [PART_BOOT] = { /* in wl12xx we can use a mix of work and down | ||
56 | * partition here */ | ||
57 | .mem = { | ||
58 | .start = 0x00040000, | ||
59 | .size = 0x00014fc0 | ||
60 | }, | ||
61 | .reg = { | ||
62 | .start = REGISTERS_BASE, | ||
63 | .size = 0x00008800 | ||
64 | }, | ||
65 | .mem2 = { | ||
66 | .start = 0x00000000, | ||
67 | .size = 0x00000000 | ||
68 | }, | ||
69 | .mem3 = { | ||
70 | .start = 0x00000000, | ||
71 | .size = 0x00000000 | ||
72 | }, | ||
73 | }, | ||
74 | |||
55 | [PART_WORK] = { | 75 | [PART_WORK] = { |
56 | .mem = { | 76 | .mem = { |
57 | .start = 0x00040000, | 77 | .start = 0x00040000, |
@@ -91,6 +111,26 @@ static struct wlcore_partition_set wl12xx_ptable[PART_TABLE_LEN] = { | |||
91 | } | 111 | } |
92 | }; | 112 | }; |
93 | 113 | ||
114 | static const int wl12xx_rtable[REG_TABLE_LEN] = { | ||
115 | [REG_ECPU_CONTROL] = WL12XX_REG_ECPU_CONTROL, | ||
116 | [REG_INTERRUPT_NO_CLEAR] = WL12XX_REG_INTERRUPT_NO_CLEAR, | ||
117 | [REG_INTERRUPT_ACK] = WL12XX_REG_INTERRUPT_ACK, | ||
118 | [REG_COMMAND_MAILBOX_PTR] = WL12XX_REG_COMMAND_MAILBOX_PTR, | ||
119 | [REG_EVENT_MAILBOX_PTR] = WL12XX_REG_EVENT_MAILBOX_PTR, | ||
120 | [REG_INTERRUPT_TRIG] = WL12XX_REG_INTERRUPT_TRIG, | ||
121 | [REG_INTERRUPT_MASK] = WL12XX_REG_INTERRUPT_MASK, | ||
122 | [REG_PC_ON_RECOVERY] = WL12XX_SCR_PAD4, | ||
123 | [REG_CHIP_ID_B] = WL12XX_CHIP_ID_B, | ||
124 | [REG_CMD_MBOX_ADDRESS] = WL12XX_CMD_MBOX_ADDRESS, | ||
125 | |||
126 | /* data access memory addresses, used with partition translation */ | ||
127 | [REG_SLV_MEM_DATA] = WL1271_SLV_MEM_DATA, | ||
128 | [REG_SLV_REG_DATA] = WL1271_SLV_REG_DATA, | ||
129 | |||
130 | /* raw data access memory addresses */ | ||
131 | [REG_RAW_FW_STATUS_ADDR] = FW_STATUS_ADDR, | ||
132 | }; | ||
133 | |||
94 | static int __devinit wl12xx_probe(struct platform_device *pdev) | 134 | static int __devinit wl12xx_probe(struct platform_device *pdev) |
95 | { | 135 | { |
96 | struct wl1271 *wl; | 136 | struct wl1271 *wl; |
@@ -105,6 +145,7 @@ static int __devinit wl12xx_probe(struct platform_device *pdev) | |||
105 | wl = hw->priv; | 145 | wl = hw->priv; |
106 | wl->ops = &wl12xx_ops; | 146 | wl->ops = &wl12xx_ops; |
107 | wl->ptable = wl12xx_ptable; | 147 | wl->ptable = wl12xx_ptable; |
148 | wl->rtable = wl12xx_rtable; | ||
108 | 149 | ||
109 | return wlcore_probe(wl, pdev); | 150 | return wlcore_probe(wl, pdev); |
110 | } | 151 | } |