summaryrefslogtreecommitdiff
path: root/firmware/export/df1704.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/export/df1704.h')
-rw-r--r--firmware/export/df1704.h94
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