An error occurred fetching the project authors.
- 30 Mar, 2015 1 commit
-
-
Eric Nelson authored
commit c7d910b8 upstream. The SGTL5000_CHIP_ANA_POWER register is cached. Update the cached value instead of writing it directly. Patch inspired by Russell King's more colorful remarks in this patch: https://github.com/SolidRun/linux-imx6-3.14/commit/dd4bf6aSigned-off-by:
Eric Nelson <eric.nelson@boundarydevices.com> Signed-off-by:
Mark Brown <broonie@kernel.org> Signed-off-by:
Luis Henriques <luis.henriques@canonical.com>
-
- 10 Feb, 2015 1 commit
-
-
Eric Nelson authored
commit 58cc9c9a upstream. To quote from section 1.3.1 of the data sheet: The SGTL5000 has an internal reset that is deasserted 8 SYS_MCLK cycles after all power rails have been brought up. After this time, communication can start ... 1.0us represents 8 SYS_MCLK cycles at the minimum 8.0 MHz SYS_MCLK. Signed-off-by:
Eric Nelson <eric.nelson@boundarydevices.com> Reviewed-by:
Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by:
Mark Brown <broonie@kernel.org> Signed-off-by:
Luis Henriques <luis.henriques@canonical.com>
-
- 01 Dec, 2014 1 commit
-
-
Fabio Estevam authored
commit c251ea7b upstream. On a mx28evk with a sgtl5000 codec we notice a loud 'click' sound to happen 5 seconds after the end of a playback. The SMALL_POP bit should fix this, but its definition is incorrect: according to the sgtl5000 manual it is bit 0 of CHIP_REF_CTRL register, not bit 1. Fix the definition accordingly and enable the bit as intended per the code comment. After applying this change, no loud 'click' sound is heard after playback Signed-off-by:
Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by:
Mark Brown <broonie@kernel.org> Signed-off-by:
Luis Henriques <luis.henriques@canonical.com>
-
- 27 May, 2014 1 commit
-
-
Fabio Estevam authored
Since commit e5d80e82 (ASoC: sgtl5000: Convert to use regmap directly) a kernel oops is observed after a suspend/resume sequence. The kernel oops happens inside sgtl5000_restore_regs() as codec->reg_cache is no longer a valid pointer. Add the remaining register entries into sgtl5000_reg_defaults[] and remove sgtl5000_restore_regs() completely, which allows suspend/resume to work fine and make the code simpler. Tested on a im53-qsb board. Reported-by:
Shawn Guo <shawn.guo@freescale.com> Signed-off-by:
Fabio Estevam <fabio.estevam@freescale.com> Tested-by:
Shawn Guo <shawn.guo@freescale.com> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- 24 Apr, 2014 1 commit
-
-
Fabio Estevam authored
Using devm_regulator_bulk_get() can make the code cleaner and smaller as we do not need to call regulator_bulk_free() in the error and remove paths. Signed-off-by:
Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- 14 Apr, 2014 1 commit
-
-
Lars-Peter Clausen authored
For CODEC controls snd_kcontrol_chip() currently returns a pointer to the CODEC that registered the control. With the upcoming consolidation of platform and CODEC controls this will change. Prepare for this by introducing the snd_soc_kcontrol_codec() helper function that will hide the implementation details of how the CODEC for a control can be obtained. This will allow us to change this easily in the future. The patch also updates all CODEC drivers to use the new helper function. Signed-off-by:
Lars-Peter Clausen <lars@metafoo.de> Acked-by:
Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- 28 Feb, 2014 1 commit
-
-
Xiubo Li authored
Signed-off-by:
Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- 23 Feb, 2014 1 commit
-
-
Takashi Iwai authored
Just replace with the helper macro. No functional change at all. Signed-off-by:
Takashi Iwai <tiwai@suse.de> Acked-by:
Liam Girdwood <liam.r.girdwood@linux.intel.com> Acked-by:
Lars-Peter Clausen <lars@metafoo.de> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- 18 Dec, 2013 1 commit
-
-
Shawn Guo authored
Function sgtl5000_enable_regulators() is somehow odd in handling the optional external VDDD supply. The driver can only enable this supply on SGTL5000 chip before revision 0x11, and of course when this external VDDD is present. It currently does something like below. 1. Check if regulator_bulk_get() on VDDA, VDDIO and VDDD will fail. If it fails, VDDD must be absent and it falls on internal LDO by calling sgtl5000_replace_vddd_with_ldo(). Otherwise, VDDD is used. And in either case, regulator_bulk_enable() will be called to enable 3 supplies. 2. In case that SGTL5000 revision is later than 0x11, even if external VDDD is present, it has to roll back the 'enable' and 'get' calls with regulator_bulk_disable() and regulator_bulk_free(), and starts over again by calling sgtl5000_replace_vddd_with_ldo() and regulator_bulk_enable(). Such back and forth calls sequence is complicated and unnecessary. Also, since commit 4ddfebd3 (regulator: core: Provide a dummy regulator with full constraints), regulator_bulk_get() will always succeeds because of the dummy regulator. Thus the VDDD detection is broken. The patch changes the flow to something like the following, which should be more reasonable and clear, and also fix the VDDD detection breakage. 1. Check if we're running a chip before revision 0x11, on which an external VDDD can possibly be an option. 2. If it is an early revision, call regulator_get_optional() to detect whether an external VDDD supply is available. 3. If external VDDD is present, call sgtl5000_replace_vddd_with_ldo() to update sgtl5000->supplies info. 4. Drop regulator_bulk_get() call in sgtl5000_replace_vddd_with_ldo(), and call it in sgtl5000_enable_regulators() no matter it's an external VDDD or internal LDO. 5. Call regulator_bulk_enable() to enable these 3 regulators. Signed-off-by:
Shawn Guo <shawn.guo@linaro.org> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- 16 Dec, 2013 1 commit
-
-
Shawn Guo authored
Store chip revision in struct sgtl5000_priv when sgtl5000_i2c_probe() reads it out from register, so that we can use it in sgtl5000_enable_regulators() with no need to read register again. Signed-off-by:
Shawn Guo <shawn.guo@linaro.org> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- 05 Aug, 2013 1 commit
-
-
Oskar Schirmer authored
Powering down PLL before switching to a mode that does not use it is a bad idea. It would cause the SGTL5000 be without internal clock supply, especially on the I2C interface, which would make subsequent access to it fail. Thus, in case of not using PLL any longer, first set the mode control, then power down PLL. Signed-off-by:
Oskar Schirmer <oskar@scara.com> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- 01 Aug, 2013 2 commits
-
-
Lothar Waßmann authored
The SGTL5000 Capture Attenuate Switch (or "ADC Volume Range Reduction" as it is called in the manual) is single bit only. Signed-off-by:
Lothar Waßmann <LW@KARO-electronics.de> Reviewed-by:
Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
Lothar Waßmann authored
When a sound capture/playback is terminated while a playback/capture is running, power_vag_event() will clear SGTL5000_CHIP_ANA_POWER in the SND_SOC_DAPM_PRE_PMD event, thus muting the respective other channel. Don't clear SGTL5000_CHIP_ANA_POWER when both DAC and ADC are active to prevent this. Signed-off-by:
Lothar Waßmann <LW@KARO-electronics.de> Reviewed-by:
Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- 16 Jul, 2013 1 commit
-
-
Shawn Guo authored
It's not always the case that clock is already available when sgtl5000 get probed at the first time, e.g. the clock is provided by CPU DAI which may be probed after sgtl5000. So let's defer the probe when devm_clk_get() call fails and give it chance to try later. It fixes the regression on imx28 since commit 9e13f345 (ASoC: sgtl5000: Let the codec acquire its clock). [ 1.927637] sgtl5000 0-000a: Failed to get mclock: -2 [ 1.934280] sgtl5000: probe of 0-000a failed with error -2 [ 1.945906] mxs-sgtl5000 sound.13: ASoC: CODEC (null) not registered [ 1.953787] mxs-sgtl5000 sound.13: snd_soc_register_card failed (-517) [ 1.960865] platform sound.13: Driver mxs-sgtl5000 requests probe deferral Signed-off-by:
Shawn Guo <shawn.guo@linaro.org> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- 15 Jul, 2013 1 commit
-
-
Fabio Estevam authored
sgtl5000 has 16-bit registers, and only even numbers are valid for its registers addresses. Let regmap knows about this feature by specifying the 'reg_stride' field, so that it can access only the valid registers. Signed-off-by:
Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- 05 Jul, 2013 1 commit
-
-
Fabio Estevam authored
According to the sgtl5000 reference manual, the default value of CHIP_SSS_CTRL is 0x10. Reported-by:
Oskar Schirmer <oskar@scara.com> Signed-off-by:
Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by:
Mark Brown <broonie@linaro.org> Cc: stable@vger.kernel.org
-
- 12 Jun, 2013 1 commit
-
-
Fabio Estevam authored
We should use i2c_get_clientdata() to get the codec private structure. Signed-off-by:
Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- 10 Jun, 2013 1 commit
-
-
Fabio Estevam authored
On a mx6qsabrelite board the following error happens on probe: sgtl5000: probe of 0-000a failed with error -5 imx-sgtl5000 sound.13: ASoC: CODEC (null) not registered imx-sgtl5000 sound.13: snd_soc_register_card failed (-517) platform sound.13: Driver imx-sgtl5000 requests probe defer Prior to reading the codec ID we need to turn the SYS_MCLK clock, so let's enable the codec clock inside sgtl5000_i2c_probe(). Also remove the codec clock enable/disable functions from the machine driver. Signed-off-by:
Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- 05 Jun, 2013 1 commit
-
-
Mark Brown authored
When the regulators have been disabled mark the device as cache only so that we don't try to interact with the hardware. Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- 04 Jun, 2013 1 commit
-
-
Marek Vasut authored
The VAG_POWER must be enabled after all other bits in CHIP_ANA_POWER and disabled before any other bit in CHIP_ANA_POWER. See the SGTL5000 datasheet (Table 31, BIT 7, page 42-43). Failing to follow this order will result in ugly loud "POP" noise at the end of playback. To achieve such order, use the _PRE and _POST DAPM widgets to trigger the power_vag_event, where the event type check has to be fixed accordingly as well. Signed-off-by:
Marek Vasut <marex@denx.de> Signed-off-by:
Mark Brown <broonie@linaro.org>
-
- 12 May, 2013 3 commits
-
-
Fabio Estevam authored
After a 'reboot' command in Linux or after pressing the system's reset button the sgtl5000 driver fails to probe: sgtl5000 0-000a: Device with ID register ffff is not a sgtl5000 sgtl5000 0-000a: ASoC: failed to probe CODEC -19 imx-sgtl5000 sound.12: ASoC: failed to instantiate card -19 imx-sgtl5000 sound.12: snd_soc_register_card failed (-19) sgtl5000 codec does not have a reset line, nor a reset command in software, so after a system reset the codec does not contain the default register values from sgtl5000_reg_defaults[] anymore, as these are only valid after a power-on-reset cycle. Fix this issue by explicitly reading all the reset register values from sgtl5000_reg_defaults[] and writing them back into sgtl5000 to ensure a sane state. Signed-off-by:
Fabio Estevam <fabio.estevam@freescale.com> Tested-by:
Eric Nelson <eric.nelson@boundarydevices.com> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
Fabio Estevam authored
The usual place for reading chip ID is inside i2c_probe, so move it there and also convert it to regmap. sgtl5000_enable_regulators() needs to read the chip revision, so keep the revision check there. Signed-off-by:
Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
Fabio Estevam authored
Signed-off-by:
Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- 24 Dec, 2012 1 commit
-
-
Fabio Estevam authored
sgtl5000 microphone gain only has 2 bits of resolution, so maximum value is 3. From Eric Nelson: "We also found that for the microphones we have here (commodity PC boom mics) a default value of 2 for the gain gives the best results." So change the default microphone gain as well. Signed-off-by:
Eric Nelson <eric.nelson@boundarydevices.com> Signed-off-by:
Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- 09 Dec, 2012 1 commit
-
-
Bill Pemberton authored
CONFIG_HOTPLUG is going away as an option. As result the __dev* markings will be going away. Remove use of __devinit, __devexit_p, __devinitdata, __devinitconst, and __devexit. Signed-off-by:
Bill Pemberton <wfp5p@virginia.edu> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- 31 Jul, 2012 1 commit
-
-
Dong Aisheng authored
LINE_IN also needs VAG_POWER on or we may hear noise when directly route LINE_IN to Headphone Mux. Tested on imx28evk. Signed-off-by:
Dong Aisheng <dong.aisheng@linaro.org> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- 24 Jul, 2012 1 commit
-
-
Dong Aisheng authored
There's a driver bug that sgtl5000 dapm widget kcontrols do not work. e.g. can not select capture mux with amixer tool(no error info prompted). The root cause is that we still call snd_soc_dapm_new_widgets in codec driver probe function afer converting to table based widgets. This will cause the card dapm widgets are instantiated before the dapm_routes are registered. Then, no available dapm widget pathes can be found during instantiation which finally will cause soc_dapm_mux_update_power to fail(can not find correct path with kcontrol) in snd_soc_dapm_put_enum_double function. Here we remove the unneeded snd_soc_dapm_new_widgets in codec probe and let the soc core to handle the register sequence properly. Then we can fix above issue. Signed-off-by:
Dong Aisheng <dong.aisheng@linaro.org> Acked-by:
Shawn Guo <shawn.guo@linaro.org> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- 09 Apr, 2012 1 commit
-
-
Mark Brown authored
Rather than adding new arguments to regulator_register() every time we want to add a new bit of dynamic information at runtime change the function to take these via a struct. By doing this we avoid needing to do further changes like the recent addition of device tree support which required each regulator driver to be updated to take an additional parameter. The regulator_desc which should (mostly) be static data is still passed separately as most drivers are able to configure this statically at build time. Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- 04 Apr, 2012 2 commits
-
-
Mark Brown authored
In order to support CODEC<->CODEC links remove the assumption that there is only a single CODEC on a DAI link by removing the use of the CODEC pointer in the rtd from the CODEC drivers. They are already being passed their DAI whenever they are passed an rtd and can get the CODEC from there. Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
Mark Brown authored
Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- 03 Apr, 2012 1 commit
-
-
Fabio Estevam authored
Fix the following warning during kernel boot: 0-000a: 850 <--> 1600 mV at 1200 mV normal 0-000a: Voltage range but no REGULATOR_CHANGE_VOLTAGE Signed-off-by:
Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- 02 Apr, 2012 1 commit
-
-
Zeng Zhaoming authored
As manual described, VAG is an internal voltage reference of DAC/ADC, So enabled it before DAC/ADC up. One more thing should care about is VAG fully ramped down requires 400ms, wait it to avoid pop. Signed-off-by:
Zeng Zhaoming <zengzm.kernel@gmail.com> Signed-off-by:
Shawn Guo <shawn.guo@linaro.org> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- 01 Apr, 2012 1 commit
-
-
Mark Brown authored
No current users and it's the last user of MICBIAS_E(). Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by:
Dong Aisheng <dong.aisheng@linaro.org> Acked-by:
Zeng Zhaoming <zengzm.kernel@gmail.com> Tested-by:
Shawn Guo <shawn.guo@linaro.org>
-
- 23 Jan, 2012 1 commit
-
-
Mark Brown authored
Reported-by:
Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- 22 Jan, 2012 1 commit
-
-
Fabio Estevam authored
Convert to table based DAPM and control init. Signed-off-by:
Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- 20 Jan, 2012 2 commits
-
-
Fabio Estevam authored
Throughout the sgtl5000 driver source code and also in the sgtl5000 datasheet the revision code is shown in hexadecimal. Print it hex format, for consistency. Signed-off-by:
Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
Zeng Zhaoming authored
Correct SGTL5000_CHIP_CLK_CTRL to SGTL5000_CHIP_REF_CTRL in sgtl5000_restore_regs(), and add comment to explain the restore order. Reported-by:
Julia Lawall <julia.lawall@lip6.fr> Signed-off-by:
Zeng Zhaoming <zengzm.kernel@gmail.com> Acked-by:
Dong Aisheng <dong.aisheng@linaro.org> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- 16 Jan, 2012 1 commit
-
-
Zeng Zhaoming authored
Update MODULE_AUTHOR email address. Signed-off-by:
Zeng Zhaoming <zengzm.kernel@gmail.com> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
- 28 Dec, 2011 2 commits
-
-
Fabio Estevam authored
Convert sgtl5000 codec driver to use devm_kzalloc(). Signed-off-by:
Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-
Fabio Estevam authored
vdda, vddio and vddd are voltages expressed in milivolts (mV), so use the proper annotation. Signed-off-by:
Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by:
Mark Brown <broonie@opensource.wolfsonmicro.com>
-