msm-adie-codec.h revision 4bdc7e6b80ad433341cdecea394976d89536cc34
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