18611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/****************************************************************************
28611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ****************************************************************************
38611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***
48611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   This header was automatically generated from a Linux kernel header
58611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   of the same name, to make information necessary for userspace to
68611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   call into the kernel available to libc.  It contains only constants,
78611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   structures, and macros generated from the original header, and thus,
88611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   contains no copyrightable information.
98611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***
108611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   To edit the content of this header, modify the corresponding
118611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   source file (e.g. under external/kernel-headers/original/) then
128611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   run bionic/libc/kernel/tools/update_all.py
138611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***
148611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   Any manual change here will be lost the next time this script will
158611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***   be run. You've been warned!
168611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ***
178611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ****************************************************************************
188611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu ****************************************************************************/
198611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#ifndef __LINUX_MFD_MSM_ADIE_CODEC_H
208611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define __LINUX_MFD_MSM_ADIE_CODEC_H
218611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#include <linux/types.h>
228611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define ADIE_CODEC_ACTION_ENTRY 0x1
238611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
248611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define ADIE_CODEC_ACTION_DELAY_WAIT 0x2
258611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define ADIE_CODEC_ACTION_STAGE_REACHED 0x3
268611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define ADIE_CODEC_PATH_OFF 0x0050
278611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define ADIE_CODEC_DIGITAL_READY 0x0100
288611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
298611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define ADIE_CODEC_DIGITAL_ANALOG_READY 0x1000
308611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define ADIE_CODEC_ANALOG_OFF 0x0750
318611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define ADIE_CODEC_DIGITAL_OFF 0x0600
328611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define ADIE_CODEC_FLASH_IMAGE 0x0001
338611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
348611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define ADIE_CODEC_RX 0
358611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define ADIE_CODEC_TX 1
368611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define ADIE_CODEC_LB 3
378611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define ADIE_CODEC_MAX 4
388611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
398611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define ADIE_CODEC_PACK_ENTRY(reg, mask, val) ((val)|(mask << 8)|(reg << 16))
408611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#define ADIE_CODEC_UNPACK_ENTRY(packed, reg, mask, val)   do {   ((reg) = ((packed >> 16) & (0xff)));   ((mask) = ((packed >> 8) & (0xff)));   ((val) = ((packed) & (0xff)));   } while (0);
418611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct adie_codec_action_unit {
428611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 type;
438611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
448611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 action;
458611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
468611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct adie_codec_hwsetting_entry{
478611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct adie_codec_action_unit *actions;
488611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
498611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 action_sz;
508611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 freq_plan;
518611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 osr;
528611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
538611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
548611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct adie_codec_dev_profile {
558611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 path_type;
568611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 setting_sz;
578611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct adie_codec_hwsetting_entry *settings;
588611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
598611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
608611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct adie_codec_register {
618611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u8 reg;
628611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u8 mask;
638611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
648611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u8 val;
658611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
668611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct adie_codec_register_image {
678611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct adie_codec_register *regs;
688611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
698611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 img_sz;
708611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
718611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct adie_codec_path;
728611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct adie_codec_anc_data {
738611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
748611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 size;
758611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 writes[];
768611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
778611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsustruct adie_codec_operations {
788611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
798611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int codec_id;
808611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int (*codec_open) (struct adie_codec_dev_profile *profile,
818611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct adie_codec_path **path_pptr);
828611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int (*codec_close) (struct adie_codec_path *path_ptr);
838611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
848611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int (*codec_setpath) (struct adie_codec_path *path_ptr,
858611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 freq_plan, u32 osr);
868611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int (*codec_proceed_stage) (struct adie_codec_path *path_ptr,
878611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 state);
888611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
898611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 (*codec_freq_supported) (struct adie_codec_dev_profile *profile,
908611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 requested_freq);
918611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int (*codec_enable_sidetone) (struct adie_codec_path *rx_path_ptr,
928611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 enable);
938611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
948611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int (*codec_enable_anc) (struct adie_codec_path *rx_path_ptr,
958611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 enable, struct adie_codec_anc_data *calibration_writes);
968611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int (*codec_set_device_digital_volume) (
978611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu struct adie_codec_path *path_ptr,
988611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
998611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 num_channels,
1008611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 vol_percentage);
1018611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int (*codec_set_device_analog_volume) (struct adie_codec_path *path_ptr,
1028611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 num_channels,
1038611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1048611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u32 volume);
1058611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu int (*codec_set_master_mode) (struct adie_codec_path *path_ptr,
1068611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu u8 master);
1078611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu};
1088611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
1098611d5578ff014a1415b26e75e63aecbc4ad266cBrian Muramatsu#endif
110f0edc3f155a136d87beccd5ecef75c2d4b6f6b64Iliyan Malchev
111