Load calibration in the first playback
Signed-off-by: Tracy Yi <tracy-yi@ti.com>
Signed-off-by: Tracy Yi <tracy-yi@ti.com>
Add support for ASI2 with IV data
Signed-off-by: Tracy Yi <tracy-yi@ti.com>
Signed-off-by: Tracy Yi <tracy-yi@ti.com>
Fix compile error in kernel 4.3
Signed-off-by: Tracy Yi <tracy-yi@ti.com>
Signed-off-by: Tracy Yi <tracy-yi@ti.com>
Add 3 times retry for safe guard failure
Signed-off-by: Tracy Yi <tracy-yi@ti.com>
Signed-off-by: Tracy Yi <tracy-yi@ti.com>
driver v4.0, support multiple sources for same sample rate
fix bug in YRAM detection
since set_calibration uses LoadConfigPrePowerUp, it is more robust to set it before load_coefficient
support bypass calibration Re for "thermal protection bypass" snapshots
fix bug : when system is suspended, we shouldn't access TAS2557
update:
1. when loading program, before hardware reset, even if the I2C doesn't work, we still get chance to recover after hardware reset.
2. update error check in I2C transactions.
1. when loading program, before hardware reset, even if the I2C doesn't work, we still get chance to recover after hardware reset.
2. update error check in I2C transactions.
remove unused parameter
update : make the clock error detection more robust
weakness has been found by design team and recommend this setting
verify :
1.during music playback, disconnect BCLK(PLL source), check TAS2557 behaviour
device will be automatically muted
2.when reconnect BCLK (PLL source), TAS2557 will recover
weakness has been found by design team and recommend this setting
verify :
1.during music playback, disconnect BCLK(PLL source), check TAS2557 behaviour
device will be automatically muted
2.when reconnect BCLK (PLL source), TAS2557 will recover
in case of loading configuration before power up, we don't need to update FTC
update error handling : TAS2557 pow status can be checked 10ms after device power on.
if check the pow status less than 10ms after TAS2557 power on, it's possible that the class-d hasn't powered yet, we
verify :
1. normal music playback
we will schedule a delayed work to check the power status of TAS2557 after starting playback
2. during normal music playback, shorten the SPK+ and SPK-
in such case, we will powed down the device and reprogram the devices, then check the pow status again
if check the pow status less than 10ms after TAS2557 power on, it's possible that the class-d hasn't powered yet, we
verify :
1. normal music playback
we will schedule a delayed work to check the power status of TAS2557 after starting playback
2. during normal music playback, shorten the SPK+ and SPK-
in such case, we will powed down the device and reprogram the devices, then check the pow status again
add support :
the two IRQ pins from TAS2557s can be tied together and connected to the IRQ input of application processor.
each of the IRQ pin of TAS2557 has been configured as "open drain, low-HiZ, High active drive".
in such case, if there is no interrupt, the IRQ pin of TAS2557 will be HiZ. if there is interrupt, it will be drive HIGH.
note:
the IRQ GPIO of application processor should be configured as "input, internal pull down".
verify :
1. connect the two IRQ pins of TAS2557s to one GPIO of application processor (SD800, dragonboard)
short SPK+ and SPK- of TAS2557-1, check driver IRQ service routine.
short SPK+ and SPK- of TAS2557-2, check driver IRQ service routine.
2. use two different GPIOs of application processor, IRQ of TAS2557-1 is connected to SD800 GPIO-59, IRQ of TAS2557-2 is connected to SD800 GPIO-82
short SPK+ and SPK- of TAS2557-1, check driver IRQ service routine.
short SPK+ and SPK- of TAS2557-2, check driver IRQ service routine.
the two IRQ pins from TAS2557s can be tied together and connected to the IRQ input of application processor.
each of the IRQ pin of TAS2557 has been configured as "open drain, low-HiZ, High active drive".
in such case, if there is no interrupt, the IRQ pin of TAS2557 will be HiZ. if there is interrupt, it will be drive HIGH.
note:
the IRQ GPIO of application processor should be configured as "input, internal pull down".
verify :
1. connect the two IRQ pins of TAS2557s to one GPIO of application processor (SD800, dragonboard)
short SPK+ and SPK- of TAS2557-1, check driver IRQ service routine.
short SPK+ and SPK- of TAS2557-2, check driver IRQ service routine.
2. use two different GPIOs of application processor, IRQ of TAS2557-1 is connected to SD800 GPIO-59, IRQ of TAS2557-2 is connected to SD800 GPIO-82
short SPK+ and SPK- of TAS2557-1, check driver IRQ service routine.
short SPK+ and SPK- of TAS2557-2, check driver IRQ service routine.
fix bug : reading coefficient from calibration firmware, if it isn't the first coefficient, the reading will fail.
verify :
read the second coefficient in the firmware binary
verify :
read the second coefficient in the firmware binary
fix bug :
fail sequence:
1. amp enable
2. set coef config 1, set current config to config 1
3. disable audio path, amp disable
4. set default config 0 => update to mnNewConfiguration will set coef when amp power up
5. set config 1 => compare with current config is same and skip
6. amp enable
7. load config 0 (but in this use case we need to load config 1)
verify step:
1. start music playback, default configuration 0
2. use tinymix "Stereo Configuration" to switch to configuration 1
driver will load configuration 1 coefficients
3. stop music playback
4. use tinymix "Stereo Configuration" to switch to configuration 0
driver won't load configuration 0 coefficients, but record to switch to configuration 0
5. use tinymix "Stereo Configuration" to switch to configuration 1
driver won't load configuration 1 coefficients, but record to switch to configuration 1
6. start music playback,
driver finds out the current configuration is 1, and need to switch to configuration 1, so skip coefficients update
fail sequence:
1. amp enable
2. set coef config 1, set current config to config 1
3. disable audio path, amp disable
4. set default config 0 => update to mnNewConfiguration will set coef when amp power up
5. set config 1 => compare with current config is same and skip
6. amp enable
7. load config 0 (but in this use case we need to load config 1)
verify step:
1. start music playback, default configuration 0
2. use tinymix "Stereo Configuration" to switch to configuration 1
driver will load configuration 1 coefficients
3. stop music playback
4. use tinymix "Stereo Configuration" to switch to configuration 0
driver won't load configuration 0 coefficients, but record to switch to configuration 0
5. use tinymix "Stereo Configuration" to switch to configuration 1
driver won't load configuration 1 coefficients, but record to switch to configuration 1
6. start music playback,
driver finds out the current configuration is 1, and need to switch to configuration 1, so skip coefficients update
add test mode
update broadcasting mode
fix bug in VBoost Voltage Configuration
fix bug : recover in DevA scenario, when switch to DevB or DevBoth scenario, there is no sound
add support VBoost always 5.6V
update for vboost voltage level control
update to use PLL as clock error detection 2
add VBoost control support
add Calibration Re read
update driver to support binary dump with cfgDevice only
remove unnecessary dts items
check power status of DAC and Class D
use timer to check IRQ flags too
check IRQ pin status before finishing IRQ service routine
keep channel setup until set to default
add channel control in SmartAmp mode
update for "mono case" support
update for clock error detection
update to support PPC3 TAS2557 app v3.0.2 release on 17th March, 2017
fix code style
update : add lock to protect timer and IRQ work
fix typo error
update: 1, end-system tuning; 2, update coefficient before power up
update for low_temp gain set and channel swap for PG2.1
update coding format
update for functions
disable clock error detection
update for recover ESD failure in IRQ handler
wait 100ms to get IRQ status
update : disable_IRQ and enable_IRQ should be in pair
fix alsa cmd "pwrctl"
update for IRQ configuration fix
update IRQ mode to "keep until clear"
add CRC checksum
1. add echo reference control
2. fix bug in IRQ handler
2. fix bug in IRQ handler
add channel swap command
add PLL check before powering on TAS2557
1. fix bug : IRQ config
2. update echo-reference config
2. update echo-reference config
update example test code for FTC firmware load
update IRQ for dual interrupt pin
update for interrupt handling
update for code stype check
correct version number error
update for parsing TAS2557 calibration firmware and updating calibration data
remove uncessary configurations which has been taken care of by firmware binary
update book/page/register to be unsigned char
update for end-system tuning
add reprogram for IRQ
add IRQ handler
fix typo error
fix bug : device number for TAS2557-stereo is 3
remove unnecessary
first commit