#ifndef _SMART_AMP_H #define _SMART_AMP_H #include #include #include #include #define SMART_AMP /* Below should be same as in aDSP code */ #define TI_SMARTPA_VENDOR_ID 1234 #define MAX_DSP_PARAM_INDEX 600 #define TAS_PAYLOAD_SIZE 14 #define TAS_GET_PARAM 1 #define TAS_SET_PARAM 0 #define MAX_CHANNELS 2 #define LEFT 0 #define RIGHT 1 #define CHANNEL0 1 #define CHANNEL1 2 #define TRUE 1 #define FALSE 0 #define SLAVE1 0x98 #define SLAVE2 0x9A #define SLAVE3 0x9C #define SLAVE4 0x9E #define TAS_SA_IS_SPL_IDX(X) ((((X) >= 3810) && ((X) < 3899)) ? 1 : 0) #define TAS_CALC_PARAM_IDX(INDEX, LENGTH, CHANNEL) ((INDEX ) | (LENGTH << 16) | (CHANNEL << 24)) #define TAS_SA_GET_F0 3810 #define TAS_SA_GET_Q 3811 #define TAS_SA_GET_TV 3812 #define TAS_SA_GET_RE 3813 #define TAS_SA_CALIB_INIT 3814 #define TAS_SA_CALIB_DEINIT 3815 #define TAS_SA_SET_RE 3816 #define TAS_SA_SET_PROFILE 3819 #define TAS_SA_GET_STATUS 3821 #define TAS_SA_SET_SPKID 3822 #define TAS_SA_SET_TCAL 3823 #define TAS_SA_EXC_TEMP_STAT 3824 #define TAS_SA_IV_VBAT_FMT 3825 #define TAS_SA_VALID_INIT 3831 #define TAS_SA_VALID_DEINIT 3832 #define TAS_SA_GET_VALID_STATUS 3833 #define TAS_SA_GET_RE_LOW 398 #define TAS_SA_GET_RE_HIGH 399 #define VALIDATION_SUCCESS 0xC00DC00D #define WR_DATA 0 #define RD_DATA 1 typedef enum { IV_SENSE_FORMAT_NO_VBAT = 0, IV_SENSE_FORMAT_12_BIT_WITH_8BIT_VBAT = 1, } ti_smartamp_iv_vbat_format_t; struct afe_smartamp_set_params_t { uint32_t payload[TAS_PAYLOAD_SIZE]; } __packed; struct ti_smartpa_data { uint32_t payload[TAS_PAYLOAD_SIZE]; }; int ti_smartpa_read(void *prm_data, int offset, int size); int ti_smartpa_write(void *prm_data, int offset, int size); int afe_smartamp_algo_ctrl(u8 *user_data, uint32_t param_id, uint8_t get_set, uint32_t length); void tas25xx_parse_algo_dt(struct device_node *np); bool tas25xx_set_iv_bit_fomat(int iv_data_with, int vbat, int update_now); void tas25xx_send_algo_calibration(void); void tas25xx_update_big_data(void); void smartamp_add_algo(uint8_t channels); void smartamp_remove_algo(void); #endif /*_SMART_AMP_H*/