Lines Matching +full:system +full:- +full:clock +full:- +full:direction +full:- +full:out

5  * SPDX-License-Identifier:	GPL-2.0+
21 /* defines for wm8994 system clock selection */
31 int out; /* output frequency in Hz */ member
38 int sysclk[WM8994_MAX_AIF]; /* System clock frequency in Hz */
39 int mclk[WM8994_MAX_AIF]; /* master clock frequency in Hz */
40 int aifclk[WM8994_MAX_AIF]; /* audio interface clock in Hz */
50 /* op clock divisions */
53 /* lr clock frame size ratio */
58 /* bit clock divisors */
103 * @return int value 0 for success, -1 in case of error.
114 return -1; in wm8994_i2c_read()
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()
248 debug("%s: Invalid i2s clock polarity selection\n", in wm8994_set_fmt()
250 return -1; in wm8994_set_fmt()
255 return -1; in wm8994_set_fmt()
266 return -1; in wm8994_set_fmt()
281 * @return -1 for error and 0 Success.
295 int id = aif_id - 1; in wm8994_hw_params()
314 return -1; in wm8994_hw_params()
335 return -1; in wm8994_hw_params()
346 return -1; in wm8994_hw_params()
351 /* AIFCLK/fs ratio; look for a close match in either direction */ in wm8994_hw_params()
354 - wm8994->aifclk[id]); in wm8994_hw_params()
358 - wm8994->aifclk[id]); in wm8994_hw_params()
371 * BCLKs to clock out the samples). 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()
392 return -1; in wm8994_hw_params()
398 if (wm8994->aifclk[id] == 0) { in wm8994_hw_params()
399 debug("%s:Audio interface clock not set\n", __func__); in wm8994_hw_params()
400 return -1; in wm8994_hw_params()
413 return -1; in wm8994_hw_params()
420 * Configures Audio interface Clock
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()
462 debug("%s: Invalid input clock selection [%d]\n", in configure_aif_clock()
463 __func__, wm8994->sysclk[aif-1]); in configure_aif_clock()
464 return -1; in configure_aif_clock()
467 /* if input clock frequenct is more than 135Mhz then divide */ in configure_aif_clock()
473 wm8994->aifclk[aif-1] = rate; in configure_aif_clock()
491 return -1; in configure_aif_clock()
502 * @param clk_id Input Clock ID
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()
557 debug("%s Invalid input clock selection [%d]\n", in wm8994_set_sysclk()
559 return -1; in wm8994_set_sysclk()
566 return -1; in wm8994_set_sysclk()
575 * @returns -1 for error and 0 Success.
609 return -1; in wm8994_init_volume_aif2_dac1()
618 * @returns -1 for error and 0 Success.
641 return -1; in wm8994_init_volume_aif1_dac1()
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()
803 return -1; in wm8994_device_init()
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()
861 return -1; in get_codec_values()
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()
889 pcodec_info->codec_type); in wm8994_init()
890 return -1; in wm8994_init()
902 debug("%s: wm8994 codec set sys clock failed\n", __func__); in wm8994_init()