summaryrefslogtreecommitdiff
path: root/firmware/export/wm8978.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/export/wm8978.h')
-rw-r--r--firmware/export/wm8978.h33
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 @@
29int tenthdb2master(int db); 29int tenthdb2master(int db);
30void audiohw_set_headphone_vol(int vol_l, int vol_r); 30void audiohw_set_headphone_vol(int vol_l, int vol_r);
31void audiohw_set_frequency(int fsel); 31void audiohw_set_frequency(int fsel);
32void audiohw_set_recsrc(int source, bool recording);
32 33
33void wmc_set(unsigned int reg, unsigned int bits); 34void wmc_set(unsigned int reg, unsigned int bits);
34void wmc_clear(unsigned int reg, unsigned int bits); 35void 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)