From 42f77d4eb027afed4f4ef80f10c16112c2b7fe2b Mon Sep 17 00:00:00 2001 From: Dave Chapman Date: Fri, 31 Oct 2008 00:16:42 +0000 Subject: Abstract the PortalPlayer AS3514 handling with an "ascodec" API - inspired by the wmcodec API used with the Wolfson codecs. The intention is to implement this API for the AS3525 and then share code with the Sansa V2 ports. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18940 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/ascodec-target.h | 69 ++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 firmware/target/arm/ascodec-target.h (limited to 'firmware/target/arm/ascodec-target.h') diff --git a/firmware/target/arm/ascodec-target.h b/firmware/target/arm/ascodec-target.h new file mode 100644 index 0000000000..19b1644541 --- /dev/null +++ b/firmware/target/arm/ascodec-target.h @@ -0,0 +1,69 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Driver for AS3514 audio codec + * + * Copyright (c) 2007 Daniel Ankers + * Copyright (c) 2007 Christian Gmeiner + * + * 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 _ASCODEC_TARGET_H +#define _ASCODEC_TARGET_H + +#include "config.h" + +#ifdef CPU_PP +/* TODO: This header is actually portalplayer specific, and should be + * moved into an appropriate subdir */ + +#include "i2c-pp.h" + +#if defined(SANSA_E200) || defined(SANSA_C200) || defined(PHILIPS_SA9200) +#define AS3514_I2C_ADDR 0x46 +#else +#error Unknown target! +#endif + +static inline int ascodec_write(unsigned int reg, unsigned int value) +{ + return pp_i2c_send(AS3514_I2C_ADDR, reg, value); +} + +static inline int ascodec_read(unsigned int reg) +{ + return i2c_readbyte(AS3514_I2C_ADDR, reg); +} + +static inline int ascodec_readbytes(int addr, int len, unsigned char *data) +{ + return i2c_readbytes(AS3514_I2C_ADDR, addr, len, data); +} + +static inline void ascodec_lock(void) +{ + i2c_lock(); +} + +static inline void ascodec_unlock(void) +{ + i2c_unlock(); +} + +#endif /* CPU_PP */ + +#endif /* !_ASCODEC_TARGET_H */ -- cgit v1.2.3