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