diff options
Diffstat (limited to 'firmware/export/df1704.h')
| -rw-r--r-- | firmware/export/df1704.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/firmware/export/df1704.h b/firmware/export/df1704.h new file mode 100644 index 0000000..59d1372 --- /dev/null +++ b/firmware/export/df1704.h @@ -0,0 +1,94 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * + * Copyright (c) 2013 Andrew Ryabinin + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#ifndef _DF1704_H +#define _DF1704_H + +#define DF1704_VOLUME_MIN -1270 +#define DF1704_VOLUME_MAX 0 + +AUDIOHW_SETTING(VOLUME, "dB", 0, 1, DF1704_VOLUME_MIN/10, DF1704_VOLUME_MAX/10, 0) + +#define DF1704_MODE(x) (((x)&0x03)<<9) + +/** + * MODE0 register settings + */ +/* Left channel attenuation data load control */ +#define DF1704_LDL_ON (1<<8) +#define DF1704_LDL_OFF (0<<8) + +/** + * MODE1 register settings + */ +/* Right channel attenuation data load control */ +#define DF1704_LDR_ON (1<<8) +#define DF1704_LDR_OFF (0<<8) + +/** + * MODE2 register settings + */ +#define DF1704_MUTE_ON (0<<0) +#define DF1704_MUTE_OFF (1<<0) +/* Digital De-Emphasis */ +#define DF1704_DEM_ON (1<<1) +#define DF1704_DEM_OFF (0<<1) +/* Input data format & word lengths */ +#define DF1704_IW_16_I2S (0<<3) +#define DF1704_IW_24_I2S (1<<3) + +#define DF1704_IW_16_RJ (0<<3) +#define DF1704_IW_20_RJ (1<<3) +#define DF1704_IW_24_RJ (2<<3) +#define DF1704_IW_24_LJ (3<<3) +/* Output data format & word lengths */ +#define DF1704_OW_16 (0<<5) +#define DF1704_OW_18 (1<<5) +#define DF1704_OW_20 (2<<5) +#define DF1704_OW_24 (3<<5) + +/** + * MODE3 register settings + */ +#define DF1704_I2S_OFF (0<<0) +#define DF1704_I2S_ON (1<<0) +#define DF1704_LRP_L (0<<1) +#define DF1704_LRP_H (1<<1) +#define DF1704_ATC_ON (1<<2) +#define DF1704_ATC_OFF (0<<2) +#define DF1704_SRO_SHARP (0<<3) +#define DF1704_SRO_SLOW (1<<3) +/* CLKO output frequency selection */ +#define DF1704_CKO_FULL (0<<5) +#define DF1704_CKO_HALF (1<<5) +/* Sampling freq selection for the De-Emphasis */ +#define DF1704_SF_44 (0<<6) +#define DF1704_SF_32 (3<<6) +#define DF1704_SF_48 (2<<6) + +void df1704_init(void); +void df1704_mute(void); +void df1704_set_ml(const int); +void df1704_set_mc(const int); +void df1704_set_md(const int); +void df1704_set_ml_dir(const int); +#endif |