linux/sound/pci/ice1712/delta.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 *   ALSA driver for ICEnsemble ICE1712 (Envy24)
 *
 *   Lowlevel functions for M-Audio Delta 1010, 1010E, 44, 66, 66E, Dio2496,
 *			    Audiophile, Digigram VX442
 *
 *	Copyright (c) 2000 Jaroslav Kysela <[email protected]>
 */      

#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/mutex.h>

#include <sound/core.h>
#include <sound/cs8427.h>
#include <sound/asoundef.h>

#include "ice1712.h"
#include "delta.h"

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


/*
 * CS8427 via SPI mode (for Audiophile), emulated I2C
 */

/* send 8 bits */
static void ap_cs8427_write_byte(struct snd_ice1712 *ice, unsigned char data, unsigned char tmp)
{}

/* read 8 bits */
static unsigned char ap_cs8427_read_byte(struct snd_ice1712 *ice, unsigned char tmp)
{}

/* assert chip select */
static unsigned char ap_cs8427_codec_select(struct snd_ice1712 *ice)
{}

/* deassert chip select */
static void ap_cs8427_codec_deassert(struct snd_ice1712 *ice, unsigned char tmp)
{}

/* sequential write */
static int ap_cs8427_sendbytes(struct snd_i2c_device *device, unsigned char *bytes, int count)
{}

/* sequential read */
static int ap_cs8427_readbytes(struct snd_i2c_device *device, unsigned char *bytes, int count)
{}

static int ap_cs8427_probeaddr(struct snd_i2c_bus *bus, unsigned short addr)
{}

static const struct snd_i2c_ops ap_cs8427_i2c_ops =;

/*
 */

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


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

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

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

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


/*
 * AK4524 on Delta 44 and 66 to choose the chip mask
 */
static void delta_ak4524_lock(struct snd_akm4xxx *ak, int chip)
{}

/*
 * AK4524 on Delta1010LT to choose the chip address
 */
static void delta1010lt_ak4524_lock(struct snd_akm4xxx *ak, int chip)
{}

/*
 * AK4524 on Delta66 rev E to choose the chip address
 */
static void delta66e_ak4524_lock(struct snd_akm4xxx *ak, int chip)
{}

/*
 * AK4528 on VX442 to choose the chip mask
 */
static void vx442_ak4524_lock(struct snd_akm4xxx *ak, int chip)
{}

/*
 * change the DFS bit according rate for Delta1010
 */
static void delta_1010_set_rate_val(struct snd_ice1712 *ice, unsigned int rate)
{}

/*
 * change the rate of AK4524 on Delta 44/66, AP, 1010LT
 */
static void delta_ak4524_set_rate_val(struct snd_akm4xxx *ak, unsigned int rate)
{}

/*
 * change the rate of AK4524 on VX442
 */
static void vx442_ak4524_set_rate_val(struct snd_akm4xxx *ak, unsigned int rate)
{}


/*
 * SPDIF ops for Delta 1010, Dio, 66
 */

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

/* set up */
static void delta_setup_spdif(struct snd_ice1712 *ice, int rate)
{}

#define snd_ice1712_delta1010lt_wordclock_status_info

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

static const struct snd_kcontrol_new snd_ice1712_delta1010lt_wordclock_status =;

/*
 * initialize the chips on M-Audio cards
 */

static const struct snd_akm4xxx akm_audiophile =;

static const struct snd_ak4xxx_private akm_audiophile_priv =;

static const struct snd_akm4xxx akm_delta410 =;

static const struct snd_ak4xxx_private akm_delta410_priv =;

static const struct snd_akm4xxx akm_delta1010lt =;

static const struct snd_ak4xxx_private akm_delta1010lt_priv =;

static const struct snd_akm4xxx akm_delta66e =;

static const struct snd_ak4xxx_private akm_delta66e_priv =;


static const struct snd_akm4xxx akm_delta44 =;

static const struct snd_ak4xxx_private akm_delta44_priv =;

static const struct snd_akm4xxx akm_vx442 =;

static const struct snd_ak4xxx_private akm_vx442_priv =;

#ifdef CONFIG_PM_SLEEP
static int snd_ice1712_delta_resume(struct snd_ice1712 *ice)
{}

static int snd_ice1712_delta_suspend(struct snd_ice1712 *ice)
{}
#endif

static int snd_ice1712_delta_init(struct snd_ice1712 *ice)
{}


/*
 * additional controls for M-Audio cards
 */

static const struct snd_kcontrol_new snd_ice1712_delta1010_wordclock_select =;
static const struct snd_kcontrol_new snd_ice1712_delta1010lt_wordclock_select =;
static const struct snd_kcontrol_new snd_ice1712_delta1010_wordclock_status =;
static const struct snd_kcontrol_new snd_ice1712_deltadio2496_spdif_in_select =;
static const struct snd_kcontrol_new snd_ice1712_delta_spdif_in_status =;


static int snd_ice1712_delta_add_controls(struct snd_ice1712 *ice)
{}


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