blob: 710e761dcf280528926a2faa4a74e755fdfc3148 [file] [log] [blame]
/*
* maxim_codec.h -- MAXIM codec common interface file
*
* Copyright (C) 2013 Samsung Electronics
* D Krishna Mohan <krishna.md@samsung.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __MAXIM_COMMON_H__
#define __MAXIM_COMMON_H__
enum maxim_codec_type {
MAX98095,
MAX98090,
};
struct maxim_codec_priv {
enum maxim_codec_type devtype;
unsigned int sysclk;
unsigned int rate;
unsigned int fmt;
};
#if !defined(CONFIG_TEGRA) /* Specific to Samsung, unused if OF */
#define MAXIM_AUDIO_I2C_BUS 7
#define MAXIM_AUDIO_I2C_REG_98095 0x22
#define MAXIM_AUDIO_I2C_REG MAXIM_AUDIO_I2C_REG_98095
#endif /* !Tegra */
int maxim_codec_i2c_write(unsigned int reg, unsigned char data);
unsigned int maxim_codec_i2c_read(unsigned int reg, unsigned char *data);
int maxim_codec_update_bits(unsigned int reg, unsigned char mask,
unsigned char value);
int maxim_codec_init(const void *blob, const char *codectype, int sampling_rate,
int mclk_freq, int bits_per_sample);
#endif /* __MAXIM_COMMON_H__ */