From 758bb3bc628705ff8e5c677b3b2d87720c726c13 Mon Sep 17 00:00:00 2001 From: Mark Arigo Date: Mon, 25 May 2009 21:10:45 +0000 Subject: 3 new ports: Samsung YH-820, YH-920, and YH-925. Mostly functional. Audio working on 820 & 925 (untested on the 920). No battery readings. No recording. No plugins. Keymap needs work. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21083 a1c6a512-1295-4272-9138-f99709370657 --- firmware/export/ak4537.h | 193 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 firmware/export/ak4537.h (limited to 'firmware/export/ak4537.h') diff --git a/firmware/export/ak4537.h b/firmware/export/ak4537.h new file mode 100644 index 0000000000..1f272d41fc --- /dev/null +++ b/firmware/export/ak4537.h @@ -0,0 +1,193 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2009 by Mark Arigo + * + * 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 _AK4537_H +#define _AK4537_H + +/* Volume goes from -127.0 ... 0 dB in 0.5 dB increments */ +#define VOLUME_MIN -1270 +#define VOLUME_MAX 0 + +extern int tenthdb2master(int db); + +extern void audiohw_set_master_vol(int vol_l, int vol_r); + +#define AKC_NUM_REGS 0x11 + +/* Common register bits */ + +/* Power Management 1 */ +#define AK4537_PM1 0x00 +#define PMADL (1 << 0) +#define PMMICL (1 << 1) +#define PMIPGL (1 << 2) +#define PMMO (1 << 3) +#define PMLO (1 << 4) +#define PMBPM (1 << 5) +#define PMBPS (1 << 6) +#define PMVCM (1 << 7) + +/* Power Management 2 */ +#define AK4537_PM2 0x01 +#define PMDAC (1 << 0) +#define PMHPR (1 << 1) +#define PMHPL (1 << 2) +#define PMSPK (1 << 3) +#define SPKG (1 << 4) +#define PMPLL (1 << 5) +#define PMXTL (1 << 6) +#define MCLKPD (1 << 7) + +/* Signal Select 1 */ +#define AK4537_SIGSEL1 0x02 +#define MOUT2 (1 << 0) +#define ALCS (1 << 1) +#define BPMSP (1 << 2) +#define BPSSP (1 << 3) +#define MICM (1 << 4) +#define DAMO (1 << 5) +#define PSMO (1 << 6) +#define MOGN (1 << 7) + +/* Signal Select 2 */ +#define AK4537_SIGSEL2 0x03 +#define HPR (1 << 0) +#define HPL (1 << 1) +#define BPMHP (1 << 2) +#define BPSHP (1 << 3) +#define MICL (1 << 4) +#define PSLO (1 << 6) +#define DAHS (1 << 7) + +/* Mode Control 1 */ +#define AK4537_MODE1 0x04 +#define DIF_MASK (3 << 0) +#define BICK_MASK (1 << 2) +#define MCKO_EN (1 << 3) +#define MCKO_MASK (3 << 4) +#define MCKI_MASK (3 << 6) + +/* Mode Control 2 */ +#define AK4537_MODE2 0x05 +#define SPPS (1 << 0) +#define LOOP (1 << 1) +#define HPM (1 << 2) +#define FS_MASK (7 << 5) + +/* DAC Control */ +#define AK4537_DAC 0x06 +#define DEM_MASK (3 << 0) +#define BST_MASK (3 << 2) +#define DATTC (1 << 4) +#define SMUTE (1 << 5) +#define TM_MASK (3 << 6) + +/* MIC Control */ +#define AK4537_MIC 0x07 +#define MGAIN (1 << 0) +#define MSEL (1 << 1) +#define MICAD (1 << 2) +#define MPWRI (1 << 3) +#define MPWRE (1 << 4) +#define IPGAC (1 << 5) + +/* Timer Select */ +#define AK4537_TIMER 0x08 +#define LTM_MASK (3 << 0) +#define WTM_MASK (3 << 2) +#define ZTM_MASK (3 << 4) +#define ZTM1 (1 << 5) +#define ROTM (1 << 6) + +/* ALC Mode Control 1 */ +#define AK4537_ALC1 0x09 +#define LMTH (1 << 0) +#define RATT (1 << 1) +#define LMAT_MASK (3 << 2) +#define ZELM (1 << 4) +#define ALC1 (1 << 5) +#define ALC2 (1 << 6) + +/* ALC Mode Control 2 */ +#define AK4537_ALC2 0x0a + +/* Lch Input PGA Control */ +#define AK4537_IPGAL 0x0b + +/* Lch Digital ATT Control */ +#define AK4537_ATTL 0x0c + +/* Rch Digital ATT Control */ +#define AK4537_ATTR 0x0d + +/* Volume Control */ +#define AK4537_VOLUME 0x0e +#define ATTS_MASK (7 << 4) +#define ATTRM (1 << 7) + +/* Rch Input PGA Control */ +#define AK4537_IPGAR 0x0f + +/* Power Management 3 */ +#define AK4537_PM3 0x10 +#define PMADR (1 << 0) +#define PMMICR (1 << 1) +#define PMIPGR (1 << 2) +#define INR (1 << 3) +#define INL (1 << 4) + +/* Sampling frequency (PLL mode) */ +#define AKC_PLL_8000HZ (7 << 5) +#define AKC_PLL_11025HZ (2 << 5) +#define AKC_PLL_16000HZ (6 << 5) +#define AKC_PLL_22050HZ (1 << 5) +#define AKC_PLL_24000HZ (5 << 5) +#define AKC_PLL_32000HZ (4 << 5) +#define AKC_PLL_44100HZ (0 << 5) +#define AKC_PLL_48000HZ (3 << 5) + +/* MCKI input frequency (PLL mode) */ +#define MCKI_PLL_12288KHZ (0 << 6) +#define MCKI_PLL_11289KHZ (1 << 6) +#define MCKI_PLL_12000KHZ (2 << 6) + +/* MCKO frequency (PLL mode, MCKO bit = 1) */ +#define MCKO_PLL_256FS (0 << 4) +#define MCKO_PLL_128FS (1 << 4) +#define MCKO_PLL_64FS (2 << 4) +#define MCKO_PLL_32FS (3 << 4) + +/* BICK frequency */ +#define BICK_64FS (0 << 2) +#define BICK_32FS (1 << 2) + +/* Audio interface format */ +#define DIF_MSB_LSB (0 << 0) +#define DIF_MSB_MSB (1 << 0) +#define DIF_I2S (2 << 0) + +/* Low frequency boost control */ +#define BST_OFF (0 << 2) +#define BST_MIN (1 << 2) +#define BST_MID (2 << 2) +#define BST_MAX (3 << 2) + +#endif /* _AK4537_H */ -- cgit v1.2.3