linux/include/sound/ad1816a.h

/* SPDX-License-Identifier: GPL-2.0-or-later */
#ifndef __SOUND_AD1816A_H
#define __SOUND_AD1816A_H

/*
    ad1816a.h - definitions for ADI SoundPort AD1816A chip.
    Copyright (C) 1999-2000 by Massimo Piccioni <[email protected]>

*/

#include <sound/control.h>
#include <sound/pcm.h>
#include <sound/timer.h>

#define AD1816A_REG(r)

#define AD1816A_CHIP_STATUS
#define AD1816A_INDIR_ADDR
#define AD1816A_INTERRUPT_STATUS
#define AD1816A_INDIR_DATA_LOW
#define AD1816A_INDIR_DATA_HIGH
#define AD1816A_PIO_DEBUG
#define AD1816A_PIO_STATUS
#define AD1816A_PIO_DATA
#define AD1816A_RESERVED_7
#define AD1816A_PLAYBACK_CONFIG
#define AD1816A_CAPTURE_CONFIG
#define AD1816A_RESERVED_10
#define AD1816A_RESERVED_11
#define AD1816A_JOYSTICK_RAW_DATA
#define AD1816A_JOYSTICK_CTRL
#define AD1816A_JOY_POS_DATA_LOW
#define AD1816A_JOY_POS_DATA_HIGH

#define AD1816A_LOW_BYTE_TMP
#define AD1816A_INTERRUPT_ENABLE
#define AD1816A_EXTERNAL_CTRL
#define AD1816A_PLAYBACK_SAMPLE_RATE
#define AD1816A_CAPTURE_SAMPLE_RATE
#define AD1816A_VOICE_ATT
#define AD1816A_FM_ATT
#define AD1816A_I2S_1_ATT
#define AD1816A_I2S_0_ATT
#define AD1816A_PLAYBACK_BASE_COUNT
#define AD1816A_PLAYBACK_CURR_COUNT
#define AD1816A_CAPTURE_BASE_COUNT
#define AD1816A_CAPTURE_CURR_COUNT
#define AD1816A_TIMER_BASE_COUNT
#define AD1816A_TIMER_CURR_COUNT
#define AD1816A_MASTER_ATT
#define AD1816A_CD_GAIN_ATT
#define AD1816A_SYNTH_GAIN_ATT
#define AD1816A_VID_GAIN_ATT
#define AD1816A_LINE_GAIN_ATT
#define AD1816A_MIC_GAIN_ATT
#define AD1816A_PHONE_IN_GAIN_ATT
#define AD1816A_ADC_SOURCE_SEL
#define AD1816A_ADC_PGA
#define AD1816A_CHIP_CONFIG
#define AD1816A_DSP_CONFIG
#define AD1816A_FM_SAMPLE_RATE
#define AD1816A_I2S_1_SAMPLE_RATE
#define AD1816A_I2S_0_SAMPLE_RATE
#define AD1816A_RESERVED_37
#define AD1816A_PROGRAM_CLOCK_RATE
#define AD1816A_3D_PHAT_CTRL
#define AD1816A_PHONE_OUT_ATT
#define AD1816A_RESERVED_40
#define AD1816A_HW_VOL_BUT
#define AD1816A_DSP_MAILBOX_0
#define AD1816A_DSP_MAILBOX_1
#define AD1816A_POWERDOWN_CTRL
#define AD1816A_TIMER_CTRL
#define AD1816A_VERSION_ID
#define AD1816A_RESERVED_46

#define AD1816A_READY

#define AD1816A_PLAYBACK_IRQ_PENDING
#define AD1816A_CAPTURE_IRQ_PENDING
#define AD1816A_TIMER_IRQ_PENDING

#define AD1816A_PLAYBACK_ENABLE
#define AD1816A_PLAYBACK_PIO
#define AD1816A_CAPTURE_ENABLE
#define AD1816A_CAPTURE_PIO

#define AD1816A_FMT_LINEAR_8
#define AD1816A_FMT_ULAW_8
#define AD1816A_FMT_LINEAR_16_LIT
#define AD1816A_FMT_ALAW_8
#define AD1816A_FMT_LINEAR_16_BIG
#define AD1816A_FMT_ALL
#define AD1816A_FMT_STEREO

#define AD1816A_PLAYBACK_IRQ_ENABLE
#define AD1816A_CAPTURE_IRQ_ENABLE
#define AD1816A_TIMER_IRQ_ENABLE
#define AD1816A_TIMER_ENABLE

#define AD1816A_SRC_LINE
#define AD1816A_SRC_OUT
#define AD1816A_SRC_CD
#define AD1816A_SRC_SYNTH
#define AD1816A_SRC_VIDEO
#define AD1816A_SRC_MIC
#define AD1816A_SRC_MONO
#define AD1816A_SRC_PHONE_IN
#define AD1816A_SRC_MASK

#define AD1816A_CAPTURE_NOT_EQUAL
#define AD1816A_WSS_ENABLE

struct snd_ad1816a {};


#define AD1816A_HW_AUTO
#define AD1816A_HW_AD1816A
#define AD1816A_HW_AD1815
#define AD1816A_HW_AD18MAX10

#define AD1816A_MODE_PLAYBACK
#define AD1816A_MODE_CAPTURE
#define AD1816A_MODE_TIMER
#define AD1816A_MODE_OPEN


extern int snd_ad1816a_create(struct snd_card *card, unsigned long port,
			      int irq, int dma1, int dma2,
			      struct snd_ad1816a *chip);

extern int snd_ad1816a_pcm(struct snd_ad1816a *chip, int device);
extern int snd_ad1816a_mixer(struct snd_ad1816a *chip);
extern int snd_ad1816a_timer(struct snd_ad1816a *chip, int device);
#ifdef CONFIG_PM
extern void snd_ad1816a_suspend(struct snd_ad1816a *chip);
extern void snd_ad1816a_resume(struct snd_ad1816a *chip);
#endif

#endif	/* __SOUND_AD1816A_H */