brcm47xx: add new led and button support
[openwrt.git] / target / linux / brcm47xx / patches-3.10 / 122-MIPS-BCM47XX-Import-buttons-database-from-OpenWrt.patch
1 From 12dacbcfa86048cc0810fc6b91b3d7329722e59b Mon Sep 17 00:00:00 2001
2 From: Rafa? Mi?ecki <zajec5@gmail.com>
3 Date: Thu, 2 Jan 2014 13:37:56 +0100
4 Subject: [PATCH 031/110] MIPS: BCM47XX: Import buttons database from OpenWrt
5
6 This includes all devices from OpenWrt's "diag" that we support in arch
7 code (we have entries for in enum bcm47xx_board).
8
9 Signed-off-by: Rafa? Mi?ecki <zajec5@gmail.com>
10 Acked-by: John Crispin <blogic@openwrt.org>
11 Patchwork: http://patchwork.linux-mips.org/patch/6301/
12 ---
13  arch/mips/bcm47xx/buttons.c |  456 +++++++++++++++++++++++++++++++++++++++++++
14  1 file changed, 456 insertions(+)
15
16 --- a/arch/mips/bcm47xx/buttons.c
17 +++ b/arch/mips/bcm47xx/buttons.c
18 @@ -11,6 +11,299 @@
19   * Database
20   **************************************************/
21  
22 +#define BCM47XX_GPIO_KEY(_gpio, _code)                                 \
23 +       {                                                               \
24 +               .code           = _code,                                \
25 +               .gpio           = _gpio,                                \
26 +               .active_low     = 1,                                    \
27 +       }
28 +
29 +/* Asus */
30 +
31 +static const struct gpio_keys_button
32 +bcm47xx_buttons_asus_rtn12[] __initconst = {
33 +       BCM47XX_GPIO_KEY(0, KEY_WPS_BUTTON),
34 +       BCM47XX_GPIO_KEY(1, KEY_RESTART),
35 +       BCM47XX_GPIO_KEY(4, BTN_0), /* Router mode */
36 +       BCM47XX_GPIO_KEY(5, BTN_1), /* Repeater mode */
37 +       BCM47XX_GPIO_KEY(6, BTN_2), /* AP mode */
38 +};
39 +
40 +static const struct gpio_keys_button
41 +bcm47xx_buttons_asus_rtn16[] __initconst = {
42 +       BCM47XX_GPIO_KEY(6, KEY_WPS_BUTTON),
43 +       BCM47XX_GPIO_KEY(8, KEY_RESTART),
44 +};
45 +
46 +static const struct gpio_keys_button
47 +bcm47xx_buttons_asus_rtn66u[] __initconst = {
48 +       BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON),
49 +       BCM47XX_GPIO_KEY(9, KEY_RESTART),
50 +};
51 +
52 +static const struct gpio_keys_button
53 +bcm47xx_buttons_asus_wl300g[] __initconst = {
54 +       BCM47XX_GPIO_KEY(6, KEY_RESTART),
55 +};
56 +
57 +static const struct gpio_keys_button
58 +bcm47xx_buttons_asus_wl320ge[] __initconst = {
59 +       BCM47XX_GPIO_KEY(6, KEY_RESTART),
60 +};
61 +
62 +static const struct gpio_keys_button
63 +bcm47xx_buttons_asus_wl330ge[] __initconst = {
64 +       BCM47XX_GPIO_KEY(2, KEY_RESTART),
65 +};
66 +
67 +static const struct gpio_keys_button
68 +bcm47xx_buttons_asus_wl500gd[] __initconst = {
69 +       BCM47XX_GPIO_KEY(6, KEY_RESTART),
70 +};
71 +
72 +static const struct gpio_keys_button
73 +bcm47xx_buttons_asus_wl500gpv1[] __initconst = {
74 +       BCM47XX_GPIO_KEY(0, KEY_RESTART),
75 +       BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON),
76 +};
77 +
78 +static const struct gpio_keys_button
79 +bcm47xx_buttons_asus_wl500gpv2[] __initconst = {
80 +       BCM47XX_GPIO_KEY(2, KEY_RESTART),
81 +       BCM47XX_GPIO_KEY(3, KEY_WPS_BUTTON),
82 +};
83 +
84 +static const struct gpio_keys_button
85 +bcm47xx_buttons_asus_wl500w[] __initconst = {
86 +       BCM47XX_GPIO_KEY(6, KEY_RESTART),
87 +       BCM47XX_GPIO_KEY(7, KEY_WPS_BUTTON),
88 +};
89 +
90 +static const struct gpio_keys_button
91 +bcm47xx_buttons_asus_wl520gc[] __initconst = {
92 +       BCM47XX_GPIO_KEY(2, KEY_RESTART),
93 +       BCM47XX_GPIO_KEY(3, KEY_WPS_BUTTON),
94 +};
95 +
96 +static const struct gpio_keys_button
97 +bcm47xx_buttons_asus_wl520gu[] __initconst = {
98 +       BCM47XX_GPIO_KEY(2, KEY_RESTART),
99 +       BCM47XX_GPIO_KEY(3, KEY_WPS_BUTTON),
100 +};
101 +
102 +static const struct gpio_keys_button
103 +bcm47xx_buttons_asus_wl700ge[] __initconst = {
104 +       BCM47XX_GPIO_KEY(0, KEY_POWER), /* Hard disk power switch */
105 +       BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON), /* EZSetup */
106 +       BCM47XX_GPIO_KEY(6, KEY_COPY), /* Copy data from USB to internal disk */
107 +       BCM47XX_GPIO_KEY(7, KEY_RESTART), /* Hard reset */
108 +};
109 +
110 +static const struct gpio_keys_button
111 +bcm47xx_buttons_asus_wlhdd[] __initconst = {
112 +       BCM47XX_GPIO_KEY(6, KEY_RESTART),
113 +};
114 +
115 +/* Huawei */
116 +
117 +static const struct gpio_keys_button
118 +bcm47xx_buttons_huawei_e970[] __initconst = {
119 +       BCM47XX_GPIO_KEY(6, KEY_RESTART),
120 +};
121 +
122 +/* Belkin */
123 +
124 +static const struct gpio_keys_button
125 +bcm47xx_buttons_belkin_f7d4301[] __initconst = {
126 +       BCM47XX_GPIO_KEY(6, KEY_RESTART),
127 +       BCM47XX_GPIO_KEY(8, KEY_WPS_BUTTON),
128 +};
129 +
130 +/* Buffalo */
131 +
132 +static const struct gpio_keys_button
133 +bcm47xx_buttons_buffalo_whr2_a54g54[] __initconst = {
134 +       BCM47XX_GPIO_KEY(4, KEY_RESTART),
135 +};
136 +
137 +static const struct gpio_keys_button
138 +bcm47xx_buttons_buffalo_whr_g125[] __initconst = {
139 +       BCM47XX_GPIO_KEY(0, KEY_WPS_BUTTON),
140 +       BCM47XX_GPIO_KEY(4, KEY_RESTART),
141 +       BCM47XX_GPIO_KEY(5, BTN_0), /* Router / AP mode swtich */
142 +};
143 +
144 +static const struct gpio_keys_button
145 +bcm47xx_buttons_buffalo_whr_g54s[] __initconst = {
146 +       BCM47XX_GPIO_KEY(0, KEY_WPS_BUTTON),
147 +       BCM47XX_GPIO_KEY(4, KEY_RESTART),
148 +       BCM47XX_GPIO_KEY(5, BTN_0), /* Router / AP mode swtich */
149 +};
150 +
151 +static const struct gpio_keys_button
152 +bcm47xx_buttons_buffalo_whr_hp_g54[] __initconst = {
153 +       BCM47XX_GPIO_KEY(0, KEY_WPS_BUTTON),
154 +       BCM47XX_GPIO_KEY(4, KEY_RESTART),
155 +       BCM47XX_GPIO_KEY(5, BTN_0), /* Router / AP mode swtich */
156 +};
157 +
158 +static const struct gpio_keys_button
159 +bcm47xx_buttons_buffalo_wzr_g300n[] __initconst = {
160 +       BCM47XX_GPIO_KEY(4, KEY_RESTART),
161 +};
162 +
163 +static const struct gpio_keys_button
164 +bcm47xx_buttons_buffalo_wzr_rs_g54[] __initconst = {
165 +       BCM47XX_GPIO_KEY(0, KEY_WPS_BUTTON),
166 +       BCM47XX_GPIO_KEY(4, KEY_RESTART),
167 +};
168 +
169 +static const struct gpio_keys_button
170 +bcm47xx_buttons_buffalo_wzr_rs_g54hp[] __initconst = {
171 +       BCM47XX_GPIO_KEY(0, KEY_WPS_BUTTON),
172 +       BCM47XX_GPIO_KEY(4, KEY_RESTART),
173 +};
174 +
175 +/* Dell */
176 +
177 +static const struct gpio_keys_button
178 +bcm47xx_buttons_dell_tm2300[] __initconst = {
179 +       BCM47XX_GPIO_KEY(0, KEY_RESTART),
180 +};
181 +
182 +/* D-Link */
183 +
184 +static const struct gpio_keys_button
185 +bcm47xx_buttons_dlink_dir130[] __initconst = {
186 +       BCM47XX_GPIO_KEY(3, KEY_RESTART),
187 +       BCM47XX_GPIO_KEY(7, KEY_UNKNOWN),
188 +};
189 +
190 +static const struct gpio_keys_button
191 +bcm47xx_buttons_dlink_dir330[] __initconst = {
192 +       BCM47XX_GPIO_KEY(3, KEY_RESTART),
193 +       BCM47XX_GPIO_KEY(7, KEY_UNKNOWN),
194 +};
195 +
196 +/* Linksys */
197 +
198 +static const struct gpio_keys_button
199 +bcm47xx_buttons_linksys_e1000v1[] __initconst = {
200 +       BCM47XX_GPIO_KEY(5, KEY_WPS_BUTTON),
201 +       BCM47XX_GPIO_KEY(6, KEY_RESTART),
202 +};
203 +
204 +static const struct gpio_keys_button
205 +bcm47xx_buttons_linksys_e1000v21[] __initconst = {
206 +       BCM47XX_GPIO_KEY(9, KEY_WPS_BUTTON),
207 +       BCM47XX_GPIO_KEY(10, KEY_RESTART),
208 +};
209 +
210 +static const struct gpio_keys_button
211 +bcm47xx_buttons_linksys_e2000v1[] __initconst = {
212 +       BCM47XX_GPIO_KEY(5, KEY_WPS_BUTTON),
213 +       BCM47XX_GPIO_KEY(8, KEY_RESTART),
214 +};
215 +
216 +static const struct gpio_keys_button
217 +bcm47xx_buttons_linksys_e3000v1[] __initconst = {
218 +       BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON),
219 +       BCM47XX_GPIO_KEY(6, KEY_RESTART),
220 +};
221 +
222 +static const struct gpio_keys_button
223 +bcm47xx_buttons_linksys_e3200v1[] __initconst = {
224 +       BCM47XX_GPIO_KEY(5, KEY_RESTART),
225 +       BCM47XX_GPIO_KEY(8, KEY_WPS_BUTTON),
226 +};
227 +
228 +static const struct gpio_keys_button
229 +bcm47xx_buttons_linksys_e4200v1[] __initconst = {
230 +       BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON),
231 +       BCM47XX_GPIO_KEY(6, KEY_RESTART),
232 +};
233 +
234 +static const struct gpio_keys_button
235 +bcm47xx_buttons_linksys_wrt150nv1[] __initconst = {
236 +       BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON),
237 +       BCM47XX_GPIO_KEY(6, KEY_RESTART),
238 +};
239 +
240 +static const struct gpio_keys_button
241 +bcm47xx_buttons_linksys_wrt150nv11[] __initconst = {
242 +       BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON),
243 +       BCM47XX_GPIO_KEY(6, KEY_RESTART),
244 +};
245 +
246 +static const struct gpio_keys_button
247 +bcm47xx_buttons_linksys_wrt160nv1[] __initconst = {
248 +       BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON),
249 +       BCM47XX_GPIO_KEY(6, KEY_RESTART),
250 +};
251 +
252 +static const struct gpio_keys_button
253 +bcm47xx_buttons_linksys_wrt160nv3[] __initconst = {
254 +       BCM47XX_GPIO_KEY(5, KEY_WPS_BUTTON),
255 +       BCM47XX_GPIO_KEY(6, KEY_RESTART),
256 +};
257 +
258 +static const struct gpio_keys_button
259 +bcm47xx_buttons_linksys_wrt300nv11[] __initconst = {
260 +       BCM47XX_GPIO_KEY(4, KEY_UNKNOWN),
261 +       BCM47XX_GPIO_KEY(6, KEY_RESTART),
262 +};
263 +
264 +static const struct gpio_keys_button
265 +bcm47xx_buttons_linksys_wrt310nv1[] __initconst = {
266 +       BCM47XX_GPIO_KEY(6, KEY_RESTART),
267 +       BCM47XX_GPIO_KEY(8, KEY_UNKNOWN),
268 +};
269 +
270 +static const struct gpio_keys_button
271 +bcm47xx_buttons_linksys_wrt610nv1[] __initconst = {
272 +       BCM47XX_GPIO_KEY(6, KEY_RESTART),
273 +       BCM47XX_GPIO_KEY(8, KEY_WPS_BUTTON),
274 +};
275 +
276 +static const struct gpio_keys_button
277 +bcm47xx_buttons_linksys_wrt610nv2[] __initconst = {
278 +       BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON),
279 +       BCM47XX_GPIO_KEY(6, KEY_RESTART),
280 +};
281 +
282 +/* Motorola */
283 +
284 +static const struct gpio_keys_button
285 +bcm47xx_buttons_motorola_we800g[] __initconst = {
286 +       BCM47XX_GPIO_KEY(0, KEY_RESTART),
287 +};
288 +
289 +static const struct gpio_keys_button
290 +bcm47xx_buttons_motorola_wr850gp[] __initconst = {
291 +       BCM47XX_GPIO_KEY(5, KEY_RESTART),
292 +};
293 +
294 +static const struct gpio_keys_button
295 +bcm47xx_buttons_motorola_wr850gv2v3[] __initconst = {
296 +       BCM47XX_GPIO_KEY(5, KEY_RESTART),
297 +};
298 +
299 +/* Netgear */
300 +
301 +static const struct gpio_keys_button
302 +bcm47xx_buttons_netgear_wndr3400v1[] __initconst = {
303 +       BCM47XX_GPIO_KEY(4, KEY_RESTART),
304 +       BCM47XX_GPIO_KEY(6, KEY_WPS_BUTTON),
305 +       BCM47XX_GPIO_KEY(8, KEY_RFKILL),
306 +};
307 +
308 +static const struct gpio_keys_button
309 +bcm47xx_buttons_netgear_wndr3700v3[] __initconst = {
310 +       BCM47XX_GPIO_KEY(2, KEY_RFKILL),
311 +       BCM47XX_GPIO_KEY(3, KEY_RESTART),
312 +       BCM47XX_GPIO_KEY(4, KEY_WPS_BUTTON),
313 +};
314 +
315  static const struct gpio_keys_button
316  bcm47xx_buttons_netgear_wndr4500_v1[] __initconst = {
317         {
318 @@ -30,6 +323,18 @@ bcm47xx_buttons_netgear_wndr4500_v1[] __
319         },
320  };
321  
322 +static const struct gpio_keys_button
323 +bcm47xx_buttons_netgear_wnr834bv2[] __initconst = {
324 +       BCM47XX_GPIO_KEY(6, KEY_RESTART),
325 +};
326 +
327 +/* SimpleTech */
328 +
329 +static const struct gpio_keys_button
330 +bcm47xx_buttons_simpletech_simpleshare[] __initconst = {
331 +       BCM47XX_GPIO_KEY(0, KEY_RESTART),
332 +};
333 +
334  /**************************************************
335   * Init
336   **************************************************/
337 @@ -74,9 +379,160 @@ int __init bcm47xx_buttons_register(void
338  #endif
339  
340         switch (board) {
341 +       case BCM47XX_BOARD_ASUS_RTN12:
342 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_rtn12);
343 +               break;
344 +       case BCM47XX_BOARD_ASUS_RTN16:
345 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_rtn16);
346 +               break;
347 +       case BCM47XX_BOARD_ASUS_RTN66U:
348 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_rtn66u);
349 +               break;
350 +       case BCM47XX_BOARD_ASUS_WL300G:
351 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_wl300g);
352 +               break;
353 +       case BCM47XX_BOARD_ASUS_WL320GE:
354 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_wl320ge);
355 +               break;
356 +       case BCM47XX_BOARD_ASUS_WL330GE:
357 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_wl330ge);
358 +               break;
359 +       case BCM47XX_BOARD_ASUS_WL500GD:
360 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_wl500gd);
361 +               break;
362 +       case BCM47XX_BOARD_ASUS_WL500GPV1:
363 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_wl500gpv1);
364 +               break;
365 +       case BCM47XX_BOARD_ASUS_WL500GPV2:
366 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_wl500gpv2);
367 +               break;
368 +       case BCM47XX_BOARD_ASUS_WL500W:
369 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_wl500w);
370 +               break;
371 +       case BCM47XX_BOARD_ASUS_WL520GC:
372 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_wl520gc);
373 +               break;
374 +       case BCM47XX_BOARD_ASUS_WL520GU:
375 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_wl520gu);
376 +               break;
377 +       case BCM47XX_BOARD_ASUS_WL700GE:
378 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_wl700ge);
379 +               break;
380 +       case BCM47XX_BOARD_ASUS_WLHDD:
381 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_asus_wlhdd);
382 +               break;
383 +
384 +       case BCM47XX_BOARD_BELKIN_F7D4301:
385 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_belkin_f7d4301);
386 +               break;
387 +
388 +       case BCM47XX_BOARD_BUFFALO_WHR2_A54G54:
389 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_buffalo_whr2_a54g54);
390 +               break;
391 +       case BCM47XX_BOARD_BUFFALO_WHR_G125:
392 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_buffalo_whr_g125);
393 +               break;
394 +       case BCM47XX_BOARD_BUFFALO_WHR_G54S:
395 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_buffalo_whr_g54s);
396 +               break;
397 +       case BCM47XX_BOARD_BUFFALO_WHR_HP_G54:
398 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_buffalo_whr_hp_g54);
399 +               break;
400 +       case BCM47XX_BOARD_BUFFALO_WZR_G300N:
401 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_buffalo_wzr_g300n);
402 +               break;
403 +       case BCM47XX_BOARD_BUFFALO_WZR_RS_G54:
404 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_buffalo_wzr_rs_g54);
405 +               break;
406 +       case BCM47XX_BOARD_BUFFALO_WZR_RS_G54HP:
407 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_buffalo_wzr_rs_g54hp);
408 +               break;
409 +
410 +       case BCM47XX_BOARD_DELL_TM2300:
411 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_dell_tm2300);
412 +               break;
413 +
414 +       case BCM47XX_BOARD_DLINK_DIR130:
415 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_dlink_dir130);
416 +               break;
417 +       case BCM47XX_BOARD_DLINK_DIR330:
418 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_dlink_dir330);
419 +               break;
420 +
421 +       case BCM47XX_BOARD_HUAWEI_E970:
422 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_huawei_e970);
423 +               break;
424 +
425 +       case BCM47XX_BOARD_LINKSYS_E1000V1:
426 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_e1000v1);
427 +               break;
428 +       case BCM47XX_BOARD_LINKSYS_E1000V21:
429 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_e1000v21);
430 +               break;
431 +       case BCM47XX_BOARD_LINKSYS_E2000V1:
432 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_e2000v1);
433 +               break;
434 +       case BCM47XX_BOARD_LINKSYS_E3000V1:
435 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_e3000v1);
436 +               break;
437 +       case BCM47XX_BOARD_LINKSYS_E3200V1:
438 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_e3200v1);
439 +               break;
440 +       case BCM47XX_BOARD_LINKSYS_E4200V1:
441 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_e4200v1);
442 +               break;
443 +       case BCM47XX_BOARD_LINKSYS_WRT150NV1:
444 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt150nv1);
445 +               break;
446 +       case BCM47XX_BOARD_LINKSYS_WRT150NV11:
447 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt150nv11);
448 +               break;
449 +       case BCM47XX_BOARD_LINKSYS_WRT160NV1:
450 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt160nv1);
451 +               break;
452 +       case BCM47XX_BOARD_LINKSYS_WRT160NV3:
453 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt160nv3);
454 +               break;
455 +       case BCM47XX_BOARD_LINKSYS_WRT300NV11:
456 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt300nv11);
457 +               break;
458 +       case BCM47XX_BOARD_LINKSYS_WRT310NV1:
459 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt310nv1);
460 +               break;
461 +       case BCM47XX_BOARD_LINKSYS_WRT610NV1:
462 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt610nv1);
463 +               break;
464 +       case BCM47XX_BOARD_LINKSYS_WRT610NV2:
465 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrt610nv2);
466 +               break;
467 +
468 +       case BCM47XX_BOARD_MOTOROLA_WE800G:
469 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_motorola_we800g);
470 +               break;
471 +       case BCM47XX_BOARD_MOTOROLA_WR850GP:
472 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_motorola_wr850gp);
473 +               break;
474 +       case BCM47XX_BOARD_MOTOROLA_WR850GV2V3:
475 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_motorola_wr850gv2v3);
476 +               break;
477 +
478 +       case BCM47XX_BOARD_NETGEAR_WNDR3400V1:
479 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wndr3400v1);
480 +               break;
481 +       case BCM47XX_BOARD_NETGEAR_WNDR3700V3:
482 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wndr3700v3);
483 +               break;
484         case BCM47XX_BOARD_NETGEAR_WNDR4500V1:
485                 err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wndr4500_v1);
486                 break;
487 +       case BCM47XX_BOARD_NETGEAR_WNR834BV2:
488 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_netgear_wnr834bv2);
489 +               break;
490 +
491 +       case BCM47XX_BOARD_SIMPLETECH_SIMPLESHARE:
492 +               err = bcm47xx_copy_bdata(bcm47xx_buttons_simpletech_simpleshare);
493 +               break;
494 +
495         default:
496                 pr_debug("No buttons configuration found for this device\n");
497                 return -ENOTSUPP;