1*14bd8572SWeidong Wang // SPDX-License-Identifier: GPL-2.0-only 2*14bd8572SWeidong Wang // 3*14bd8572SWeidong Wang // aw883_data_type.h -- The data type of the AW88395 chip 4*14bd8572SWeidong Wang // 5*14bd8572SWeidong Wang // Copyright (c) 2022-2023 AWINIC Technology CO., LTD 6*14bd8572SWeidong Wang // 7*14bd8572SWeidong Wang // Author: Bruce zhao <zhaolei@awinic.com> 8*14bd8572SWeidong Wang // 9*14bd8572SWeidong Wang 10*14bd8572SWeidong Wang #ifndef __AW88395_DATA_TYPE_H__ 11*14bd8572SWeidong Wang #define __AW88395_DATA_TYPE_H__ 12*14bd8572SWeidong Wang 13*14bd8572SWeidong Wang #define PROJECT_NAME_MAX (24) 14*14bd8572SWeidong Wang #define CUSTOMER_NAME_MAX (16) 15*14bd8572SWeidong Wang #define CFG_VERSION_MAX (4) 16*14bd8572SWeidong Wang #define DEV_NAME_MAX (16) 17*14bd8572SWeidong Wang #define PROFILE_STR_MAX (32) 18*14bd8572SWeidong Wang 19*14bd8572SWeidong Wang #define ACF_FILE_ID (0xa15f908) 20*14bd8572SWeidong Wang 21*14bd8572SWeidong Wang enum aw_cfg_hdr_version { 22*14bd8572SWeidong Wang AW88395_CFG_HDR_VER = 0x00000001, 23*14bd8572SWeidong Wang AW88395_CFG_HDR_VER_V1 = 0x01000000, 24*14bd8572SWeidong Wang }; 25*14bd8572SWeidong Wang 26*14bd8572SWeidong Wang enum aw_cfg_dde_type { 27*14bd8572SWeidong Wang AW88395_DEV_NONE_TYPE_ID = 0xFFFFFFFF, 28*14bd8572SWeidong Wang AW88395_DEV_TYPE_ID = 0x00000000, 29*14bd8572SWeidong Wang AW88395_SKT_TYPE_ID = 0x00000001, 30*14bd8572SWeidong Wang AW88395_DEV_DEFAULT_TYPE_ID = 0x00000002, 31*14bd8572SWeidong Wang }; 32*14bd8572SWeidong Wang 33*14bd8572SWeidong Wang enum aw_sec_type { 34*14bd8572SWeidong Wang ACF_SEC_TYPE_REG = 0, 35*14bd8572SWeidong Wang ACF_SEC_TYPE_DSP, 36*14bd8572SWeidong Wang ACF_SEC_TYPE_DSP_CFG, 37*14bd8572SWeidong Wang ACF_SEC_TYPE_DSP_FW, 38*14bd8572SWeidong Wang ACF_SEC_TYPE_HDR_REG, 39*14bd8572SWeidong Wang ACF_SEC_TYPE_HDR_DSP_CFG, 40*14bd8572SWeidong Wang ACF_SEC_TYPE_HDR_DSP_FW, 41*14bd8572SWeidong Wang ACF_SEC_TYPE_MULTIPLE_BIN, 42*14bd8572SWeidong Wang ACF_SEC_TYPE_SKT_PROJECT, 43*14bd8572SWeidong Wang ACF_SEC_TYPE_DSP_PROJECT, 44*14bd8572SWeidong Wang ACF_SEC_TYPE_MONITOR, 45*14bd8572SWeidong Wang ACF_SEC_TYPE_MAX, 46*14bd8572SWeidong Wang }; 47*14bd8572SWeidong Wang 48*14bd8572SWeidong Wang enum profile_data_type { 49*14bd8572SWeidong Wang AW88395_DATA_TYPE_REG = 0, 50*14bd8572SWeidong Wang AW88395_DATA_TYPE_DSP_CFG, 51*14bd8572SWeidong Wang AW88395_DATA_TYPE_DSP_FW, 52*14bd8572SWeidong Wang AW88395_DATA_TYPE_MAX, 53*14bd8572SWeidong Wang }; 54*14bd8572SWeidong Wang 55*14bd8572SWeidong Wang enum aw_prof_type { 56*14bd8572SWeidong Wang AW88395_PROFILE_MUSIC = 0, 57*14bd8572SWeidong Wang AW88395_PROFILE_VOICE, 58*14bd8572SWeidong Wang AW88395_PROFILE_VOIP, 59*14bd8572SWeidong Wang AW88395_PROFILE_RINGTONE, 60*14bd8572SWeidong Wang AW88395_PROFILE_RINGTONE_HS, 61*14bd8572SWeidong Wang AW88395_PROFILE_LOWPOWER, 62*14bd8572SWeidong Wang AW88395_PROFILE_BYPASS, 63*14bd8572SWeidong Wang AW88395_PROFILE_MMI, 64*14bd8572SWeidong Wang AW88395_PROFILE_FM, 65*14bd8572SWeidong Wang AW88395_PROFILE_NOTIFICATION, 66*14bd8572SWeidong Wang AW88395_PROFILE_RECEIVER, 67*14bd8572SWeidong Wang AW88395_PROFILE_MAX, 68*14bd8572SWeidong Wang }; 69*14bd8572SWeidong Wang 70*14bd8572SWeidong Wang enum aw_profile_status { 71*14bd8572SWeidong Wang AW88395_PROFILE_WAIT = 0, 72*14bd8572SWeidong Wang AW88395_PROFILE_OK, 73*14bd8572SWeidong Wang }; 74*14bd8572SWeidong Wang 75*14bd8572SWeidong Wang struct aw_cfg_hdr { 76*14bd8572SWeidong Wang u32 id; 77*14bd8572SWeidong Wang char project[PROJECT_NAME_MAX]; 78*14bd8572SWeidong Wang char custom[CUSTOMER_NAME_MAX]; 79*14bd8572SWeidong Wang char version[CFG_VERSION_MAX]; 80*14bd8572SWeidong Wang u32 author_id; 81*14bd8572SWeidong Wang u32 ddt_size; 82*14bd8572SWeidong Wang u32 ddt_num; 83*14bd8572SWeidong Wang u32 hdr_offset; 84*14bd8572SWeidong Wang u32 hdr_version; 85*14bd8572SWeidong Wang u32 reserved[3]; 86*14bd8572SWeidong Wang }; 87*14bd8572SWeidong Wang 88*14bd8572SWeidong Wang struct aw_cfg_dde { 89*14bd8572SWeidong Wang u32 type; 90*14bd8572SWeidong Wang char dev_name[DEV_NAME_MAX]; 91*14bd8572SWeidong Wang u16 dev_index; 92*14bd8572SWeidong Wang u16 dev_bus; 93*14bd8572SWeidong Wang u16 dev_addr; 94*14bd8572SWeidong Wang u16 dev_profile; 95*14bd8572SWeidong Wang u32 data_type; 96*14bd8572SWeidong Wang u32 data_size; 97*14bd8572SWeidong Wang u32 data_offset; 98*14bd8572SWeidong Wang u32 data_crc; 99*14bd8572SWeidong Wang u32 reserved[5]; 100*14bd8572SWeidong Wang }; 101*14bd8572SWeidong Wang 102*14bd8572SWeidong Wang struct aw_cfg_dde_v1 { 103*14bd8572SWeidong Wang u32 type; 104*14bd8572SWeidong Wang char dev_name[DEV_NAME_MAX]; 105*14bd8572SWeidong Wang u16 dev_index; 106*14bd8572SWeidong Wang u16 dev_bus; 107*14bd8572SWeidong Wang u16 dev_addr; 108*14bd8572SWeidong Wang u16 dev_profile; 109*14bd8572SWeidong Wang u32 data_type; 110*14bd8572SWeidong Wang u32 data_size; 111*14bd8572SWeidong Wang u32 data_offset; 112*14bd8572SWeidong Wang u32 data_crc; 113*14bd8572SWeidong Wang char dev_profile_str[PROFILE_STR_MAX]; 114*14bd8572SWeidong Wang u32 chip_id; 115*14bd8572SWeidong Wang u32 reserved[4]; 116*14bd8572SWeidong Wang }; 117*14bd8572SWeidong Wang 118*14bd8572SWeidong Wang struct aw_sec_data_desc { 119*14bd8572SWeidong Wang u32 len; 120*14bd8572SWeidong Wang u8 *data; 121*14bd8572SWeidong Wang }; 122*14bd8572SWeidong Wang 123*14bd8572SWeidong Wang struct aw_prof_desc { 124*14bd8572SWeidong Wang u32 id; 125*14bd8572SWeidong Wang u32 prof_st; 126*14bd8572SWeidong Wang char *prf_str; 127*14bd8572SWeidong Wang u32 fw_ver; 128*14bd8572SWeidong Wang struct aw_sec_data_desc sec_desc[AW88395_DATA_TYPE_MAX]; 129*14bd8572SWeidong Wang }; 130*14bd8572SWeidong Wang 131*14bd8572SWeidong Wang struct aw_all_prof_info { 132*14bd8572SWeidong Wang struct aw_prof_desc prof_desc[AW88395_PROFILE_MAX]; 133*14bd8572SWeidong Wang }; 134*14bd8572SWeidong Wang 135*14bd8572SWeidong Wang struct aw_prof_info { 136*14bd8572SWeidong Wang int count; 137*14bd8572SWeidong Wang int prof_type; 138*14bd8572SWeidong Wang char **prof_name_list; 139*14bd8572SWeidong Wang struct aw_prof_desc *prof_desc; 140*14bd8572SWeidong Wang }; 141*14bd8572SWeidong Wang 142*14bd8572SWeidong Wang #endif 143