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