cx2072x 583 sound/soc/codecs/cx2072x.c static int cx2072x_config_pll(struct cx2072x_priv *cx2072x) cx2072x 585 sound/soc/codecs/cx2072x.c struct device *dev = cx2072x->dev; cx2072x 594 sound/soc/codecs/cx2072x.c unsigned int sample_rate = cx2072x->sample_rate; cx2072x 621 sound/soc/codecs/cx2072x.c pre_div = get_div_from_mclk(cx2072x->mclk_rate); cx2072x 622 sound/soc/codecs/cx2072x.c pll_input = cx2072x->mclk_rate / pre_div; cx2072x 636 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_ANALOG_TEST4, cx2072x 640 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_ANALOG_TEST7, 0x100); cx2072x 643 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_ANALOG_TEST6, cx2072x 645 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_ANALOG_TEST7, cx2072x 650 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_ANALOG_TEST8, int_div); cx2072x 655 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_DIGITAL_TEST16, 0x00); cx2072x 658 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_DIGITAL_TEST16, cx2072x 660 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_DIGITAL_TEST17, cx2072x 662 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_DIGITAL_TEST18, cx2072x 664 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_DIGITAL_TEST19, 0x01); cx2072x 665 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_DIGITAL_TEST20, 0x02); cx2072x 666 sound/soc/codecs/cx2072x.c regmap_update_bits(cx2072x->regmap, CX2072X_DIGITAL_TEST16, cx2072x 673 sound/soc/codecs/cx2072x.c static int cx2072x_config_i2spcm(struct cx2072x_priv *cx2072x) cx2072x 675 sound/soc/codecs/cx2072x.c struct device *dev = cx2072x->dev; cx2072x 682 sound/soc/codecs/cx2072x.c int frame_len = cx2072x->frame_size; cx2072x 683 sound/soc/codecs/cx2072x.c int sample_size = cx2072x->sample_size; cx2072x 697 sound/soc/codecs/cx2072x.c const unsigned int fmt = cx2072x->dai_fmt; cx2072x 804 sound/soc/codecs/cx2072x.c if (cx2072x->en_aec_ref) cx2072x 816 sound/soc/codecs/cx2072x.c if (cx2072x->en_aec_ref) cx2072x 834 sound/soc/codecs/cx2072x.c bclk_rate = cx2072x->sample_rate * frame_len; cx2072x 838 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_I2SPCM_CONTROL5, 0); cx2072x 853 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_I2SPCM_CONTROL1, reg1.ulval); cx2072x 854 sound/soc/codecs/cx2072x.c regmap_update_bits(cx2072x->regmap, CX2072X_I2SPCM_CONTROL2, 0xffffffc0, cx2072x 856 sound/soc/codecs/cx2072x.c regmap_update_bits(cx2072x->regmap, CX2072X_I2SPCM_CONTROL3, 0xffffffc0, cx2072x 858 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_I2SPCM_CONTROL4, reg4.ulval); cx2072x 859 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_I2SPCM_CONTROL6, reg6.ulval); cx2072x 860 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_I2SPCM_CONTROL5, reg5.ulval); cx2072x 862 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_DIGITAL_BIOS_TEST2, cx2072x 872 sound/soc/codecs/cx2072x.c struct cx2072x_priv *cx2072x = snd_soc_component_get_drvdata(codec); cx2072x 876 sound/soc/codecs/cx2072x.c regmap_update_bits(cx2072x->regmap, CX2072X_DIGITAL_BIOS_TEST0, cx2072x 881 sound/soc/codecs/cx2072x.c regmap_update_bits(cx2072x->regmap, CX2072X_DIGITAL_BIOS_TEST0, cx2072x 918 sound/soc/codecs/cx2072x.c struct cx2072x_priv *cx2072x = snd_soc_component_get_drvdata(codec); cx2072x 933 sound/soc/codecs/cx2072x.c if (cx2072x->mclk_rate == 0) { cx2072x 938 sound/soc/codecs/cx2072x.c if (cx2072x->bclk_ratio) cx2072x 939 sound/soc/codecs/cx2072x.c frame_size = cx2072x->bclk_ratio; cx2072x 958 sound/soc/codecs/cx2072x.c cx2072x->frame_size = frame_size; cx2072x 959 sound/soc/codecs/cx2072x.c cx2072x->sample_size = sample_size; cx2072x 960 sound/soc/codecs/cx2072x.c cx2072x->sample_rate = sample_rate; cx2072x 963 sound/soc/codecs/cx2072x.c cx2072x->en_aec_ref = true; cx2072x 964 sound/soc/codecs/cx2072x.c dev_dbg(cx2072x->dev, "enables aec reference\n"); cx2072x 965 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, cx2072x 969 sound/soc/codecs/cx2072x.c if (cx2072x->pll_changed) { cx2072x 970 sound/soc/codecs/cx2072x.c cx2072x_config_pll(cx2072x); cx2072x 971 sound/soc/codecs/cx2072x.c cx2072x->pll_changed = false; cx2072x 974 sound/soc/codecs/cx2072x.c if (cx2072x->i2spcm_changed) { cx2072x 975 sound/soc/codecs/cx2072x.c cx2072x_config_i2spcm(cx2072x); cx2072x 976 sound/soc/codecs/cx2072x.c cx2072x->i2spcm_changed = false; cx2072x 986 sound/soc/codecs/cx2072x.c struct cx2072x_priv *cx2072x = snd_soc_component_get_drvdata(codec); cx2072x 988 sound/soc/codecs/cx2072x.c cx2072x->bclk_ratio = ratio; cx2072x 996 sound/soc/codecs/cx2072x.c struct cx2072x_priv *cx2072x = snd_soc_component_get_drvdata(codec); cx2072x 998 sound/soc/codecs/cx2072x.c if (clk_set_rate(cx2072x->mclk, freq)) { cx2072x 1003 sound/soc/codecs/cx2072x.c cx2072x->mclk_rate = freq; cx2072x 1010 sound/soc/codecs/cx2072x.c struct cx2072x_priv *cx2072x = snd_soc_component_get_drvdata(codec); cx2072x 1050 sound/soc/codecs/cx2072x.c cx2072x->dai_fmt = fmt; cx2072x 1354 sound/soc/codecs/cx2072x.c struct cx2072x_priv *cx2072x = snd_soc_component_get_drvdata(codec); cx2072x 1359 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_AFG_POWER_STATE, 0); cx2072x 1361 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_AFG_POWER_STATE, 3); cx2072x 1376 sound/soc/codecs/cx2072x.c struct cx2072x_priv *cx2072x = snd_soc_component_get_drvdata(codec); cx2072x 1380 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_GPIO_STICKY_MASK, 0x1f); cx2072x 1383 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_UM_INTERRUPT_CRTL_E, 0x12 << 24); cx2072x 1386 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_PORTA_UNSOLICITED_RESPONSE, 0x80); cx2072x 1389 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_DIGITAL_TEST15, 0x73); cx2072x 1392 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_ANALOG_TEST12, 0x300); cx2072x 1395 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_DIGITAL_TEST1, 0); cx2072x 1408 sound/soc/codecs/cx2072x.c struct cx2072x_priv *cx2072x = snd_soc_component_get_drvdata(codec); cx2072x 1410 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_UM_INTERRUPT_CRTL_E, 0); cx2072x 1411 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_PORTA_UNSOLICITED_RESPONSE, 0); cx2072x 1417 sound/soc/codecs/cx2072x.c struct cx2072x_priv *cx2072x = snd_soc_component_get_drvdata(codec); cx2072x 1422 sound/soc/codecs/cx2072x.c mutex_lock(&cx2072x->lock); cx2072x 1424 sound/soc/codecs/cx2072x.c regmap_read(cx2072x->regmap, CX2072X_PORTA_PIN_SENSE, &jack); cx2072x 1426 sound/soc/codecs/cx2072x.c regmap_read(cx2072x->regmap, CX2072X_DIGITAL_TEST11, &type); cx2072x 1446 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_UM_INTERRUPT_CRTL_E, 0x12 << 24); cx2072x 1448 sound/soc/codecs/cx2072x.c mutex_unlock(&cx2072x->lock); cx2072x 1466 sound/soc/codecs/cx2072x.c struct cx2072x_priv *cx2072x = snd_soc_component_get_drvdata(codec); cx2072x 1474 sound/soc/codecs/cx2072x.c if (!cx2072x->jack_gpio.gpiod_dev) { cx2072x 1475 sound/soc/codecs/cx2072x.c cx2072x->jack_gpio = cx2072x_jack_gpio; cx2072x 1476 sound/soc/codecs/cx2072x.c cx2072x->jack_gpio.gpiod_dev = codec->dev; cx2072x 1477 sound/soc/codecs/cx2072x.c cx2072x->jack_gpio.data = codec; cx2072x 1478 sound/soc/codecs/cx2072x.c err = snd_soc_jack_add_gpios(jack, 1, &cx2072x->jack_gpio); cx2072x 1480 sound/soc/codecs/cx2072x.c cx2072x->jack_gpio.gpiod_dev = NULL; cx2072x 1491 sound/soc/codecs/cx2072x.c struct cx2072x_priv *cx2072x = snd_soc_component_get_drvdata(codec); cx2072x 1493 sound/soc/codecs/cx2072x.c cx2072x->codec = codec; cx2072x 1505 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_AFG_POWER_STATE, 0); cx2072x 1507 sound/soc/codecs/cx2072x.c regmap_multi_reg_write(cx2072x->regmap, cx2072x_reg_init, cx2072x 1511 sound/soc/codecs/cx2072x.c regmap_update_bits(cx2072x->regmap, CX2072X_PORTC_PIN_CTRL, cx2072x 1514 sound/soc/codecs/cx2072x.c regmap_update_bits(cx2072x->regmap, CX2072X_DIGITAL_BIOS_TEST2, cx2072x 1517 sound/soc/codecs/cx2072x.c regmap_write(cx2072x->regmap, CX2072X_AFG_POWER_STATE, 3); cx2072x 1547 sound/soc/codecs/cx2072x.c struct cx2072x_priv *cx2072x = cx2072x 1550 sound/soc/codecs/cx2072x.c cx2072x->en_aec_ref = true; cx2072x 1619 sound/soc/codecs/cx2072x.c struct cx2072x_priv *cx2072x = dev_get_drvdata(dev); cx2072x 1621 sound/soc/codecs/cx2072x.c clk_disable_unprepare(cx2072x->mclk); cx2072x 1627 sound/soc/codecs/cx2072x.c struct cx2072x_priv *cx2072x = dev_get_drvdata(dev); cx2072x 1629 sound/soc/codecs/cx2072x.c return clk_prepare_enable(cx2072x->mclk); cx2072x 1635 sound/soc/codecs/cx2072x.c struct cx2072x_priv *cx2072x; cx2072x 1639 sound/soc/codecs/cx2072x.c cx2072x = devm_kzalloc(&i2c->dev, sizeof(struct cx2072x_priv), cx2072x 1641 sound/soc/codecs/cx2072x.c if (!cx2072x) cx2072x 1644 sound/soc/codecs/cx2072x.c cx2072x->regmap = devm_regmap_init(&i2c->dev, NULL, i2c, cx2072x 1646 sound/soc/codecs/cx2072x.c if (IS_ERR(cx2072x->regmap)) cx2072x 1647 sound/soc/codecs/cx2072x.c return PTR_ERR(cx2072x->regmap); cx2072x 1649 sound/soc/codecs/cx2072x.c mutex_init(&cx2072x->lock); cx2072x 1651 sound/soc/codecs/cx2072x.c i2c_set_clientdata(i2c, cx2072x); cx2072x 1653 sound/soc/codecs/cx2072x.c cx2072x->dev = &i2c->dev; cx2072x 1654 sound/soc/codecs/cx2072x.c cx2072x->pll_changed = true; cx2072x 1655 sound/soc/codecs/cx2072x.c cx2072x->i2spcm_changed = true; cx2072x 1656 sound/soc/codecs/cx2072x.c cx2072x->bclk_ratio = 0; cx2072x 1658 sound/soc/codecs/cx2072x.c cx2072x->mclk = devm_clk_get(cx2072x->dev, "mclk"); cx2072x 1659 sound/soc/codecs/cx2072x.c if (IS_ERR(cx2072x->mclk)) { cx2072x 1660 sound/soc/codecs/cx2072x.c dev_err(cx2072x->dev, "Failed to get MCLK\n"); cx2072x 1661 sound/soc/codecs/cx2072x.c return PTR_ERR(cx2072x->mclk); cx2072x 1664 sound/soc/codecs/cx2072x.c regmap_read(cx2072x->regmap, CX2072X_VENDOR_ID, &ven_id); cx2072x 1665 sound/soc/codecs/cx2072x.c regmap_read(cx2072x->regmap, CX2072X_REVISION_ID, &rev_id); cx2072x 1667 sound/soc/codecs/cx2072x.c dev_info(cx2072x->dev, "codec version: %08x,%08x\n", ven_id, rev_id); cx2072x 1669 sound/soc/codecs/cx2072x.c ret = devm_snd_soc_register_component(cx2072x->dev, cx2072x 1676 sound/soc/codecs/cx2072x.c pm_runtime_use_autosuspend(cx2072x->dev); cx2072x 1677 sound/soc/codecs/cx2072x.c pm_runtime_enable(cx2072x->dev); cx2072x 166 sound/soc/intel/boards/bytcht_cx2072x.c SND_SOC_DAILINK_DEF(cx2072x, cx2072x 204 sound/soc/intel/boards/bytcht_cx2072x.c SND_SOC_DAILINK_REG(ssp2, cx2072x, platform),