Lines Matching defs:aw_dev

27 static int aw_dev_dsp_write_16bit(struct aw_device *aw_dev,
32 ret = regmap_write(aw_dev->regmap, AW88399_DSPMADD_REG, dsp_addr);
34 dev_err(aw_dev->dev, "%s write addr error, ret=%d", __func__, ret);
38 ret = regmap_write(aw_dev->regmap, AW88399_DSPMDAT_REG, (u16)dsp_data);
40 dev_err(aw_dev->dev, "%s write data error, ret=%d", __func__, ret);
47 static int aw_dev_dsp_read_16bit(struct aw_device *aw_dev,
53 ret = regmap_write(aw_dev->regmap, AW88399_DSPMADD_REG, dsp_addr);
55 dev_err(aw_dev->dev, "%s write error, ret=%d", __func__, ret);
59 ret = regmap_read(aw_dev->regmap, AW88399_DSPMDAT_REG, &temp_data);
61 dev_err(aw_dev->dev, "%s read error, ret=%d", __func__, ret);
69 static int aw_dev_dsp_read_32bit(struct aw_device *aw_dev,
75 ret = regmap_write(aw_dev->regmap, AW88399_DSPMADD_REG, dsp_addr);
77 dev_err(aw_dev->dev, "%s write error, ret=%d", __func__, ret);
81 ret = regmap_read(aw_dev->regmap, AW88399_DSPMDAT_REG, &temp_data);
83 dev_err(aw_dev->dev, "%s read error, ret=%d", __func__, ret);
88 ret = regmap_read(aw_dev->regmap, AW88399_DSPMDAT_REG, &temp_data);
90 dev_err(aw_dev->dev, "%s read error, ret=%d", __func__, ret);
98 static int aw_dev_dsp_read(struct aw_device *aw_dev,
104 mutex_lock(&aw_dev->dsp_lock);
107 ret = aw_dev_dsp_read_16bit(aw_dev, dsp_addr, dsp_data);
109 dev_err(aw_dev->dev, "read dsp_addr[0x%x] 16-bit dsp_data[0x%x] failed",
113 ret = aw_dev_dsp_read_32bit(aw_dev, dsp_addr, dsp_data);
115 dev_err(aw_dev->dev, "read dsp_addr[0x%x] 32r-bit dsp_data[0x%x] failed",
119 dev_err(aw_dev->dev, "data type[%d] unsupported", data_type);
125 if (regmap_read(aw_dev->regmap, AW88399_ID_REG, &reg_value))
126 dev_err(aw_dev->dev, "%s fail to clear chip state. ret=%d\n", __func__, ret);
127 mutex_unlock(&aw_dev->dsp_lock);
132 static void aw_dev_pwd(struct aw_device *aw_dev, bool pwd)
137 ret = regmap_update_bits(aw_dev->regmap, AW88399_SYSCTRL_REG,
140 ret = regmap_update_bits(aw_dev->regmap, AW88399_SYSCTRL_REG,
144 dev_dbg(aw_dev->dev, "%s failed", __func__);
147 static void aw_dev_get_int_status(struct aw_device *aw_dev, unsigned short *int_status)
152 ret = regmap_read(aw_dev->regmap, AW88399_SYSINT_REG, &reg_val);
154 dev_err(aw_dev->dev, "read interrupt reg fail, ret=%d", ret);
158 dev_dbg(aw_dev->dev, "read interrupt reg=0x%04x", *int_status);
161 static void aw_dev_clear_int_status(struct aw_device *aw_dev)
166 aw_dev_get_int_status(aw_dev, &int_status);
168 aw_dev_get_int_status(aw_dev, &int_status);
170 dev_dbg(aw_dev->dev, "int status(%d) is not cleaned.\n", int_status);
173 static int aw_dev_get_iis_status(struct aw_device *aw_dev)
178 ret = regmap_read(aw_dev->regmap, AW88399_SYSST_REG, &reg_val);
182 dev_err(aw_dev->dev, "check pll lock fail, reg_val:0x%04x", reg_val);
189 static int aw_dev_check_mode1_pll(struct aw_device *aw_dev)
194 ret = aw_dev_get_iis_status(aw_dev);
196 dev_err(aw_dev->dev, "mode1 iis signal check error");
206 static int aw_dev_check_mode2_pll(struct aw_device *aw_dev)
211 ret = regmap_read(aw_dev->regmap, AW88399_PLLCTRL2_REG, &reg_val);
217 dev_dbg(aw_dev->dev, "CCO_MUX is already divider");
222 ret = regmap_update_bits(aw_dev->regmap, AW88399_PLLCTRL2_REG,
228 ret = aw_dev_get_iis_status(aw_dev);
230 dev_err(aw_dev->dev, "mode2 iis signal check error");
238 regmap_update_bits(aw_dev->regmap, AW88399_PLLCTRL2_REG,
243 ret = aw_dev_get_iis_status(aw_dev);
245 dev_err(aw_dev->dev, "mode2 switch to mode1, iis signal check error");
256 static int aw_dev_check_syspll(struct aw_device *aw_dev)
260 ret = aw_dev_check_mode1_pll(aw_dev);
262 dev_dbg(aw_dev->dev, "mode1 check iis failed try switch to mode2 check");
263 ret = aw_dev_check_mode2_pll(aw_dev);
265 dev_err(aw_dev->dev, "mode2 check iis failed");
273 static int aw_dev_check_sysst(struct aw_device *aw_dev)
279 ret = regmap_read(aw_dev->regmap, AW88399_PWMCTRL3_REG, &reg_val);
289 ret = regmap_read(aw_dev->regmap, AW88399_SYSST_REG, &reg_val);
294 dev_err(aw_dev->dev, "check sysst fail, cnt=%d, reg_val=0x%04x, check:0x%x",
305 static void aw_dev_amppd(struct aw_device *aw_dev, bool amppd)
310 ret = regmap_update_bits(aw_dev->regmap, AW88399_SYSCTRL_REG,
313 ret = regmap_update_bits(aw_dev->regmap, AW88399_SYSCTRL_REG,
317 dev_dbg(aw_dev->dev, "%s failed", __func__);
320 static void aw_dev_dsp_enable(struct aw_device *aw_dev, bool is_enable)
325 ret = regmap_update_bits(aw_dev->regmap, AW88399_SYSCTRL_REG,
328 ret = regmap_update_bits(aw_dev->regmap, AW88399_SYSCTRL_REG,
332 dev_dbg(aw_dev->dev, "%s failed\n", __func__);
338 struct aw_device *aw_dev = aw88399->aw_pa;
342 ret = regmap_read(aw_dev->regmap, AW88399_EFRH4_REG, &reg_val);
347 ret = regmap_read(aw_dev->regmap, AW88399_EFRL4_REG, &reg_val);
367 struct aw_device *aw_dev = aw88399->aw_pa;
371 ret = regmap_read(aw_dev->regmap, AW88399_EFRH3_REG, &reg_val);
377 ret = regmap_read(aw_dev->regmap, AW88399_EFRL3_REG, &reg_val);
398 struct aw_device *aw_dev = aw88399->aw_pa;
402 ret = regmap_read(aw_dev->regmap, AW88399_EFRH2_REG, &reg_val);
407 ret = regmap_read(aw_dev->regmap, AW88399_EFRL2_REG, &reg_val);
429 struct aw_device *aw_dev = aw88399->aw_pa;
436 ret = regmap_read(aw_dev->regmap, AW88399_VSNCTRL1_REG, &vsense_value);
444 dev_err(aw_dev->dev, "get icalk failed\n");
465 dev_err(aw_dev->dev, "%s: unsupport vsense\n", __func__);
475 regmap_write(aw_dev->regmap, AW88399_DSPVCALB_REG, reg_val);
482 struct aw_device *aw_dev =
488 if ((aw_dev->cali_desc.cali_re >= AW88399_CALI_RE_MAX) ||
489 (aw_dev->cali_desc.cali_re <= AW88399_CALI_RE_MIN))
492 cali_re = AW88399_SHOW_RE_TO_DSP_RE((aw_dev->cali_desc.cali_re +
493 aw_dev->cali_desc.ra), AW88399_DSP_RE_SHIFT);
498 ret = regmap_write(aw_dev->regmap, AW88399_ACR1_REG, re_hbits);
500 dev_err(aw_dev->dev, "set cali re error");
504 ret = regmap_write(aw_dev->regmap, AW88399_ACR2_REG, re_lbits);
506 dev_err(aw_dev->dev, "set cali re error");
511 static int aw_dev_fw_crc_check(struct aw_device *aw_dev)
518 fw_len_val = ((aw_dev->dsp_fw_len / AW_FW_ADDR_LEN) - 1) + AW88399_CRC_FW_BASE_ADDR;
521 ret = regmap_update_bits(aw_dev->regmap, AW88399_CRCCTRL_REG,
526 ret = regmap_update_bits(aw_dev->regmap, AW88399_CRCCTRL_REG,
532 regmap_read(aw_dev->regmap, AW88399_HAGCST_REG, &reg_val);
539 ret = regmap_update_bits(aw_dev->regmap, AW88399_CRCCTRL_REG,
545 dev_err(aw_dev->dev, "%s failed, check_val 0x%x != 0x%x",
553 static int aw_dev_cfg_crc_check(struct aw_device *aw_dev)
560 cfg_len_val = ((aw_dev->dsp_cfg_len / AW_FW_ADDR_LEN) - 1) + AW88399_CRC_CFG_BASE_ADDR;
563 ret = regmap_update_bits(aw_dev->regmap, AW88399_CRCCTRL_REG,
569 ret = regmap_update_bits(aw_dev->regmap, AW88399_CRCCTRL_REG,
577 ret = regmap_read(aw_dev->regmap, AW88399_HAGCST_REG, &reg_val);
584 ret = regmap_update_bits(aw_dev->regmap, AW88399_CRCCTRL_REG,
590 dev_err(aw_dev->dev, "crc_check failed, check val 0x%x != 0x%x",
600 struct aw_device *aw_dev = aw88399->aw_pa;
603 ret = regmap_update_bits(aw_dev->regmap, AW88399_I2SCFG1_REG,
608 ret = aw_dev_fw_crc_check(aw_dev);
610 dev_err(aw_dev->dev, "fw_crc_check failed\n");
614 ret = aw_dev_cfg_crc_check(aw_dev);
616 dev_err(aw_dev->dev, "cfg_crc_check failed\n");
620 ret = regmap_write(aw_dev->regmap, AW88399_CRCCTRL_REG, aw88399->crc_init_val);
624 ret = regmap_update_bits(aw_dev->regmap, AW88399_I2SCFG1_REG,
630 regmap_update_bits(aw_dev->regmap, AW88399_I2SCFG1_REG,
635 static void aw_dev_i2s_tx_enable(struct aw_device *aw_dev, bool flag)
640 ret = regmap_update_bits(aw_dev->regmap, AW88399_I2SCTRL3_REG,
643 ret = regmap_update_bits(aw_dev->regmap, AW88399_I2SCFG1_REG,
647 dev_dbg(aw_dev->dev, "%s failed", __func__);
650 static int aw_dev_get_dsp_status(struct aw_device *aw_dev)
655 ret = regmap_read(aw_dev->regmap, AW88399_WDT_REG, &reg_val);
664 static int aw_dev_dsp_check(struct aw_device *aw_dev)
668 switch (aw_dev->dsp_cfg) {
670 dev_dbg(aw_dev->dev, "dsp bypass");
674 aw_dev_dsp_enable(aw_dev, false);
675 aw_dev_dsp_enable(aw_dev, true);
678 ret = aw_dev_get_dsp_status(aw_dev);
680 dev_err(aw_dev->dev, "dsp wdt status error=%d", ret);
686 dev_err(aw_dev->dev, "unknown dsp cfg=%d", aw_dev->dsp_cfg);
694 static int aw_dev_set_volume(struct aw_device *aw_dev, unsigned int value)
696 struct aw_volume_desc *vol_desc = &aw_dev->volume_desc;
703 ret = regmap_read(aw_dev->regmap, AW88399_SYSCTRL2_REG, &reg_value);
707 dev_dbg(aw_dev->dev, "value 0x%x , reg:0x%x", value, real_value);
711 ret = regmap_write(aw_dev->regmap, AW88399_SYSCTRL2_REG, real_value);
716 static void aw_dev_fade_in(struct aw_device *aw_dev)
718 struct aw_volume_desc *desc = &aw_dev->volume_desc;
720 int fade_step = aw_dev->fade_step;
723 if (fade_step == 0 || aw_dev->fade_in_time == 0) {
724 aw_dev_set_volume(aw_dev, fade_in_vol);
729 aw_dev_set_volume(aw_dev, i);
730 usleep_range(aw_dev->fade_in_time, aw_dev->fade_in_time + 10);
734 aw_dev_set_volume(aw_dev, fade_in_vol);
737 static void aw_dev_fade_out(struct aw_device *aw_dev)
739 struct aw_volume_desc *desc = &aw_dev->volume_desc;
740 int fade_step = aw_dev->fade_step;
743 if (fade_step == 0 || aw_dev->fade_out_time == 0) {
744 aw_dev_set_volume(aw_dev, AW88399_MUTE_VOL);
749 aw_dev_set_volume(aw_dev, i);
750 usleep_range(aw_dev->fade_out_time, aw_dev->fade_out_time + 10);
754 aw_dev_set_volume(aw_dev, AW88399_MUTE_VOL);
755 usleep_range(aw_dev->fade_out_time, aw_dev->fade_out_time + 10);
759 static void aw88399_dev_mute(struct aw_device *aw_dev, bool is_mute)
762 aw_dev_fade_out(aw_dev);
763 regmap_update_bits(aw_dev->regmap, AW88399_SYSCTRL_REG,
766 regmap_update_bits(aw_dev->regmap, AW88399_SYSCTRL_REG,
768 aw_dev_fade_in(aw_dev);
774 struct aw_device *aw_dev = aw88399->aw_pa;
777 regmap_update_bits(aw_dev->regmap, AW88399_DBGCTRL_REG,
780 regmap_update_bits(aw_dev->regmap, AW88399_DBGCTRL_REG,
786 struct aw_device *aw_dev = aw88399->aw_pa;
789 if (aw_dev->status == AW88399_DEV_PW_ON) {
790 dev_dbg(aw_dev->dev, "already power on");
797 aw_dev_pwd(aw_dev, false);
800 ret = aw_dev_check_syspll(aw_dev);
802 dev_err(aw_dev->dev, "pll check failed cannot start");
807 aw_dev_amppd(aw_dev, false);
811 ret = aw_dev_check_sysst(aw_dev);
813 dev_err(aw_dev->dev, "sysst check failed");
817 if (aw_dev->dsp_cfg == AW88399_DEV_DSP_WORK) {
820 dev_err(aw_dev->dev, "dsp crc check failed");
823 aw_dev_dsp_enable(aw_dev, false);
825 aw_dev_update_cali_re(&aw_dev->cali_desc);
827 ret = aw_dev_dsp_check(aw_dev);
829 dev_err(aw_dev->dev, "dsp status check failed");
833 dev_dbg(aw_dev->dev, "start pa with dsp bypass");
837 aw_dev_i2s_tx_enable(aw_dev, true);
843 aw88399_dev_mute(aw_dev, false);
845 aw_dev_clear_int_status(aw_dev);
846 aw_dev->status = AW88399_DEV_PW_ON;
852 aw_dev_dsp_enable(aw_dev, false);
854 aw_dev_clear_int_status(aw_dev);
855 aw_dev_amppd(aw_dev, true);
857 aw_dev_pwd(aw_dev, true);
858 aw_dev->status = AW88399_DEV_PW_OFF;
863 static int aw_dev_dsp_update_container(struct aw_device *aw_dev,
869 mutex_lock(&aw_dev->dsp_lock);
870 ret = regmap_write(aw_dev->regmap, AW88399_DSPMADD_REG, base);
880 ret = regmap_raw_write(aw_dev->regmap, AW88399_DSPMDAT_REG,
885 mutex_unlock(&aw_dev->dsp_lock);
890 mutex_unlock(&aw_dev->dsp_lock);
896 struct aw_device *aw_dev =
901 ret = aw_dev_dsp_read(aw_dev, AW88399_DSP_REG_CFG_ADPZ_RA,
904 dev_err(aw_dev->dev, "read ra error");
914 static int aw_dev_dsp_update_cfg(struct aw_device *aw_dev,
919 dev_dbg(aw_dev->dev, "dsp config len:%d", len);
922 dev_err(aw_dev->dev, "dsp config data is null or len is 0");
926 ret = aw_dev_dsp_update_container(aw_dev, data, len, AW88399_DSP_CFG_ADDR);
930 aw_dev->dsp_cfg_len = len;
932 ret = aw_dev_get_ra(&aw_dev->cali_desc);
937 static int aw_dev_dsp_update_fw(struct aw_device *aw_dev,
942 dev_dbg(aw_dev->dev, "dsp firmware len:%d", len);
945 dev_err(aw_dev->dev, "dsp firmware data is null or len is 0");
949 aw_dev->dsp_fw_len = len;
950 ret = aw_dev_dsp_update_container(aw_dev, data, len, AW88399_DSP_FW_ADDR);
955 static int aw_dev_check_sram(struct aw_device *aw_dev)
959 mutex_lock(&aw_dev->dsp_lock);
961 aw_dev_dsp_read_16bit(aw_dev, AW88399_DSP_ROM_CHECK_ADDR, &reg_val);
963 dev_err(aw_dev->dev, "check dsp rom failed, read[0x%x] != check[0x%x]",
969 aw_dev_dsp_write_16bit(aw_dev, AW88399_DSP_CFG_ADDR, AW88399_DSP_ODD_NUM_BIT_TEST);
970 aw_dev_dsp_read_16bit(aw_dev, AW88399_DSP_CFG_ADDR, &reg_val);
972 dev_err(aw_dev->dev, "check dsp cfg failed, read[0x%x] != write[0x%x]",
976 mutex_unlock(&aw_dev->dsp_lock);
980 mutex_unlock(&aw_dev->dsp_lock);
984 static void aw_dev_select_memclk(struct aw_device *aw_dev, unsigned char flag)
990 ret = regmap_update_bits(aw_dev->regmap, AW88399_DBGCTRL_REG,
994 dev_err(aw_dev->dev, "memclk select pll failed");
997 ret = regmap_update_bits(aw_dev->regmap, AW88399_DBGCTRL_REG,
1001 dev_err(aw_dev->dev, "memclk select OSC failed");
1004 dev_err(aw_dev->dev, "unknown memclk config, flag=0x%x", flag);
1009 static void aw_dev_get_cur_mode_st(struct aw_device *aw_dev)
1011 struct aw_profctrl_desc *profctrl_desc = &aw_dev->profctrl_desc;
1015 ret = regmap_read(aw_dev->regmap, AW88399_SYSCTRL_REG, &reg_val);
1017 dev_dbg(aw_dev->dev, "%s failed", __func__);
1029 struct aw_device *aw_dev = aw88399->aw_pa;
1030 struct aw_volume_desc *vol_desc = &aw_dev->volume_desc;
1040 dev_err(aw_dev->dev, "data len:%d unsupported", data_len);
1055 aw_dev->dsp_cfg = AW88399_DEV_DSP_BYPASS;
1057 aw_dev->dsp_cfg = AW88399_DEV_DSP_WORK;
1073 aw_dev->volume_desc.init_volume = read_vol;
1088 ret = regmap_write(aw_dev->regmap, reg_addr, reg_val);
1093 aw_dev_pwd(aw_dev, false);
1096 aw_dev_get_cur_mode_st(aw_dev);
1098 if (aw_dev->prof_cur != aw_dev->prof_index)
1101 aw_dev_set_volume(aw_dev, vol_desc->ctl_volume);
1123 static int aw88399_dev_get_prof_name(struct aw_device *aw_dev, int index, char **prof_name)
1125 struct aw_prof_info *prof_info = &aw_dev->prof_info;
1128 if ((index >= aw_dev->prof_info.count) || (index < 0)) {
1129 dev_err(aw_dev->dev, "index[%d] overflow count[%d]",
1130 index, aw_dev->prof_info.count);
1134 prof_desc = &aw_dev->prof_info.prof_desc[index];
1141 static int aw88399_dev_get_prof_data(struct aw_device *aw_dev, int index,
1144 if ((index >= aw_dev->prof_info.count) || (index < 0)) {
1145 dev_err(aw_dev->dev, "%s: index[%d] overflow count[%d]\n",
1146 __func__, index, aw_dev->prof_info.count);
1150 *prof_desc = &aw_dev->prof_info.prof_desc[index];
1157 struct aw_device *aw_dev = aw88399->aw_pa;
1163 if ((aw_dev->prof_cur == aw_dev->prof_index) &&
1165 dev_dbg(aw_dev->dev, "scene no change, not update");
1169 if (aw_dev->fw_status == AW88399_DEV_FW_FAILED) {
1170 dev_err(aw_dev->dev, "fw status[%d] error", aw_dev->fw_status);
1174 ret = aw88399_dev_get_prof_name(aw_dev, aw_dev->prof_index, &prof_name);
1178 dev_dbg(aw_dev->dev, "start update %s", prof_name);
1180 ret = aw88399_dev_get_prof_data(aw_dev, aw_dev->prof_index, &prof_index_desc);
1189 dev_err(aw_dev->dev, "update reg failed");
1193 aw88399_dev_mute(aw_dev, true);
1195 if (aw_dev->dsp_cfg == AW88399_DEV_DSP_WORK)
1196 aw_dev_dsp_enable(aw_dev, false);
1198 aw_dev_select_memclk(aw_dev, AW88399_DEV_MEMCLK_OSC);
1200 ret = aw_dev_check_sram(aw_dev);
1202 dev_err(aw_dev->dev, "check sram failed");
1207 dev_dbg(aw_dev->dev, "fw_ver: [%x]", prof_index_desc->fw_ver);
1208 ret = aw_dev_dsp_update_fw(aw_dev, sec_desc[AW88395_DATA_TYPE_DSP_FW].data,
1211 dev_err(aw_dev->dev, "update dsp fw failed");
1217 ret = aw_dev_dsp_update_cfg(aw_dev, sec_desc[AW88395_DATA_TYPE_DSP_CFG].data,
1220 dev_err(aw_dev->dev, "update dsp cfg failed");
1224 aw_dev_select_memclk(aw_dev, AW88399_DEV_MEMCLK_PLL);
1226 aw_dev->prof_cur = aw_dev->prof_index;
1231 aw_dev_select_memclk(aw_dev, AW88399_DEV_MEMCLK_PLL);
1289 static int aw_dev_check_sysint(struct aw_device *aw_dev)
1293 aw_dev_get_int_status(aw_dev, &reg_val);
1295 dev_err(aw_dev->dev, "pa stop check fail:0x%04x", reg_val);
1302 static int aw88399_stop(struct aw_device *aw_dev)
1305 &aw_dev->prof_info.prof_desc[aw_dev->prof_cur].sec_desc[AW88395_DATA_TYPE_DSP_CFG];
1307 &aw_dev->prof_info.prof_desc[aw_dev->prof_cur].sec_desc[AW88395_DATA_TYPE_DSP_FW];
1310 if (aw_dev->status == AW88399_DEV_PW_OFF) {
1311 dev_dbg(aw_dev->dev, "already power off");
1315 aw_dev->status = AW88399_DEV_PW_OFF;
1317 aw88399_dev_mute(aw_dev, true);
1320 aw_dev_i2s_tx_enable(aw_dev, false);
1323 int_st = aw_dev_check_sysint(aw_dev);
1325 aw_dev_dsp_enable(aw_dev, false);
1327 aw_dev_amppd(aw_dev, true);
1330 aw_dev_select_memclk(aw_dev, AW88399_DEV_MEMCLK_OSC);
1331 aw_dev_dsp_update_fw(aw_dev, dsp_fw->data, dsp_fw->len);
1332 aw_dev_dsp_update_cfg(aw_dev, dsp_cfg->data, dsp_cfg->len);
1333 aw_dev_select_memclk(aw_dev, AW88399_DEV_MEMCLK_PLL);
1336 aw_dev_pwd(aw_dev, true);
1367 struct aw_device *aw_dev = aw88399->aw_pa;
1369 ucontrol->value.integer.value[0] = aw_dev->fade_in_time;
1381 struct aw_device *aw_dev = aw88399->aw_pa;
1389 if (time != aw_dev->fade_in_time) {
1390 aw_dev->fade_in_time = time;
1402 struct aw_device *aw_dev = aw88399->aw_pa;
1404 ucontrol->value.integer.value[0] = aw_dev->fade_out_time;
1416 struct aw_device *aw_dev = aw88399->aw_pa;
1423 if (time != aw_dev->fade_out_time) {
1424 aw_dev->fade_out_time = time;
1431 static int aw88399_dev_set_profile_index(struct aw_device *aw_dev, int index)
1434 if ((index >= aw_dev->prof_info.count) || (index < 0))
1437 if (aw_dev->prof_index == index)
1440 aw_dev->prof_index = index;
1441 dev_dbg(aw_dev->dev, "set prof[%s]",
1442 aw_dev->prof_info.prof_name_list[aw_dev->prof_info.prof_desc[index].id]);
1593 struct aw_device *aw_dev = aw88399->aw_pa;
1595 ucontrol->value.integer.value[0] = aw_dev->cali_desc.cali_re;
1607 struct aw_device *aw_dev = aw88399->aw_pa;
1614 if (aw_dev->cali_desc.cali_re != value) {
1615 aw_dev->cali_desc.cali_re = value;
1624 struct aw_device *aw_dev = aw88399->aw_pa;
1627 ret = aw88395_dev_cfg_load(aw_dev, aw_cfg);
1629 dev_err(aw_dev->dev, "aw_dev acf parse failed");
1632 aw_dev->fade_in_time = AW88399_1000_US / 10;
1633 aw_dev->fade_out_time = AW88399_1000_US >> 1;
1634 aw_dev->prof_cur = aw_dev->prof_info.prof_desc[0].id;
1635 aw_dev->prof_index = aw_dev->prof_info.prof_desc[0].id;
1639 dev_err(aw_dev->dev, "fw update failed ret = %d\n", ret);
1643 aw88399_dev_mute(aw_dev, true);
1646 aw_dev_i2s_tx_enable(aw_dev, false);
1650 aw_dev_amppd(aw_dev, true);
1653 aw_dev_dsp_enable(aw_dev, false);
1655 aw_dev_pwd(aw_dev, true);
1801 static void aw88399_parse_channel_dt(struct aw_device *aw_dev)
1803 struct device_node *np = aw_dev->dev->of_node;
1807 aw_dev->channel = channel_value;
1812 struct aw_device *aw_dev;
1827 aw_dev = devm_kzalloc(&i2c->dev, sizeof(*aw_dev), GFP_KERNEL);
1828 if (!aw_dev)
1830 aw88399->aw_pa = aw_dev;
1832 aw_dev->i2c = i2c;
1833 aw_dev->dev = &i2c->dev;
1834 aw_dev->regmap = regmap;
1835 mutex_init(&aw_dev->dsp_lock);
1837 aw_dev->chip_id = chip_id;
1838 aw_dev->acf = NULL;
1839 aw_dev->prof_info.prof_desc = NULL;
1840 aw_dev->prof_info.count = 0;
1841 aw_dev->prof_info.prof_type = AW88395_DEV_NONE_TYPE_ID;
1842 aw_dev->channel = AW88399_DEV_DEFAULT_CH;
1843 aw_dev->fw_status = AW88399_DEV_FW_FAILED;
1845 aw_dev->fade_step = AW88399_VOLUME_STEP_DB;
1846 aw_dev->volume_desc.ctl_volume = AW88399_VOL_DEFAULT_VALUE;
1848 aw88399_parse_channel_dt(aw_dev);