1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Driver for Digigram pcxhr compatible soundcards 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * low level interface with interrupt ans message handling 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * Copyright (c) 2004 by Digigram <alsa@digigram.com> 8*4882a593Smuzhiyun */ 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #ifndef __SOUND_PCXHR_MIX22_H 11*4882a593Smuzhiyun #define __SOUND_PCXHR_MIX22_H 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun struct pcxhr_mgr; 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun int hr222_sub_init(struct pcxhr_mgr *mgr); 16*4882a593Smuzhiyun int hr222_sub_set_clock(struct pcxhr_mgr *mgr, unsigned int rate, 17*4882a593Smuzhiyun int *changed); 18*4882a593Smuzhiyun int hr222_get_external_clock(struct pcxhr_mgr *mgr, 19*4882a593Smuzhiyun enum pcxhr_clock_type clock_type, 20*4882a593Smuzhiyun int *sample_rate); 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun int hr222_read_gpio(struct pcxhr_mgr *mgr, int is_gpi, int *value); 23*4882a593Smuzhiyun int hr222_write_gpo(struct pcxhr_mgr *mgr, int value); 24*4882a593Smuzhiyun int hr222_manage_timecode(struct pcxhr_mgr *mgr, int enable); 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun #define HR222_LINE_PLAYBACK_LEVEL_MIN 0 /* -25.5 dB */ 27*4882a593Smuzhiyun #define HR222_LINE_PLAYBACK_ZERO_LEVEL 51 /* 0.0 dB */ 28*4882a593Smuzhiyun #define HR222_LINE_PLAYBACK_LEVEL_MAX 99 /* +24.0 dB */ 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun #define HR222_LINE_CAPTURE_LEVEL_MIN 0 /* -111.5 dB */ 31*4882a593Smuzhiyun #define HR222_LINE_CAPTURE_ZERO_LEVEL 223 /* 0.0 dB */ 32*4882a593Smuzhiyun #define HR222_LINE_CAPTURE_LEVEL_MAX 255 /* +16 dB */ 33*4882a593Smuzhiyun #define HR222_MICRO_CAPTURE_LEVEL_MIN 0 /* -98.5 dB */ 34*4882a593Smuzhiyun #define HR222_MICRO_CAPTURE_LEVEL_MAX 210 /* +6.5 dB */ 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun int hr222_update_analog_audio_level(struct snd_pcxhr *chip, 37*4882a593Smuzhiyun int is_capture, 38*4882a593Smuzhiyun int channel); 39*4882a593Smuzhiyun int hr222_set_audio_source(struct snd_pcxhr *chip); 40*4882a593Smuzhiyun int hr222_iec958_capture_byte(struct snd_pcxhr *chip, int aes_idx, 41*4882a593Smuzhiyun unsigned char *aes_bits); 42*4882a593Smuzhiyun int hr222_iec958_update_byte(struct snd_pcxhr *chip, int aes_idx, 43*4882a593Smuzhiyun unsigned char aes_bits); 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun int hr222_add_mic_controls(struct snd_pcxhr *chip); 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun #endif /* __SOUND_PCXHR_MIX22_H */ 48