From: Mark Brown Date: Thu, 14 May 2020 17:37:31 +0000 (+0100) Subject: Merge branch 'for-5.7' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie... X-Git-Tag: v5.8-rc1~47^2^2~91 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=5ae5eb48ca046adffbdff56a2f297d0896b83186;p=linux-block.git Merge branch 'for-5.7' of https://git./linux/kernel/git/broonie/sound into asoc-5.8 --- 5ae5eb48ca046adffbdff56a2f297d0896b83186 diff --cc sound/soc/codecs/tlv320adcx140.c index 140a5802a9a9,1d7d7b34a46e..472d759ba8a3 --- a/sound/soc/codecs/tlv320adcx140.c +++ b/sound/soc/codecs/tlv320adcx140.c @@@ -758,15 -739,12 +758,16 @@@ static int adcx140_codec_probe(struct s { struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(component); int sleep_cfg_val = ADCX140_WAKE_DEV; - u8 bias_source; - u8 vref_source; + u32 bias_source; + u32 vref_source; + u8 bias_cfg; + int pdm_count; + u32 pdm_edges[ADCX140_NUM_PDM_EDGES]; + u32 pdm_edge_val = 0; + int i; int ret; - ret = device_property_read_u8(adcx140->dev, "ti,mic-bias-source", + ret = device_property_read_u32(adcx140->dev, "ti,mic-bias-source", &bias_source); if (ret) bias_source = ADCX140_MIC_BIAS_VAL_VREF; @@@ -788,26 -766,8 +789,26 @@@ return -EINVAL; } - bias_source |= vref_source; + bias_cfg = bias_source << ADCX140_MIC_BIAS_SHIFT | vref_source; + pdm_count = device_property_count_u32(adcx140->dev, + "ti,pdm-edge-select"); + if (pdm_count <= ADCX140_NUM_PDM_EDGES && pdm_count > 0) { + ret = device_property_read_u32_array(adcx140->dev, + "ti,pdm-edge-select", + pdm_edges, pdm_count); + if (ret) + return ret; + + for (i = 0; i < pdm_count; i++) + pdm_edge_val |= pdm_edges[i] << (ADCX140_PDM_EDGE_SHIFT - i); + + ret = regmap_write(adcx140->regmap, ADCX140_PDM_CFG, + pdm_edge_val); + if (ret) + return ret; + } + ret = adcx140_reset(adcx140); if (ret) goto out;