14bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj/****************************************************************************
24bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj ****************************************************************************
34bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj ***
44bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj ***   This header was automatically generated from a Linux kernel header
54bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj ***   of the same name, to make information necessary for userspace to
64bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj ***   call into the kernel available to libc.  It contains only constants,
74bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj ***   structures, and macros generated from the original header, and thus,
84bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj ***   contains no copyrightable information.
94bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj ***
104bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj ***   To edit the content of this header, modify the corresponding
114bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj ***   source file (e.g. under external/kernel-headers/original/) then
124bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj ***   run bionic/libc/kernel/tools/update_all.py
134bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj ***
144bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj ***   Any manual change here will be lost the next time this script will
154bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj ***   be run. You've been warned!
164bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj ***
174bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj ****************************************************************************
184bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj ****************************************************************************/
194bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj#ifndef __UAPI_MFD_MSM_ADIE_CODEC_H
204bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj#define __UAPI_MFD_MSM_ADIE_CODEC_H
214bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj#include <linux/types.h>
224bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj#define ADIE_CODEC_ACTION_ENTRY 0x1
234bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj#define ADIE_CODEC_ACTION_DELAY_WAIT 0x2
254bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj#define ADIE_CODEC_ACTION_STAGE_REACHED 0x3
264bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj#define ADIE_CODEC_PATH_OFF 0x0050
274bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj#define ADIE_CODEC_DIGITAL_READY 0x0100
284bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj#define ADIE_CODEC_DIGITAL_ANALOG_READY 0x1000
304bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj#define ADIE_CODEC_ANALOG_OFF 0x0750
314bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj#define ADIE_CODEC_DIGITAL_OFF 0x0600
324bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj#define ADIE_CODEC_FLASH_IMAGE 0x0001
334bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj#define ADIE_CODEC_RX 0
354bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj#define ADIE_CODEC_TX 1
364bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj#define ADIE_CODEC_LB 3
374bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj#define ADIE_CODEC_MAX 4
384bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj#define ADIE_CODEC_PACK_ENTRY(reg, mask, val) ((val)|(mask << 8)|(reg << 16))
404bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj#define ADIE_CODEC_UNPACK_ENTRY(packed, reg, mask, val)   do {   ((reg) = ((packed >> 16) & (0xff)));   ((mask) = ((packed >> 8) & (0xff)));   ((val) = ((packed) & (0xff)));   } while (0);
414bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramarajstruct adie_codec_action_unit {
424bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 type;
434bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 action;
454bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj};
464bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramarajstruct adie_codec_hwsetting_entry{
474bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj struct adie_codec_action_unit *actions;
484bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 action_sz;
504bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 freq_plan;
514bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 osr;
524bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj};
534bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
544bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramarajstruct adie_codec_dev_profile {
554bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 path_type;
564bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 setting_sz;
574bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj struct adie_codec_hwsetting_entry *settings;
584bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
594bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj};
604bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramarajstruct adie_codec_register {
614bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u8 reg;
624bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u8 mask;
634bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
644bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u8 val;
654bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj};
664bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramarajstruct adie_codec_register_image {
674bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj struct adie_codec_register *regs;
684bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
694bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 img_sz;
704bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj};
714bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramarajstruct adie_codec_path;
724bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramarajstruct adie_codec_anc_data {
734bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
744bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 size;
754bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 writes[];
764bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj};
774bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramarajstruct adie_codec_operations {
784bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
794bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj int codec_id;
804bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj int (*codec_open) (struct adie_codec_dev_profile *profile,
814bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj struct adie_codec_path **path_pptr);
824bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj int (*codec_close) (struct adie_codec_path *path_ptr);
834bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
844bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj int (*codec_setpath) (struct adie_codec_path *path_ptr,
854bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 freq_plan, u32 osr);
864bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj int (*codec_proceed_stage) (struct adie_codec_path *path_ptr,
874bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 state);
884bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
894bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 (*codec_freq_supported) (struct adie_codec_dev_profile *profile,
904bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 requested_freq);
914bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj int (*codec_enable_sidetone) (struct adie_codec_path *rx_path_ptr,
924bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 enable);
934bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
944bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj int (*codec_enable_anc) (struct adie_codec_path *rx_path_ptr,
954bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 enable, struct adie_codec_anc_data *calibration_writes);
964bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj int (*codec_set_device_digital_volume) (
974bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj struct adie_codec_path *path_ptr,
984bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
994bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 num_channels,
1004bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 vol_percentage);
1014bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj int (*codec_set_device_analog_volume) (struct adie_codec_path *path_ptr,
1024bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 num_channels,
1034bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1044bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u32 volume);
1054bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj int (*codec_set_master_mode) (struct adie_codec_path *path_ptr,
1064bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj u8 master);
1074bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj};
1084bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1094bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj#endif
1104bdc7e6b80ad433341cdecea394976d89536cc34Naveen Ramaraj
111