mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
ALSA: ASoC: cs4271: add optional soft reset workaround
The CS4271 requires its LRCLK and MCLK to be stable before its RESET line is de-asserted. That also means that clocks cannot be changed without putting the chip back into hardware reset, which also requires a complete re-initialization of all registers. One (undocumented) workaround is to assert and de-assert the PDN bit in the MODE2 register. This patch adds a new flag to both the DT bindings as well as to the platform data to enable that workaround. Signed-off-by: Daniel Mack <[email protected]> Acked-by: Alexander Sverdlin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
This commit is contained in:
parent
133d2e6188
commit
fd23fb9f6b
3 changed files with 61 additions and 0 deletions
|
|
@ -20,6 +20,21 @@
|
|||
struct cs4271_platform_data {
|
||||
int gpio_nreset; /* GPIO driving Reset pin, if any */
|
||||
bool amutec_eq_bmutec; /* flag to enable AMUTEC=BMUTEC */
|
||||
|
||||
/*
|
||||
* The CS4271 requires its LRCLK and MCLK to be stable before its RESET
|
||||
* line is de-asserted. That also means that clocks cannot be changed
|
||||
* without putting the chip back into hardware reset, which also requires
|
||||
* a complete re-initialization of all registers.
|
||||
*
|
||||
* One (undocumented) workaround is to assert and de-assert the PDN bit
|
||||
* in the MODE2 register. This workaround can be enabled with the
|
||||
* following flag.
|
||||
*
|
||||
* Note that this is not needed in case the clocks are stable
|
||||
* throughout the entire runtime of the codec.
|
||||
*/
|
||||
bool enable_soft_reset;
|
||||
};
|
||||
|
||||
#endif /* __CS4271_H */
|
||||
|
|
|
|||
Loading…
Reference in a new issue