162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Driver for Digigram pcxhr compatible soundcards 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * low level interface with interrupt ans message handling 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci * Copyright (c) 2004 by Digigram <alsa@digigram.com> 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#ifndef __SOUND_PCXHR_MIX22_H 1162306a36Sopenharmony_ci#define __SOUND_PCXHR_MIX22_H 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cistruct pcxhr_mgr; 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciint hr222_sub_init(struct pcxhr_mgr *mgr); 1662306a36Sopenharmony_ciint hr222_sub_set_clock(struct pcxhr_mgr *mgr, unsigned int rate, 1762306a36Sopenharmony_ci int *changed); 1862306a36Sopenharmony_ciint hr222_get_external_clock(struct pcxhr_mgr *mgr, 1962306a36Sopenharmony_ci enum pcxhr_clock_type clock_type, 2062306a36Sopenharmony_ci int *sample_rate); 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciint hr222_read_gpio(struct pcxhr_mgr *mgr, int is_gpi, int *value); 2362306a36Sopenharmony_ciint hr222_write_gpo(struct pcxhr_mgr *mgr, int value); 2462306a36Sopenharmony_ciint hr222_manage_timecode(struct pcxhr_mgr *mgr, int enable); 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci#define HR222_LINE_PLAYBACK_LEVEL_MIN 0 /* -25.5 dB */ 2762306a36Sopenharmony_ci#define HR222_LINE_PLAYBACK_ZERO_LEVEL 51 /* 0.0 dB */ 2862306a36Sopenharmony_ci#define HR222_LINE_PLAYBACK_LEVEL_MAX 99 /* +24.0 dB */ 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci#define HR222_LINE_CAPTURE_LEVEL_MIN 0 /* -111.5 dB */ 3162306a36Sopenharmony_ci#define HR222_LINE_CAPTURE_ZERO_LEVEL 223 /* 0.0 dB */ 3262306a36Sopenharmony_ci#define HR222_LINE_CAPTURE_LEVEL_MAX 255 /* +16 dB */ 3362306a36Sopenharmony_ci#define HR222_MICRO_CAPTURE_LEVEL_MIN 0 /* -98.5 dB */ 3462306a36Sopenharmony_ci#define HR222_MICRO_CAPTURE_LEVEL_MAX 210 /* +6.5 dB */ 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ciint hr222_update_analog_audio_level(struct snd_pcxhr *chip, 3762306a36Sopenharmony_ci int is_capture, 3862306a36Sopenharmony_ci int channel); 3962306a36Sopenharmony_ciint hr222_set_audio_source(struct snd_pcxhr *chip); 4062306a36Sopenharmony_ciint hr222_iec958_capture_byte(struct snd_pcxhr *chip, int aes_idx, 4162306a36Sopenharmony_ci unsigned char *aes_bits); 4262306a36Sopenharmony_ciint hr222_iec958_update_byte(struct snd_pcxhr *chip, int aes_idx, 4362306a36Sopenharmony_ci unsigned char aes_bits); 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ciint hr222_add_mic_controls(struct snd_pcxhr *chip); 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci#endif /* __SOUND_PCXHR_MIX22_H */ 48