19c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#ifndef _LINUX_MSM_AUDIO_ACDB_H
29c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define _LINUX_MSM_AUDIO_ACDB_H
39c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani
49c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#include <linux/msm_audio.h>
59c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani
69c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_VOCPROC_CAL		_IOW(AUDIO_IOCTL_MAGIC, \
79c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+0), unsigned)
89c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_VOCPROC_STREAM_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
99c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+1), unsigned)
109c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_VOCPROC_VOL_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
119c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+2), unsigned)
129c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_AUDPROC_RX_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
139c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+3), unsigned)
149c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_AUDPROC_RX_STREAM_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
159c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+4), unsigned)
169c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_AUDPROC_RX_VOL_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
179c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+5), unsigned)
189c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_AUDPROC_TX_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
199c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+6), unsigned)
209c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_AUDPROC_TX_STREAM_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
219c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+7), unsigned)
229c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_AUDPROC_TX_VOL_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
239c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+8), unsigned)
249c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_SIDETONE_CAL		_IOW(AUDIO_IOCTL_MAGIC, \
259c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+9), unsigned)
269c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_ANC_CAL		_IOW(AUDIO_IOCTL_MAGIC, \
279c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+10), unsigned)
289c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_VOICE_RX_TOPOLOGY	_IOW(AUDIO_IOCTL_MAGIC, \
299c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+11), unsigned)
309c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_VOICE_TX_TOPOLOGY	_IOW(AUDIO_IOCTL_MAGIC, \
319c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+12), unsigned)
329c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_ADM_RX_TOPOLOGY	_IOW(AUDIO_IOCTL_MAGIC, \
339c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+13), unsigned)
349c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_ADM_TX_TOPOLOGY	_IOW(AUDIO_IOCTL_MAGIC, \
359c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+14), unsigned)
369c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_ASM_TOPOLOGY	_IOW(AUDIO_IOCTL_MAGIC, \
379c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+15), unsigned)
389c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_AFE_TX_CAL		_IOW(AUDIO_IOCTL_MAGIC, \
399c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+16), unsigned)
409c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_AFE_RX_CAL		_IOW(AUDIO_IOCTL_MAGIC, \
419c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+17), unsigned)
429c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_VOCPROC_COL_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
439c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+18), unsigned)
449c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_VOCSTRM_COL_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
459c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+19), unsigned)
469c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_VOCVOL_COL_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
479c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+20), unsigned)
489c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_VOCPROC_DEV_CFG_CAL	_IOW(AUDIO_IOCTL_MAGIC, \
499c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+21), unsigned)
509c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_LSM_CAL		_IOW(AUDIO_IOCTL_MAGIC, \
519c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+22), unsigned)
529c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_ADM_CUSTOM_TOPOLOGY	_IOW(AUDIO_IOCTL_MAGIC, \
539c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+23), unsigned)
549c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_ASM_CUSTOM_TOPOLOGY	_IOW(AUDIO_IOCTL_MAGIC, \
559c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+24), unsigned)
569c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_SPEAKER_PROT _IOW(AUDIO_IOCTL_MAGIC, 25, \
577a90a415fdbdc9397677f6339f0c2fb402dcae29Devin Kim			struct msm_spk_prot_cfg)
589c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_GET_SPEAKER_PROT _IOR(AUDIO_IOCTL_MAGIC, 26, \
597a90a415fdbdc9397677f6339f0c2fb402dcae29Devin Kim			struct msm_spk_prot_status)
609c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_AANC_CAL		_IOW(AUDIO_IOCTL_MAGIC, \
619c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_COMMON_IOCTL_NUM+27), unsigned)
627a90a415fdbdc9397677f6339f0c2fb402dcae29Devin Kim#define AUDIO_REGISTER_VOCPROC_VOL_TABLE	_IOW(AUDIO_IOCTL_MAGIC, \
637a90a415fdbdc9397677f6339f0c2fb402dcae29Devin Kim			(AUDIO_MAX_COMMON_IOCTL_NUM+28), unsigned)
647a90a415fdbdc9397677f6339f0c2fb402dcae29Devin Kim#define AUDIO_DEREGISTER_VOCPROC_VOL_TABLE	_IOW(AUDIO_IOCTL_MAGIC, \
657a90a415fdbdc9397677f6339f0c2fb402dcae29Devin Kim			(AUDIO_MAX_COMMON_IOCTL_NUM+29), unsigned)
667a90a415fdbdc9397677f6339f0c2fb402dcae29Devin Kim#define	AUDIO_MAX_ACDB_IOCTL	(AUDIO_MAX_COMMON_IOCTL_NUM+40)
679c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani
689c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani/* ACDB structures */
699c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudanistruct cal_block {
709c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani	uint32_t	cal_size;	/* Size of Cal Data */
719c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani	uint32_t	cal_offset;	/* offset pointer to Cal Data */
729c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani};
739c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani
749c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudanistruct sidetone_cal {
759c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani	uint16_t	enable;
769c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani	uint16_t	gain;
779c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani};
789c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani
79edb781a7a5d53bac3e131a89c929aa7b72eaf965Devin Kimenum msm_spkr_prot_states {
80edb781a7a5d53bac3e131a89c929aa7b72eaf965Devin Kim	MSM_SPKR_PROT_CALIBRATED,
81edb781a7a5d53bac3e131a89c929aa7b72eaf965Devin Kim	MSM_SPKR_PROT_CALIBRATION_IN_PROGRESS,
82edb781a7a5d53bac3e131a89c929aa7b72eaf965Devin Kim	MSM_SPKR_PROT_DISABLED,
83edb781a7a5d53bac3e131a89c929aa7b72eaf965Devin Kim	MSM_SPKR_PROT_NOT_CALIBRATED
84edb781a7a5d53bac3e131a89c929aa7b72eaf965Devin Kim};
85edb781a7a5d53bac3e131a89c929aa7b72eaf965Devin Kim
869c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudanistruct msm_spk_prot_cfg {
879c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani	int r0;
889c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani	int t0;
899c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani	uint32_t mode; /*0 - Start spk prot
909c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani	1 - Start calib
919c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani	2 - Disable spk prot*/
929c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani};
939c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani
949c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudanistruct msm_spk_prot_status {
959c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani	int r0;
969c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani	int status;
979c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani};
989c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani
999c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani/* For Real-Time Audio Calibration */
1009c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_GET_RTAC_ADM_INFO		_IOR(AUDIO_IOCTL_MAGIC, \
1019c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_ACDB_IOCTL+1), unsigned)
1029c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_GET_RTAC_VOICE_INFO	_IOR(AUDIO_IOCTL_MAGIC, \
1039c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_ACDB_IOCTL+2), unsigned)
1049c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_GET_RTAC_ADM_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
1059c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_ACDB_IOCTL+3), unsigned)
1069c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_RTAC_ADM_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
1079c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_ACDB_IOCTL+4), unsigned)
1089c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_GET_RTAC_ASM_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
1099c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_ACDB_IOCTL+5), unsigned)
1109c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_RTAC_ASM_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
1119c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_ACDB_IOCTL+6), unsigned)
1129c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_GET_RTAC_CVS_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
1139c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_ACDB_IOCTL+7), unsigned)
1149c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_RTAC_CVS_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
1159c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_ACDB_IOCTL+8), unsigned)
1169c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_GET_RTAC_CVP_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
1179c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_ACDB_IOCTL+9), unsigned)
1189c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define AUDIO_SET_RTAC_CVP_CAL	_IOWR(AUDIO_IOCTL_MAGIC, \
1199c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani			(AUDIO_MAX_ACDB_IOCTL+10), unsigned)
1209c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani
1219c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#define	AUDIO_MAX_RTAC_IOCTL	(AUDIO_MAX_ACDB_IOCTL+20)
1229c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani
1239c02a33ebb106414f7ac79de8531bbb8f092e597Ajay Dudani#endif /* _LINUX_MSM_AUDIO_ACDB_H */
124