mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 02:39:48 +00:00
![Daniel Mack](/assets/img/avatar_default.png)
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 <zonque@gmail.com> Acked-by: Alexander Sverdlin <subaparts@yandex.ru> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
40 lines
1.4 KiB
C
40 lines
1.4 KiB
C
/*
|
|
* Definitions for CS4271 ASoC codec driver
|
|
*
|
|
* Copyright (c) 2010 Alexander Sverdlin <subaparts@yandex.ru>
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*/
|
|
|
|
#ifndef __CS4271_H
|
|
#define __CS4271_H
|
|
|
|
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 */
|