linux/sound/pci/ice1712/ews.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 *   ALSA driver for ICEnsemble ICE1712 (Envy24)
 *
 *   Lowlevel functions for Terratec EWS88MT/D, EWX24/96, DMX 6Fire
 *
 *	Copyright (c) 2000 Jaroslav Kysela <[email protected]>
 *                    2002 Takashi Iwai <[email protected]>
 */      

#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <sound/core.h>
#include <sound/cs8427.h>
#include <sound/asoundef.h>

#include "ice1712.h"
#include "ews.h"

#define SND_CS8404
#include <sound/cs8403.h>

enum {};
	

/* additional i2c devices for EWS boards */
struct ews_spec {};

/*
 * access via i2c mode (for EWX 24/96, EWS 88MT&D)
 */

/* send SDA and SCL */
static void ewx_i2c_setlines(struct snd_i2c_bus *bus, int clk, int data)
{}

static int ewx_i2c_getclock(struct snd_i2c_bus *bus)
{}

static int ewx_i2c_getdata(struct snd_i2c_bus *bus, int ack)
{}

static void ewx_i2c_start(struct snd_i2c_bus *bus)
{}

static void ewx_i2c_stop(struct snd_i2c_bus *bus)
{}

static void ewx_i2c_direction(struct snd_i2c_bus *bus, int clock, int data)
{}

static struct snd_i2c_bit_ops snd_ice1712_ewx_cs8427_bit_ops =;


/*
 * AK4524 access
 */

/* AK4524 chip select; address 0x48 bit 0-3 */
static int snd_ice1712_ews88mt_chip_select(struct snd_ice1712 *ice, int chip_mask)
{}

/* start callback for EWS88MT, needs to select a certain chip mask */
static void ews88mt_ak4524_lock(struct snd_akm4xxx *ak, int chip)
{}

/* stop callback for EWS88MT, needs to deselect chip mask */
static void ews88mt_ak4524_unlock(struct snd_akm4xxx *ak, int chip)
{}

/* start callback for EWX24/96 */
static void ewx2496_ak4524_lock(struct snd_akm4xxx *ak, int chip)
{}

/* start callback for DMX 6fire */
static void dmx6fire_ak4524_lock(struct snd_akm4xxx *ak, int chip)
{}

/*
 * CS8404 interface on EWS88MT/D
 */

static void snd_ice1712_ews_cs8404_spdif_write(struct snd_ice1712 *ice, unsigned char bits)
{}

/*
 */

static void ews88_spdif_default_get(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol)
{}

static int ews88_spdif_default_put(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol)
{}

static void ews88_spdif_stream_get(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol)
{}

static int ews88_spdif_stream_put(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol)
{}


/* open callback */
static void ews88_open_spdif(struct snd_ice1712 *ice, struct snd_pcm_substream *substream)
{}

/* set up SPDIF for EWS88MT / EWS88D */
static void ews88_setup_spdif(struct snd_ice1712 *ice, int rate)
{}


/*
 */
static const struct snd_akm4xxx akm_ews88mt =;

static const struct snd_ak4xxx_private akm_ews88mt_priv =;

static const struct snd_akm4xxx akm_ewx2496 =;

static const struct snd_ak4xxx_private akm_ewx2496_priv =;

static const struct snd_akm4xxx akm_6fire =;

static const struct snd_ak4xxx_private akm_6fire_priv =;

/*
 * initialize the chip
 */

/* 6fire specific */
#define PCF9554_REG_INPUT
#define PCF9554_REG_OUTPUT
#define PCF9554_REG_POLARITY
#define PCF9554_REG_CONFIG

static int snd_ice1712_6fire_write_pca(struct snd_ice1712 *ice, unsigned char reg, unsigned char data);

static int snd_ice1712_ews_init(struct snd_ice1712 *ice)
{}

/*
 * EWX 24/96 specific controls
 */

/* i/o sensitivity - this callback is shared among other devices, too */
static int snd_ice1712_ewx_io_sense_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo){}

static int snd_ice1712_ewx_io_sense_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{}

static int snd_ice1712_ewx_io_sense_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{}

static const struct snd_kcontrol_new snd_ice1712_ewx2496_controls[] =;


/*
 * EWS88MT specific controls
 */
/* analog output sensitivity;; address 0x48 bit 6 */
static int snd_ice1712_ews88mt_output_sense_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{}

/* analog output sensitivity;; address 0x48 bit 6 */
static int snd_ice1712_ews88mt_output_sense_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{}

/* analog input sensitivity; address 0x46 */
static int snd_ice1712_ews88mt_input_sense_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{}

/* analog output sensitivity; address 0x46 */
static int snd_ice1712_ews88mt_input_sense_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{}

static const struct snd_kcontrol_new snd_ice1712_ews88mt_input_sense =;

static const struct snd_kcontrol_new snd_ice1712_ews88mt_output_sense =;


/*
 * EWS88D specific controls
 */

#define snd_ice1712_ews88d_control_info

static int snd_ice1712_ews88d_control_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{}

static int snd_ice1712_ews88d_control_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{}

#define EWS88D_CONTROL(xiface, xname, xshift, xinvert, xaccess)

static const struct snd_kcontrol_new snd_ice1712_ews88d_controls[] =;


/*
 * DMX 6Fire specific controls
 */

static int snd_ice1712_6fire_read_pca(struct snd_ice1712 *ice, unsigned char reg)
{}

static int snd_ice1712_6fire_write_pca(struct snd_ice1712 *ice, unsigned char reg, unsigned char data)
{}

#define snd_ice1712_6fire_control_info

static int snd_ice1712_6fire_control_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{}

static int snd_ice1712_6fire_control_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{}

static int snd_ice1712_6fire_select_input_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{}
     
static int snd_ice1712_6fire_select_input_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{}

static int snd_ice1712_6fire_select_input_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{}


#define DMX6FIRE_CONTROL(xname, xshift, xinvert)

static const struct snd_kcontrol_new snd_ice1712_6fire_controls[] =;


static int snd_ice1712_ews_add_controls(struct snd_ice1712 *ice)
{}


/* entry point */
struct snd_ice1712_card_info snd_ice1712_ews_cards[] =;