| #ifndef _SMART_AMP_H |
| #define _SMART_AMP_H |
| |
| #include <linux/types.h> |
| #include <sound/samsung/abox.h> |
| #include <sound/soc.h> |
| #include <linux/of.h> |
| |
| #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*/ |