7 Sep
2023
7 Sep
'23
4:21 p.m.
On Thu, Sep 07, 2023 at 06:12:05PM +0200, Joerg Schambacher wrote:
if (pcm512x->tas_device) {/* set necessary PLL coeffs for amp* according to spec only 2x and 4x MCLKs* possible*/ret = regmap_write(pcm512x->regmap,PCM512x_PLL_COEFF_0, 0x01);if (mck_rate > 25000000UL)ret = regmap_write(pcm512x->regmap,PCM512x_PLL_COEFF_1, 0x02);elseret = regmap_write(pcm512x->regmap,PCM512x_PLL_COEFF_1, 0x04);
I would name this quirk something a bit more specific - it seems likely that there might be future TASxxxx devices which need different quirks. If it's a limited range of MCLK multipliers perhaps something about how the PLL is limited, or just make the quirk data being to specify min/max for the multiplier?
if (!pcm512x->tas_device) {ret = regmap_update_bits(pcm512x->regmap,PCM512x_PLL_EN, PCM512x_PLLE, 0);} else {/* leave PLL enabled for amp clocking */ret = regmap_write(pcm512x->regmap,PCM512x_PLL_EN, 0x01);dev_dbg(component->dev, "Enabling PLL for TAS575x\n");}
This is probably a separate quirk? I'm a bit concerned about what's turning the PLL off here...