32 static void create_key(
const char *
prefix,
const char *postfix,
33 const char *
name,
char *
buf,
int len)
35 if (prefix && postfix)
36 snprintf(buf, len,
"%s%s%s", prefix, name, postfix);
38 snprintf(buf, len,
"%s%s", prefix, name);
40 snprintf(buf, len,
"%s%s", name, postfix);
45 #define NVRAM_READ_VAL(type) \
46 static void nvram_read_ ## type (const char *prefix, \
47 const char *postfix, const char *name, \
48 type *val, type allset) \
55 create_key(prefix, postfix, name, key, sizeof(key)); \
57 err = nvram_getenv(key, buf, sizeof(buf)); \
60 err = kstrto ## type (buf, 0, &var); \
62 pr_warn("can not parse nvram name %s with value %s" \
63 " got %i", key, buf, err); \
66 if (allset && var == allset) \
78 static void nvram_read_u32_2(
const char *prefix,
const char *name,
86 create_key(prefix,
NULL, name, key,
sizeof(key));
91 err = kstrtou32(buf, 0, &val);
93 pr_warn(
"can not parse nvram name %s with value %s got %i",
97 *val_lo = (val & 0x0000FFFF
U);
98 *val_hi = (val & 0xFFFF0000
U) >> 16;
101 static void nvram_read_leddc(
const char *prefix,
const char *name,
102 u8 *leddc_on_time,
u8 *leddc_off_time)
109 create_key(prefix,
NULL, name, key,
sizeof(key));
114 err = kstrtou32(buf, 0, &val);
116 pr_warn(
"can not parse nvram name %s with value %s got %i",
121 if (val == 0xffff || val == 0xffffffff)
124 *leddc_on_time = val & 0xff;
125 *leddc_off_time = (val >> 16) & 0xff;
128 static void nvram_read_macaddr(
const char *prefix,
const char *name,
135 create_key(prefix,
NULL, name, key,
sizeof(key));
140 nvram_parse_macaddr(buf, *val);
143 static void nvram_read_alpha2(
const char *prefix,
const char *name,
150 create_key(prefix,
NULL, name, key,
sizeof(key));
158 pr_warn(
"alpha2 is too long %s", buf);
161 memcpy(val, buf,
sizeof(val));
164 static void bcm47xx_fill_sprom_r1234589(
struct ssb_sprom *sprom,
167 nvram_read_u16(prefix,
NULL,
"boardrev", &sprom->
board_rev, 0);
170 nvram_read_u16(prefix,
NULL,
"boardnum", &sprom->
board_num, 0);
171 nvram_read_u8(prefix,
NULL,
"ledbh0", &sprom->
gpio0, 0xff);
172 nvram_read_u8(prefix,
NULL,
"ledbh1", &sprom->
gpio1, 0xff);
173 nvram_read_u8(prefix,
NULL,
"ledbh2", &sprom->
gpio2, 0xff);
174 nvram_read_u8(prefix,
NULL,
"ledbh3", &sprom->
gpio3, 0xff);
179 nvram_read_alpha2(prefix,
"ccode", &sprom->
alpha2);
182 static void bcm47xx_fill_sprom_r12389(
struct ssb_sprom *sprom,
185 nvram_read_u16(prefix,
NULL,
"pa0b0", &sprom->
pa0b0, 0);
186 nvram_read_u16(prefix,
NULL,
"pa0b1", &sprom->
pa0b1, 0);
187 nvram_read_u16(prefix,
NULL,
"pa0b2", &sprom->
pa0b2, 0);
188 nvram_read_u8(prefix,
NULL,
"pa0itssit", &sprom->
itssi_bg, 0);
189 nvram_read_u8(prefix,
NULL,
"pa0maxpwr", &sprom->
maxpwr_bg, 0);
190 nvram_read_u16(prefix,
NULL,
"pa1b0", &sprom->
pa1b0, 0);
191 nvram_read_u16(prefix,
NULL,
"pa1b1", &sprom->
pa1b1, 0);
192 nvram_read_u16(prefix,
NULL,
"pa1b2", &sprom->
pa1b2, 0);
193 nvram_read_u8(prefix,
NULL,
"pa1itssit", &sprom->
itssi_a, 0);
194 nvram_read_u8(prefix,
NULL,
"pa1maxpwr", &sprom->
maxpwr_a, 0);
197 static void bcm47xx_fill_sprom_r1(
struct ssb_sprom *sprom,
const char *prefix)
203 static void bcm47xx_fill_sprom_r2389(
struct ssb_sprom *sprom,
206 nvram_read_u8(prefix,
NULL,
"opo", &sprom->
opo, 0);
207 nvram_read_u16(prefix,
NULL,
"pa1lob0", &sprom->
pa1lob0, 0);
208 nvram_read_u16(prefix,
NULL,
"pa1lob1", &sprom->
pa1lob1, 0);
209 nvram_read_u16(prefix,
NULL,
"pa1lob2", &sprom->
pa1lob2, 0);
210 nvram_read_u16(prefix,
NULL,
"pa1hib0", &sprom->
pa1hib0, 0);
211 nvram_read_u16(prefix,
NULL,
"pa1hib1", &sprom->
pa1hib1, 0);
212 nvram_read_u16(prefix,
NULL,
"pa1hib2", &sprom->
pa1hib2, 0);
213 nvram_read_u8(prefix,
NULL,
"pa1lomaxpwr", &sprom->
maxpwr_al, 0);
214 nvram_read_u8(prefix,
NULL,
"pa1himaxpwr", &sprom->
maxpwr_ah, 0);
217 static void bcm47xx_fill_sprom_r2(
struct ssb_sprom *sprom,
const char *prefix)
219 nvram_read_u32_2(prefix,
"boardflags", &sprom->
boardflags_lo,
224 static void bcm47xx_fill_sprom_r389(
struct ssb_sprom *sprom,
const char *prefix)
226 nvram_read_u8(prefix,
NULL,
"bxa2g", &sprom->
bxa2g, 0);
227 nvram_read_u8(prefix,
NULL,
"rssisav2g", &sprom->
rssisav2g, 0);
228 nvram_read_u8(prefix,
NULL,
"rssismc2g", &sprom->
rssismc2g, 0);
229 nvram_read_u8(prefix,
NULL,
"rssismf2g", &sprom->
rssismf2g, 0);
230 nvram_read_u8(prefix,
NULL,
"bxa5g", &sprom->
bxa5g, 0);
231 nvram_read_u8(prefix,
NULL,
"rssisav5g", &sprom->
rssisav5g, 0);
232 nvram_read_u8(prefix,
NULL,
"rssismc5g", &sprom->
rssismc5g, 0);
233 nvram_read_u8(prefix,
NULL,
"rssismf5g", &sprom->
rssismf5g, 0);
234 nvram_read_u8(prefix,
NULL,
"tri2g", &sprom->
tri2g, 0);
235 nvram_read_u8(prefix,
NULL,
"tri5g", &sprom->
tri5g, 0);
236 nvram_read_u8(prefix,
NULL,
"tri5gl", &sprom->
tri5gl, 0);
237 nvram_read_u8(prefix,
NULL,
"tri5gh", &sprom->
tri5gh, 0);
238 nvram_read_s8(prefix,
NULL,
"rxpo2g", &sprom->
rxpo2g, 0);
239 nvram_read_s8(prefix,
NULL,
"rxpo5g", &sprom->
rxpo5g, 0);
242 static void bcm47xx_fill_sprom_r3(
struct ssb_sprom *sprom,
const char *prefix)
244 nvram_read_u32_2(prefix,
"boardflags", &sprom->
boardflags_lo,
247 nvram_read_u8(prefix,
NULL,
"regrev", &sprom->
regrev, 0);
252 static void bcm47xx_fill_sprom_r4589(
struct ssb_sprom *sprom,
255 nvram_read_u32_2(prefix,
"boardflags", &sprom->
boardflags_lo,
260 nvram_read_u8(prefix,
NULL,
"regrev", &sprom->
regrev, 0);
263 nvram_read_u8(prefix,
NULL,
"txchain", &sprom->
txchain, 0xf);
264 nvram_read_u8(prefix,
NULL,
"rxchain", &sprom->
rxchain, 0xf);
265 nvram_read_u8(prefix,
NULL,
"antswitch", &sprom->
antswitch, 0xff);
270 static void bcm47xx_fill_sprom_r458(
struct ssb_sprom *sprom,
const char *prefix)
272 nvram_read_u16(prefix,
NULL,
"cck2gpo", &sprom->
cck2gpo, 0);
273 nvram_read_u32(prefix,
NULL,
"ofdm2gpo", &sprom->
ofdm2gpo, 0);
274 nvram_read_u32(prefix,
NULL,
"ofdm5gpo", &sprom->
ofdm5gpo, 0);
275 nvram_read_u32(prefix,
NULL,
"ofdm5glpo", &sprom->
ofdm5glpo, 0);
276 nvram_read_u32(prefix,
NULL,
"ofdm5ghpo", &sprom->
ofdm5ghpo, 0);
277 nvram_read_u16(prefix,
NULL,
"cddpo", &sprom->
cddpo, 0);
278 nvram_read_u16(prefix,
NULL,
"stbcpo", &sprom->
stbcpo, 0);
279 nvram_read_u16(prefix,
NULL,
"bw40po", &sprom->
bw40po, 0);
280 nvram_read_u16(prefix,
NULL,
"bwduppo", &sprom->
bwduppo, 0);
281 nvram_read_u16(prefix,
NULL,
"mcs2gpo0", &sprom->
mcs2gpo[0], 0);
282 nvram_read_u16(prefix,
NULL,
"mcs2gpo1", &sprom->
mcs2gpo[1], 0);
283 nvram_read_u16(prefix,
NULL,
"mcs2gpo2", &sprom->
mcs2gpo[2], 0);
284 nvram_read_u16(prefix,
NULL,
"mcs2gpo3", &sprom->
mcs2gpo[3], 0);
285 nvram_read_u16(prefix,
NULL,
"mcs2gpo4", &sprom->
mcs2gpo[4], 0);
286 nvram_read_u16(prefix,
NULL,
"mcs2gpo5", &sprom->
mcs2gpo[5], 0);
287 nvram_read_u16(prefix,
NULL,
"mcs2gpo6", &sprom->
mcs2gpo[6], 0);
288 nvram_read_u16(prefix,
NULL,
"mcs2gpo7", &sprom->
mcs2gpo[7], 0);
289 nvram_read_u16(prefix,
NULL,
"mcs5gpo0", &sprom->
mcs5gpo[0], 0);
290 nvram_read_u16(prefix,
NULL,
"mcs5gpo1", &sprom->
mcs5gpo[1], 0);
291 nvram_read_u16(prefix,
NULL,
"mcs5gpo2", &sprom->
mcs5gpo[2], 0);
292 nvram_read_u16(prefix,
NULL,
"mcs5gpo3", &sprom->
mcs5gpo[3], 0);
293 nvram_read_u16(prefix,
NULL,
"mcs5gpo4", &sprom->
mcs5gpo[4], 0);
294 nvram_read_u16(prefix,
NULL,
"mcs5gpo5", &sprom->
mcs5gpo[5], 0);
295 nvram_read_u16(prefix,
NULL,
"mcs5gpo6", &sprom->
mcs5gpo[6], 0);
296 nvram_read_u16(prefix,
NULL,
"mcs5gpo7", &sprom->
mcs5gpo[7], 0);
297 nvram_read_u16(prefix,
NULL,
"mcs5glpo0", &sprom->
mcs5glpo[0], 0);
298 nvram_read_u16(prefix,
NULL,
"mcs5glpo1", &sprom->
mcs5glpo[1], 0);
299 nvram_read_u16(prefix,
NULL,
"mcs5glpo2", &sprom->
mcs5glpo[2], 0);
300 nvram_read_u16(prefix,
NULL,
"mcs5glpo3", &sprom->
mcs5glpo[3], 0);
301 nvram_read_u16(prefix,
NULL,
"mcs5glpo4", &sprom->
mcs5glpo[4], 0);
302 nvram_read_u16(prefix,
NULL,
"mcs5glpo5", &sprom->
mcs5glpo[5], 0);
303 nvram_read_u16(prefix,
NULL,
"mcs5glpo6", &sprom->
mcs5glpo[6], 0);
304 nvram_read_u16(prefix,
NULL,
"mcs5glpo7", &sprom->
mcs5glpo[7], 0);
305 nvram_read_u16(prefix,
NULL,
"mcs5ghpo0", &sprom->
mcs5ghpo[0], 0);
306 nvram_read_u16(prefix,
NULL,
"mcs5ghpo1", &sprom->
mcs5ghpo[1], 0);
307 nvram_read_u16(prefix,
NULL,
"mcs5ghpo2", &sprom->
mcs5ghpo[2], 0);
308 nvram_read_u16(prefix,
NULL,
"mcs5ghpo3", &sprom->
mcs5ghpo[3], 0);
309 nvram_read_u16(prefix,
NULL,
"mcs5ghpo4", &sprom->
mcs5ghpo[4], 0);
310 nvram_read_u16(prefix,
NULL,
"mcs5ghpo5", &sprom->
mcs5ghpo[5], 0);
311 nvram_read_u16(prefix,
NULL,
"mcs5ghpo6", &sprom->
mcs5ghpo[6], 0);
312 nvram_read_u16(prefix,
NULL,
"mcs5ghpo7", &sprom->
mcs5ghpo[7], 0);
315 static void bcm47xx_fill_sprom_r45(
struct ssb_sprom *sprom,
const char *prefix)
317 nvram_read_u8(prefix,
NULL,
"txpid2ga0", &sprom->
txpid2g[0], 0);
318 nvram_read_u8(prefix,
NULL,
"txpid2ga1", &sprom->
txpid2g[1], 0);
319 nvram_read_u8(prefix,
NULL,
"txpid2ga2", &sprom->
txpid2g[2], 0);
320 nvram_read_u8(prefix,
NULL,
"txpid2ga3", &sprom->
txpid2g[3], 0);
321 nvram_read_u8(prefix,
NULL,
"txpid5ga0", &sprom->
txpid5g[0], 0);
322 nvram_read_u8(prefix,
NULL,
"txpid5ga1", &sprom->
txpid5g[1], 0);
323 nvram_read_u8(prefix,
NULL,
"txpid5ga2", &sprom->
txpid5g[2], 0);
324 nvram_read_u8(prefix,
NULL,
"txpid5ga3", &sprom->
txpid5g[3], 0);
325 nvram_read_u8(prefix,
NULL,
"txpid5gla0", &sprom->
txpid5gl[0], 0);
326 nvram_read_u8(prefix,
NULL,
"txpid5gla1", &sprom->
txpid5gl[1], 0);
327 nvram_read_u8(prefix,
NULL,
"txpid5gla2", &sprom->
txpid5gl[2], 0);
328 nvram_read_u8(prefix,
NULL,
"txpid5gla3", &sprom->
txpid5gl[3], 0);
329 nvram_read_u8(prefix,
NULL,
"txpid5gha0", &sprom->
txpid5gh[0], 0);
330 nvram_read_u8(prefix,
NULL,
"txpid5gha1", &sprom->
txpid5gh[1], 0);
331 nvram_read_u8(prefix,
NULL,
"txpid5gha2", &sprom->
txpid5gh[2], 0);
332 nvram_read_u8(prefix,
NULL,
"txpid5gha3", &sprom->
txpid5gh[3], 0);
335 static void bcm47xx_fill_sprom_r89(
struct ssb_sprom *sprom,
const char *prefix)
337 nvram_read_u8(prefix,
NULL,
"tssipos2g", &sprom->
fem.ghz2.tssipos, 0);
338 nvram_read_u8(prefix,
NULL,
"extpagain2g",
339 &sprom->
fem.ghz2.extpa_gain, 0);
340 nvram_read_u8(prefix,
NULL,
"pdetrange2g",
341 &sprom->
fem.ghz2.pdet_range, 0);
342 nvram_read_u8(prefix,
NULL,
"triso2g", &sprom->
fem.ghz2.tr_iso, 0);
343 nvram_read_u8(prefix,
NULL,
"antswctl2g", &sprom->
fem.ghz2.antswlut, 0);
344 nvram_read_u8(prefix,
NULL,
"tssipos5g", &sprom->
fem.ghz5.tssipos, 0);
345 nvram_read_u8(prefix,
NULL,
"extpagain5g",
346 &sprom->
fem.ghz5.extpa_gain, 0);
347 nvram_read_u8(prefix,
NULL,
"pdetrange5g",
348 &sprom->
fem.ghz5.pdet_range, 0);
349 nvram_read_u8(prefix,
NULL,
"triso5g", &sprom->
fem.ghz5.tr_iso, 0);
350 nvram_read_u8(prefix,
NULL,
"antswctl5g", &sprom->
fem.ghz5.antswlut, 0);
354 nvram_read_u8(prefix,
NULL,
"measpower", &sprom->
measpower, 0);
355 nvram_read_u8(prefix,
NULL,
"tempsense_slope",
357 nvram_read_u8(prefix,
NULL,
"tempcorrx", &sprom->
tempcorrx, 0);
358 nvram_read_u8(prefix,
NULL,
"tempsense_option",
360 nvram_read_u8(prefix,
NULL,
"freqoffset_corr",
364 nvram_read_u8(prefix,
NULL,
"elna2g", &sprom->
elna2g, 0);
365 nvram_read_u8(prefix,
NULL,
"elna5g", &sprom->
elna5g, 0);
366 nvram_read_u8(prefix,
NULL,
"phycal_tempdelta",
369 nvram_read_u8(prefix,
NULL,
"temps_hysteresis",
373 nvram_read_u8(prefix,
NULL,
"rxgainerr2ga0",
375 nvram_read_u8(prefix,
NULL,
"rxgainerr2ga1",
377 nvram_read_u8(prefix,
NULL,
"rxgainerr2ga2",
379 nvram_read_u8(prefix,
NULL,
"rxgainerr5gla0",
381 nvram_read_u8(prefix,
NULL,
"rxgainerr5gla1",
383 nvram_read_u8(prefix,
NULL,
"rxgainerr5gla2",
385 nvram_read_u8(prefix,
NULL,
"rxgainerr5gma0",
387 nvram_read_u8(prefix,
NULL,
"rxgainerr5gma1",
389 nvram_read_u8(prefix,
NULL,
"rxgainerr5gma2",
391 nvram_read_u8(prefix,
NULL,
"rxgainerr5gha0",
393 nvram_read_u8(prefix,
NULL,
"rxgainerr5gha1",
395 nvram_read_u8(prefix,
NULL,
"rxgainerr5gha2",
397 nvram_read_u8(prefix,
NULL,
"rxgainerr5gua0",
399 nvram_read_u8(prefix,
NULL,
"rxgainerr5gua1",
401 nvram_read_u8(prefix,
NULL,
"rxgainerr5gua2",
403 nvram_read_u8(prefix,
NULL,
"noiselvl2ga0", &sprom->
noiselvl2ga[0], 0);
404 nvram_read_u8(prefix,
NULL,
"noiselvl2ga1", &sprom->
noiselvl2ga[1], 0);
405 nvram_read_u8(prefix,
NULL,
"noiselvl2ga2", &sprom->
noiselvl2ga[2], 0);
406 nvram_read_u8(prefix,
NULL,
"noiselvl5gla0",
408 nvram_read_u8(prefix,
NULL,
"noiselvl5gla1",
410 nvram_read_u8(prefix,
NULL,
"noiselvl5gla2",
412 nvram_read_u8(prefix,
NULL,
"noiselvl5gma0",
414 nvram_read_u8(prefix,
NULL,
"noiselvl5gma1",
416 nvram_read_u8(prefix,
NULL,
"noiselvl5gma2",
418 nvram_read_u8(prefix,
NULL,
"noiselvl5gha0",
420 nvram_read_u8(prefix,
NULL,
"noiselvl5gha1",
422 nvram_read_u8(prefix,
NULL,
"noiselvl5gha2",
424 nvram_read_u8(prefix,
NULL,
"noiselvl5gua0",
426 nvram_read_u8(prefix,
NULL,
"noiselvl5gua1",
428 nvram_read_u8(prefix,
NULL,
"noiselvl5gua2",
430 nvram_read_u8(prefix,
NULL,
"pcieingress_war",
434 static void bcm47xx_fill_sprom_r9(
struct ssb_sprom *sprom,
const char *prefix)
438 nvram_read_u32(prefix,
NULL,
"legofdmbw202gpo",
440 nvram_read_u32(prefix,
NULL,
"legofdmbw20ul2gpo",
442 nvram_read_u32(prefix,
NULL,
"legofdmbw205glpo",
444 nvram_read_u32(prefix,
NULL,
"legofdmbw20ul5glpo",
446 nvram_read_u32(prefix,
NULL,
"legofdmbw205gmpo",
448 nvram_read_u32(prefix,
NULL,
"legofdmbw20ul5gmpo",
450 nvram_read_u32(prefix,
NULL,
"legofdmbw205ghpo",
452 nvram_read_u32(prefix,
NULL,
"legofdmbw20ul5ghpo",
458 nvram_read_u32(prefix,
NULL,
"mcsbw20ul5glpo",
462 nvram_read_u32(prefix,
NULL,
"mcsbw20ul5gmpo",
466 nvram_read_u32(prefix,
NULL,
"mcsbw20ul5ghpo",
469 nvram_read_u16(prefix,
NULL,
"mcs32po", &sprom->
mcs32po, 0);
470 nvram_read_u16(prefix,
NULL,
"legofdm40duppo",
472 nvram_read_u8(prefix,
NULL,
"sar2g", &sprom->
sar2g, 0);
473 nvram_read_u8(prefix,
NULL,
"sar5g", &sprom->
sar5g, 0);
476 static void bcm47xx_fill_sprom_path_r4589(
struct ssb_sprom *sprom,
484 snprintf(postfix,
sizeof(postfix),
"%i", i);
485 nvram_read_u8(prefix, postfix,
"maxp2ga",
487 nvram_read_u8(prefix, postfix,
"itt2ga",
489 nvram_read_u8(prefix, postfix,
"itt5ga",
491 nvram_read_u16(prefix, postfix,
"pa2gw0a",
492 &pwr_info->
pa_2g[0], 0);
493 nvram_read_u16(prefix, postfix,
"pa2gw1a",
494 &pwr_info->
pa_2g[1], 0);
495 nvram_read_u16(prefix, postfix,
"pa2gw2a",
496 &pwr_info->
pa_2g[2], 0);
497 nvram_read_u8(prefix, postfix,
"maxp5ga",
499 nvram_read_u8(prefix, postfix,
"maxp5gha",
501 nvram_read_u8(prefix, postfix,
"maxp5gla",
503 nvram_read_u16(prefix, postfix,
"pa5gw0a",
504 &pwr_info->
pa_5g[0], 0);
505 nvram_read_u16(prefix, postfix,
"pa5gw1a",
506 &pwr_info->
pa_5g[1], 0);
507 nvram_read_u16(prefix, postfix,
"pa5gw2a",
508 &pwr_info->
pa_5g[2], 0);
509 nvram_read_u16(prefix, postfix,
"pa5glw0a",
511 nvram_read_u16(prefix, postfix,
"pa5glw1a",
513 nvram_read_u16(prefix, postfix,
"pa5glw2a",
515 nvram_read_u16(prefix, postfix,
"pa5ghw0a",
517 nvram_read_u16(prefix, postfix,
"pa5ghw1a",
519 nvram_read_u16(prefix, postfix,
"pa5ghw2a",
524 static void bcm47xx_fill_sprom_path_r45(
struct ssb_sprom *sprom,
532 snprintf(postfix,
sizeof(postfix),
"%i", i);
533 nvram_read_u16(prefix, postfix,
"pa2gw3a",
534 &pwr_info->
pa_2g[3], 0);
535 nvram_read_u16(prefix, postfix,
"pa5gw3a",
536 &pwr_info->
pa_5g[3], 0);
537 nvram_read_u16(prefix, postfix,
"pa5glw3a",
539 nvram_read_u16(prefix, postfix,
"pa5ghw3a",
546 nvram_read_macaddr(prefix,
"et0macaddr", &sprom->
et0mac);
550 nvram_read_macaddr(prefix,
"et1macaddr", &sprom->
et1mac);
554 nvram_read_macaddr(prefix,
"macaddr", &sprom->
il0mac);
555 nvram_read_macaddr(prefix,
"il0macaddr", &sprom->
il0mac);
562 nvram_read_u8(prefix,
NULL,
"sromrev", &sprom->
revision, 0);
566 bcm47xx_fill_sprom_r1234589(sprom, prefix);
567 bcm47xx_fill_sprom_r12389(sprom, prefix);
568 bcm47xx_fill_sprom_r1(sprom, prefix);
571 bcm47xx_fill_sprom_r1234589(sprom, prefix);
572 bcm47xx_fill_sprom_r12389(sprom, prefix);
573 bcm47xx_fill_sprom_r2389(sprom, prefix);
574 bcm47xx_fill_sprom_r2(sprom, prefix);
577 bcm47xx_fill_sprom_r1234589(sprom, prefix);
578 bcm47xx_fill_sprom_r12389(sprom, prefix);
579 bcm47xx_fill_sprom_r2389(sprom, prefix);
580 bcm47xx_fill_sprom_r389(sprom, prefix);
581 bcm47xx_fill_sprom_r3(sprom, prefix);
585 bcm47xx_fill_sprom_r1234589(sprom, prefix);
586 bcm47xx_fill_sprom_r4589(sprom, prefix);
587 bcm47xx_fill_sprom_r458(sprom, prefix);
588 bcm47xx_fill_sprom_r45(sprom, prefix);
589 bcm47xx_fill_sprom_path_r4589(sprom, prefix);
590 bcm47xx_fill_sprom_path_r45(sprom, prefix);
593 bcm47xx_fill_sprom_r1234589(sprom, prefix);
594 bcm47xx_fill_sprom_r12389(sprom, prefix);
595 bcm47xx_fill_sprom_r2389(sprom, prefix);
596 bcm47xx_fill_sprom_r389(sprom, prefix);
597 bcm47xx_fill_sprom_r4589(sprom, prefix);
598 bcm47xx_fill_sprom_r458(sprom, prefix);
599 bcm47xx_fill_sprom_r89(sprom, prefix);
600 bcm47xx_fill_sprom_path_r4589(sprom, prefix);
603 bcm47xx_fill_sprom_r1234589(sprom, prefix);
604 bcm47xx_fill_sprom_r12389(sprom, prefix);
605 bcm47xx_fill_sprom_r2389(sprom, prefix);
606 bcm47xx_fill_sprom_r389(sprom, prefix);
607 bcm47xx_fill_sprom_r4589(sprom, prefix);
608 bcm47xx_fill_sprom_r89(sprom, prefix);
609 bcm47xx_fill_sprom_r9(sprom, prefix);
610 bcm47xx_fill_sprom_path_r4589(sprom, prefix);
613 pr_warn(
"Unsupported SPROM revision %d detected. Will extract"
616 bcm47xx_fill_sprom_r1234589(sprom, prefix);
617 bcm47xx_fill_sprom_r12389(sprom, prefix);
618 bcm47xx_fill_sprom_r1(sprom, prefix);
622 #ifdef CONFIG_BCM47XX_SSB
626 nvram_read_u16(prefix,
NULL,
"boardvendor", &boardinfo->
vendor, 0);
630 nvram_read_u16(prefix,
NULL,
"boardtype", &boardinfo->
type, 0);
634 #ifdef CONFIG_BCM47XX_BCMA
635 void bcm47xx_fill_bcma_boardinfo(
struct bcma_boardinfo *boardinfo,
638 nvram_read_u16(prefix,
NULL,
"boardvendor", &boardinfo->
vendor, 0);
642 nvram_read_u16(prefix,
NULL,
"boardtype", &boardinfo->
type, 0);