122851890Sopenharmony_ci/* 222851890Sopenharmony_ci * This header was generated from the Linux kernel headers by update_headers.py, 322851890Sopenharmony_ci * to provide necessary information from kernel to userspace, such as constants, 422851890Sopenharmony_ci * structures, and macros, and thus, contains no copyrightable information. 522851890Sopenharmony_ci */ 622851890Sopenharmony_ci#ifndef __SOUND_HDSP_H 722851890Sopenharmony_ci#define __SOUND_HDSP_H 822851890Sopenharmony_ci#include <linux/types.h> 922851890Sopenharmony_ci#define HDSP_MATRIX_MIXER_SIZE 2048 1022851890Sopenharmony_cienum HDSP_IO_Type { 1122851890Sopenharmony_ci Digiface, 1222851890Sopenharmony_ci Multiface, 1322851890Sopenharmony_ci H9652, 1422851890Sopenharmony_ci H9632, 1522851890Sopenharmony_ci RPM, 1622851890Sopenharmony_ci Undefined, 1722851890Sopenharmony_ci}; 1822851890Sopenharmony_cistruct hdsp_peak_rms { 1922851890Sopenharmony_ci __u32 input_peaks[26]; 2022851890Sopenharmony_ci __u32 playback_peaks[26]; 2122851890Sopenharmony_ci __u32 output_peaks[28]; 2222851890Sopenharmony_ci __u64 input_rms[26]; 2322851890Sopenharmony_ci __u64 playback_rms[26]; 2422851890Sopenharmony_ci 2522851890Sopenharmony_ci __u64 output_rms[26]; 2622851890Sopenharmony_ci}; 2722851890Sopenharmony_ci#define SNDRV_HDSP_IOCTL_GET_PEAK_RMS _IOR('H', 0x40, struct hdsp_peak_rms) 2822851890Sopenharmony_cistruct hdsp_config_info { 2922851890Sopenharmony_ci unsigned char pref_sync_ref; 3022851890Sopenharmony_ci unsigned char wordclock_sync_check; 3122851890Sopenharmony_ci unsigned char spdif_sync_check; 3222851890Sopenharmony_ci unsigned char adatsync_sync_check; 3322851890Sopenharmony_ci unsigned char adat_sync_check[3]; 3422851890Sopenharmony_ci unsigned char spdif_in; 3522851890Sopenharmony_ci unsigned char spdif_out; 3622851890Sopenharmony_ci unsigned char spdif_professional; 3722851890Sopenharmony_ci unsigned char spdif_emphasis; 3822851890Sopenharmony_ci unsigned char spdif_nonaudio; 3922851890Sopenharmony_ci unsigned int spdif_sample_rate; 4022851890Sopenharmony_ci unsigned int system_sample_rate; 4122851890Sopenharmony_ci unsigned int autosync_sample_rate; 4222851890Sopenharmony_ci unsigned char system_clock_mode; 4322851890Sopenharmony_ci unsigned char clock_source; 4422851890Sopenharmony_ci unsigned char autosync_ref; 4522851890Sopenharmony_ci unsigned char line_out; 4622851890Sopenharmony_ci unsigned char passthru; 4722851890Sopenharmony_ci unsigned char da_gain; 4822851890Sopenharmony_ci unsigned char ad_gain; 4922851890Sopenharmony_ci unsigned char phone_gain; 5022851890Sopenharmony_ci unsigned char xlr_breakout_cable; 5122851890Sopenharmony_ci unsigned char analog_extension_board; 5222851890Sopenharmony_ci}; 5322851890Sopenharmony_ci#define SNDRV_HDSP_IOCTL_GET_CONFIG_INFO _IOR('H', 0x41, struct hdsp_config_info) 5422851890Sopenharmony_cistruct hdsp_firmware { 5522851890Sopenharmony_ci void __user *firmware_data; 5622851890Sopenharmony_ci}; 5722851890Sopenharmony_ci#define SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE _IOW('H', 0x42, struct hdsp_firmware) 5822851890Sopenharmony_cistruct hdsp_version { 5922851890Sopenharmony_ci enum HDSP_IO_Type io_type; 6022851890Sopenharmony_ci unsigned short firmware_rev; 6122851890Sopenharmony_ci}; 6222851890Sopenharmony_ci#define SNDRV_HDSP_IOCTL_GET_VERSION _IOR('H', 0x43, struct hdsp_version) 6322851890Sopenharmony_cistruct hdsp_mixer { 6422851890Sopenharmony_ci unsigned short matrix[HDSP_MATRIX_MIXER_SIZE]; 6522851890Sopenharmony_ci}; 6622851890Sopenharmony_ci#define SNDRV_HDSP_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdsp_mixer) 6722851890Sopenharmony_cistruct hdsp_9632_aeb { 6822851890Sopenharmony_ci int aebi; 6922851890Sopenharmony_ci int aebo; 7022851890Sopenharmony_ci}; 7122851890Sopenharmony_ci#define SNDRV_HDSP_IOCTL_GET_9632_AEB _IOR('H', 0x45, struct hdsp_9632_aeb) 7222851890Sopenharmony_citypedef enum HDSP_IO_Type HDSP_IO_Type; 7322851890Sopenharmony_citypedef struct hdsp_peak_rms hdsp_peak_rms_t; 7422851890Sopenharmony_citypedef struct hdsp_config_info hdsp_config_info_t; 7522851890Sopenharmony_citypedef struct hdsp_firmware hdsp_firmware_t; 7622851890Sopenharmony_citypedef struct hdsp_version hdsp_version_t; 7722851890Sopenharmony_citypedef struct hdsp_mixer hdsp_mixer_t; 7822851890Sopenharmony_citypedef struct hdsp_9632_aeb hdsp_9632_aeb_t; 7922851890Sopenharmony_ci#endif 80