Lines Matching +full:codec +full:- +full:aif1
5 * SPDX-License-Identifier: GPL-2.0+
34 /* codec private data */
36 enum wm8994_type type; /* codec type of wolfson */
103 * @return int value 0 for success, -1 in case of error.
114 return -1; in wm8994_i2c_read()
127 * @param reg codec register
141 return -1; in wm8994_update_bits()
158 * @return -1 for error and 0 Success.
182 return -1; in wm8994_set_fmt()
193 return -1; in wm8994_set_fmt()
212 return -1; in wm8994_set_fmt()
228 return -1; in wm8994_set_fmt()
250 return -1; in wm8994_set_fmt()
255 return -1; in wm8994_set_fmt()
265 debug("%s: codec register access error\n", __func__); in wm8994_set_fmt()
266 return -1; in wm8994_set_fmt()
281 * @return -1 for error and 0 Success.
292 int aif1 = 0; in wm8994_hw_params() local
295 int id = aif_id - 1; in wm8994_hw_params()
314 return -1; in wm8994_hw_params()
324 aif1 |= 0x20; in wm8994_hw_params()
328 aif1 |= 0x40; in wm8994_hw_params()
332 aif1 |= 0x60; in wm8994_hw_params()
335 return -1; in wm8994_hw_params()
346 return -1; in wm8994_hw_params()
354 - wm8994->aifclk[id]); in wm8994_hw_params()
358 - wm8994->aifclk[id]); in wm8994_hw_params()
375 cur_val = (wm8994->aifclk[id] * 10 / bclk_divs[i]) - bclk_rate; in wm8994_hw_params()
384 return -1; in wm8994_hw_params()
387 bclk_rate = wm8994->aifclk[id] * 10 / bclk_divs[best]; in wm8994_hw_params()
391 debug("%s: AIF1 register read Failed\n", __func__); in wm8994_hw_params()
392 return -1; in wm8994_hw_params()
398 if (wm8994->aifclk[id] == 0) { in wm8994_hw_params()
400 return -1; in wm8994_hw_params()
403 ret = wm8994_update_bits(aif1_reg, WM8994_AIF1_WL_MASK, aif1); in wm8994_hw_params()
412 debug("%s: codec register access error\n", __func__); in wm8994_hw_params()
413 return -1; in wm8994_hw_params()
425 * @return -1 for error and 0 Success.
435 if (aif-1) in configure_aif_clock()
440 switch (wm8994->sysclk[aif-1]) { in configure_aif_clock()
443 rate = wm8994->mclk[0]; in configure_aif_clock()
448 rate = wm8994->mclk[1]; in configure_aif_clock()
453 rate = wm8994->fll[0].out; in configure_aif_clock()
458 rate = wm8994->fll[1].out; in configure_aif_clock()
463 __func__, wm8994->sysclk[aif-1]); in configure_aif_clock()
464 return -1; in configure_aif_clock()
473 wm8994->aifclk[aif-1] = rate; in configure_aif_clock()
490 debug("%s: codec register access error\n", __func__); in configure_aif_clock()
491 return -1; in configure_aif_clock()
505 * @return -1 for error and 0 success.
513 wm8994->sysclk[aif_id - 1] = clk_id; in wm8994_set_sysclk()
517 wm8994->mclk[0] = freq; in wm8994_set_sysclk()
526 wm8994->mclk[1] = freq; in wm8994_set_sysclk()
535 * Special case - a division (times 10) is given and in wm8994_set_sysclk()
545 return -1; in wm8994_set_sysclk()
559 return -1; in wm8994_set_sysclk()
565 debug("%s: codec register access error\n", __func__); in wm8994_set_sysclk()
566 return -1; in wm8994_set_sysclk()
575 * @returns -1 for error and 0 Success.
608 debug("%s: codec register access error\n", __func__); in wm8994_init_volume_aif2_dac1()
609 return -1; in wm8994_init_volume_aif2_dac1()
616 * Initializes Volume for AIF1 to HP path
618 * @returns -1 for error and 0 Success.
640 debug("%s: codec register access error\n", __func__); in wm8994_init_volume_aif1_dac1()
641 return -1; in wm8994_init_volume_aif1_dac1()
648 * Intialise wm8994 codec device
652 * @returns -1 for error and 0 Success.
671 debug("Device registered as type %d\n", wm8994->type); in wm8994_device_init()
672 wm8994->type = WM8994; in wm8994_device_init()
675 ret = -1; in wm8994_device_init()
684 wm8994->revision = reg_data; in wm8994_device_init()
685 debug("%s revision %c\n", devname, 'A' + wm8994->revision); in wm8994_device_init()
713 /* Power enable for AIF1 and DAC1 */ in wm8994_device_init()
754 /* Routing AIF1 to DAC1 */ in wm8994_device_init()
761 /* GPIO Settings for AIF1 */ in wm8994_device_init()
799 debug("%s: Codec chip init ok\n", __func__); in wm8994_device_init()
802 debug("%s: Codec chip init error\n", __func__); in wm8994_device_init()
803 return -1; in wm8994_device_init()
809 * @param pcodec_info codec information structure
822 /* Get the node from FDT for codec */ in get_codec_values()
825 debug("EXYNOS_SOUND: No node for codec in device tree\n"); in get_codec_values()
827 return -1; in get_codec_values()
833 return -1; in get_codec_values()
839 pcodec_info->i2c_bus = i2c_get_bus_num_fdt(parent); in get_codec_values()
840 error |= pcodec_info->i2c_bus; in get_codec_values()
841 debug("i2c bus = %d\n", pcodec_info->i2c_bus); in get_codec_values()
842 pcodec_info->i2c_dev_addr = fdtdec_get_int(blob, node, in get_codec_values()
844 error |= pcodec_info->i2c_dev_addr; in get_codec_values()
845 debug("i2c dev addr = %d\n", pcodec_info->i2c_dev_addr); in get_codec_values()
849 return -1; in get_codec_values()
852 pcodec_info->i2c_bus = AUDIO_I2C_BUS; in get_codec_values()
853 pcodec_info->i2c_dev_addr = AUDIO_I2C_REG; in get_codec_values()
854 debug("i2c dev addr = %d\n", pcodec_info->i2c_dev_addr); in get_codec_values()
857 pcodec_info->codec_type = CODEC_WM_8994; in get_codec_values()
859 if (error == -1) { in get_codec_values()
860 debug("fail to get wm8994 codec node properties\n"); in get_codec_values()
861 return -1; in get_codec_values()
875 /* Get the codec Values */ in wm8994_init()
877 debug("FDT Codec values failed\n"); in wm8994_init()
878 return -1; in wm8994_init()
882 g_wm8994_i2c_dev_addr = pcodec_info->i2c_dev_addr; in wm8994_init()
883 wm8994_i2c_init(pcodec_info->i2c_bus); in wm8994_init()
885 if (pcodec_info->codec_type == CODEC_WM_8994) { in wm8994_init()
888 debug("%s: Codec id [%d] not defined\n", __func__, in wm8994_init()
889 pcodec_info->codec_type); in wm8994_init()
890 return -1; in wm8994_init()
895 debug("%s: wm8994 codec chip init failed\n", __func__); in wm8994_init()
902 debug("%s: wm8994 codec set sys clock failed\n", __func__); in wm8994_init()