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