diff options
Diffstat (limited to 'firmware/export/wm8978.h')
-rw-r--r-- | firmware/export/wm8978.h | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/firmware/export/wm8978.h b/firmware/export/wm8978.h index f444c96a29..5d9c0d01e7 100644 --- a/firmware/export/wm8978.h +++ b/firmware/export/wm8978.h | |||
@@ -29,6 +29,7 @@ | |||
29 | int tenthdb2master(int db); | 29 | int tenthdb2master(int db); |
30 | void audiohw_set_headphone_vol(int vol_l, int vol_r); | 30 | void audiohw_set_headphone_vol(int vol_l, int vol_r); |
31 | void audiohw_set_frequency(int fsel); | 31 | void audiohw_set_frequency(int fsel); |
32 | void audiohw_set_recsrc(int source, bool recording); | ||
32 | 33 | ||
33 | void wmc_set(unsigned int reg, unsigned int bits); | 34 | void wmc_set(unsigned int reg, unsigned int bits); |
34 | void wmc_clear(unsigned int reg, unsigned int bits); | 35 | void wmc_clear(unsigned int reg, unsigned int bits); |
@@ -108,8 +109,8 @@ void wmc_clear(unsigned int reg, unsigned int bits); | |||
108 | 109 | ||
109 | /* Volums masks and macros for analogue volumes */ | 110 | /* Volums masks and macros for analogue volumes */ |
110 | #define WMC_AVOL 0x3f | 111 | #define WMC_AVOL 0x3f |
111 | #define WMC_AVOLr(x) ((x) & WMC_AVOLUME_MASK) | 112 | #define WMC_AVOLr(x) ((x) & WMC_AVOL) |
112 | #define WMC_AVOLw(x) ((x) & WMC_AVOLUME_MASK) | 113 | #define WMC_AVOLw(x) ((x) & WMC_AVOL) |
113 | 114 | ||
114 | /* WMC_SOFTWARE_RESET (0x00) */ | 115 | /* WMC_SOFTWARE_RESET (0x00) */ |
115 | #define WMC_RESET | 116 | #define WMC_RESET |
@@ -457,8 +458,8 @@ void wmc_clear(unsigned int reg, unsigned int bits); | |||
457 | #define WMC_PGABOOSTL (1 << 8) | 458 | #define WMC_PGABOOSTL (1 << 8) |
458 | /* 000=disabled, 001=-12dB, 010=-9dB...111=+6dB */ | 459 | /* 000=disabled, 001=-12dB, 010=-9dB...111=+6dB */ |
459 | #define WMC_L2_2BOOSTVOL (7 << 4) | 460 | #define WMC_L2_2BOOSTVOL (7 << 4) |
460 | #define WMC_L2_2BOOSTVOLr(x) ((x) & WMC_L2_2_BOOSTVOL) >> 4) | 461 | #define WMC_L2_2BOOSTVOLr(x) (((x) & WMC_L2_2BOOSTVOL) >> 4) |
461 | #define WMC_L2_2BOOSTVOLw(x) ((x) << 4) & WMC_L2_2_BOOSTVOL) | 462 | #define WMC_L2_2BOOSTVOLw(x) (((x) << 4) & WMC_L2_2BOOSTVOL) |
462 | /* 000=disabled, 001=-12dB, 010=-9dB...111=+6dB */ | 463 | /* 000=disabled, 001=-12dB, 010=-9dB...111=+6dB */ |
463 | #define WMC_AUXL2BOOSTVOL (7 << 0) | 464 | #define WMC_AUXL2BOOSTVOL (7 << 0) |
464 | #define WMC_AUXL2BOOSTVOLr(x) ((x) & WMC_AUXL2BOOSTVOL) | 465 | #define WMC_AUXL2BOOSTVOLr(x) ((x) & WMC_AUXL2BOOSTVOL) |
@@ -467,9 +468,9 @@ void wmc_clear(unsigned int reg, unsigned int bits); | |||
467 | /* WMC_RIGHT_ADC_BOOST_CTRL (0x30) */ | 468 | /* WMC_RIGHT_ADC_BOOST_CTRL (0x30) */ |
468 | #define WMC_PGABOOSTR (1 << 8) | 469 | #define WMC_PGABOOSTR (1 << 8) |
469 | /* 000=disabled, 001=-12dB, 010=-9dB...111=+6dB */ | 470 | /* 000=disabled, 001=-12dB, 010=-9dB...111=+6dB */ |
470 | #define WMC_R2_2_BOOSTVOL (7 << 4) | 471 | #define WMC_R2_2BOOSTVOL (7 << 4) |
471 | #define WMC_R2_2BOOSTVOLr(x) ((x) & WMC_R2_2_BOOSTVOL) >> 4) | 472 | #define WMC_R2_2BOOSTVOLr(x) (((x) & WMC_R2_2BOOSTVOL) >> 4) |
472 | #define WMC_R2_2BOOSTVOLw(x) ((x) << 4) & WMC_R2_2_BOOSTVOL) | 473 | #define WMC_R2_2BOOSTVOLw(x) (((x) << 4) & WMC_R2_2BOOSTVOL) |
473 | /* 000=disabled, 001=-12dB, 010=-9dB...111=+6dB */ | 474 | /* 000=disabled, 001=-12dB, 010=-9dB...111=+6dB */ |
474 | #define WMC_AUXR2BOOSTVOL (7 << 0) | 475 | #define WMC_AUXR2BOOSTVOL (7 << 0) |
475 | #define WMC_AUXR2BOOSTVOLr(x) ((x) & WMC_AUXR2BOOSTVOL) | 476 | #define WMC_AUXR2BOOSTVOLr(x) ((x) & WMC_AUXR2BOOSTVOL) |
@@ -487,26 +488,26 @@ void wmc_clear(unsigned int reg, unsigned int bits); | |||
487 | /* WMC_LEFT_MIXER_CTRL (0x32) */ | 488 | /* WMC_LEFT_MIXER_CTRL (0x32) */ |
488 | /* 000=-15dB, 001=-12dB...101=0dB, 110=+3dB, 111=+6dB */ | 489 | /* 000=-15dB, 001=-12dB...101=0dB, 110=+3dB, 111=+6dB */ |
489 | #define WMC_AUXLMIXVOL (7 << 6) | 490 | #define WMC_AUXLMIXVOL (7 << 6) |
490 | #define WMC_AUXLMIXVOLr(x) ((x) & WMC_AUXLMIXVOL) >> 6) | 491 | #define WMC_AUXLMIXVOLr(x) (((x) & WMC_AUXLMIXVOL) >> 6) |
491 | #define WMC_AUXLMIXVOLw(x) ((x) << 6) & WMC_AUXLMIXVOL) | 492 | #define WMC_AUXLMIXVOLw(x) (((x) << 6) & WMC_AUXLMIXVOL) |
492 | #define WMC_AUXL2LMIX (1 << 5) | 493 | #define WMC_AUXL2LMIX (1 << 5) |
493 | /* 000=-15dB, 001=-12dB...101=0dB, 110=+3dB, 111=+6dB */ | 494 | /* 000=-15dB, 001=-12dB...101=0dB, 110=+3dB, 111=+6dB */ |
494 | #define WMC_BYPLMIXVOL (7 << 2) | 495 | #define WMC_BYPLMIXVOL (7 << 2) |
495 | #define WMC_BYPLMIXVOLr(x) ((x) & WMC_BYPLMIXVOL) >> 2) | 496 | #define WMC_BYPLMIXVOLr(x) (((x) & WMC_BYPLMIXVOL) >> 2) |
496 | #define WMC_BYPLMIXVOLw(x) ((x) << 2) & WMC_BYPLMIXVOL) | 497 | #define WMC_BYPLMIXVOLw(x) (((x) << 2) & WMC_BYPLMIXVOL) |
497 | #define WMC_BYPL2LMIX (1 << 1) | 498 | #define WMC_BYPL2LMIX (1 << 1) |
498 | #define WMC_DACL2LMIX (1 << 0) | 499 | #define WMC_DACL2LMIX (1 << 0) |
499 | 500 | ||
500 | /* WMC_RIGHT_MIXER_CTRL (0x33) */ | 501 | /* WMC_RIGHT_MIXER_CTRL (0x33) */ |
501 | /* 000=-15dB, 001=-12dB...101=0dB, 110=+3dB, 111=+6dB */ | 502 | /* 000=-15dB, 001=-12dB...101=0dB, 110=+3dB, 111=+6dB */ |
502 | #define WMC_AUXRMIXVOL (7 << 6) | 503 | #define WMC_AUXRMIXVOL (7 << 6) |
503 | #define WMC_AUXRMIXVOLr(x) ((x) & WMC_AUXRMIXVOL) >> 6) | 504 | #define WMC_AUXRMIXVOLr(x) (((x) & WMC_AUXRMIXVOL) >> 6) |
504 | #define WMC_AUXRMIXVOLw(x) ((x) << 6) & WMC_AUXRMIXVOL) | 505 | #define WMC_AUXRMIXVOLw(x) (((x) << 6) & WMC_AUXRMIXVOL) |
505 | #define WMC_AUXR2RMIX (1 << 5) | 506 | #define WMC_AUXR2RMIX (1 << 5) |
506 | /* 000=-15dB, 001=-12dB...101=0dB, 110=+3dB, 111=+6dB */ | 507 | /* 000=-15dB, 001=-12dB...101=0dB, 110=+3dB, 111=+6dB */ |
507 | #define WMC_BYPRMIXVOL (7 << 2) | 508 | #define WMC_BYPRMIXVOL (7 << 2) |
508 | #define WMC_BYPRMIXVOLr(x) ((x) & WMC_BYPRMIXVOL) >> 2) | 509 | #define WMC_BYPRMIXVOLr(x) (((x) & WMC_BYPRMIXVOL) >> 2) |
509 | #define WMC_BYPRMIXVOLw(x) ((x) << 2) & WMC_BYPRMIXVOL) | 510 | #define WMC_BYPRMIXVOLw(x) (((x) << 2) & WMC_BYPRMIXVOL) |
510 | #define WMC_BYPR2RMIX (1 << 1) | 511 | #define WMC_BYPR2RMIX (1 << 1) |
511 | #define WMC_DACR2RMIX (1 << 0) | 512 | #define WMC_DACR2RMIX (1 << 0) |
512 | 513 | ||
@@ -518,14 +519,12 @@ void wmc_clear(unsigned int reg, unsigned int bits); | |||
518 | /* Uses WMC_AVOL* macros */ | 519 | /* Uses WMC_AVOL* macros */ |
519 | 520 | ||
520 | /* WMC_OUT3_MIXER_CTRL (0x38) */ | 521 | /* WMC_OUT3_MIXER_CTRL (0x38) */ |
521 | #define WMC_OUT3MUTE (1 << 6) | ||
522 | #define WMC_OUT42OUT3 (1 << 3) | 522 | #define WMC_OUT42OUT3 (1 << 3) |
523 | #define WMC_BYPL2OUT3 (1 << 2) | 523 | #define WMC_BYPL2OUT3 (1 << 2) |
524 | #define WMC_LMIX2OUT3 (1 << 1) | 524 | #define WMC_LMIX2OUT3 (1 << 1) |
525 | #define WMC_LDAC2OUT3 (1 << 0) | 525 | #define WMC_LDAC2OUT3 (1 << 0) |
526 | 526 | ||
527 | /* WMC_OUT4_MONO_MIXER_CTRL (0x39) */ | 527 | /* WMC_OUT4_MONO_MIXER_CTRL (0x39) */ |
528 | #define WMC_OUT4MUTE (1 << 6) | ||
529 | #define WMC_HALFSIG (1 << 5) | 528 | #define WMC_HALFSIG (1 << 5) |
530 | #define WMC_LMIX2OUT4 (1 << 4) | 529 | #define WMC_LMIX2OUT4 (1 << 4) |
531 | #define WMC_LDAC2OUT4 (1 << 3) | 530 | #define WMC_LDAC2OUT4 (1 << 3) |