2013-04-15 05:51:22 +00:00
|
|
|
/***************************************************************************
|
|
|
|
* __________ __ ___.
|
|
|
|
* 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
|
|
|
|
|
2013-05-12 19:31:32 +00:00
|
|
|
#define AUDIOHW_CAPS (FILTER_ROLL_OFF_CAP)
|
2013-04-15 05:51:22 +00:00
|
|
|
AUDIOHW_SETTING(VOLUME, "dB", 0, 1, DF1704_VOLUME_MIN/10, DF1704_VOLUME_MAX/10, 0)
|
2013-05-12 19:31:32 +00:00
|
|
|
AUDIOHW_SETTING(FILTER_ROLL_OFF, "", 0, 1, 0, 1, 0)
|
2013-04-15 05:51:22 +00:00
|
|
|
|
|
|
|
#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
|