Namespaces
Enumerations
enum ClockDivisionRate
| Name | Value |
|---|---|
| DivideBy1 | 0 |
| DivideBy2 | 1 |
| DivideBy3 | 2 |
| DivideBy4 | 3 |
| DivideBy6 | 4 |
| DivideBy8 | 5 |
| DivideBy12 | 6 |
| DivideBy16 | 7 |
Register values used by clock dividers in the ALC5663.
Defined at line 32 of file ../../src/media/audio/drivers/codecs/alc5663/alc5663_registers.h
Records
-
class AdcDacClockControlReg -
class Alc5663Device -
class AsrcControl1Reg -
class AsrcControl2Reg -
class AsrcControl4Reg -
class BypassStereoDacMixerControlReg -
class DacRefLdoControlReg -
class FakeI2c -
class GeneralControlReg -
class GlobalClockControlReg -
class HpAmpControl1Reg -
class HpAmpControl2Reg -
class HpAmpControl3Reg -
class I2cClient -
class I2s1DigitalInterfaceControlReg -
class InternalClockControlReg -
class PllControl1Reg -
class PllControl2Reg -
class PllParameters -
class PowerManagementControl1Reg -
class PowerManagementControl2Reg -
class PowerManagementControl3Reg -
class PowerManagementControl4Reg -
class PowerManagementControl5Reg -
class PowerManagementControlMisc -
class ResetAndDeviceIdReg -
class SidetoneControlReg -
class StereoDacDigitalMixerControl -
class StereoDacDigitalVolumeReg -
class VendorIdReg -
class VersionIdReg
Functions
-
zx_status_t CalculatePllParams (uint32_t input_freq, uint32_t desired_freq, PllParameters * params)Calculate phase-locked loop (PLL) parameters.
In particular, we calculate values of N, M and K such that:
* The output frequency is >= |desired_freq|.
* The output frequency is as close as possible to |desired_freq|.
That is, this function will never produce an output frequency smaller
than |desired_freq|, but may produce one larger if an exact answer is
not available.
The ALC5663 manual states outputs should be in the range 2.048MHz to 40MHz,
and that K is typically 2.
We require |input_freq| and |desired_freq| to be > 0.
Defined at line 36 of file ../../src/media/audio/drivers/codecs/alc5663/alc5663.cc
-
template <typename Register, typename AddressType>zx_status_t ReadRegister (I2cClient<AddressType> * client, Register * result)Read the given register.
Defined at line 86 of file ../../src/media/audio/drivers/codecs/alc5663/i2c_client.h
-
template <typename Register, typename AddressType>zx_status_t WriteRegister (I2cClient<AddressType> * client, const Register & value)Write the given register.
Defined at line 92 of file ../../src/media/audio/drivers/codecs/alc5663/i2c_client.h
-
zx_status_t SetUpDeviceClocks (Alc5663Client * client, uint32_t sample_rate, uint32_t bclk_frequency)Setup the device clocks, ready to play and record audio.
Defined at line 101 of file ../../src/media/audio/drivers/codecs/alc5663/alc5663.cc
-
template <typename Register, typename AddressType, typename F>zx_status_t MapRegister (I2cClient<AddressType> * client, F map)Read the given register, pass it through the given function, and then
write the result back.
If an error occurs in either read or write, we return the status back
to the user, though provide no way to distinguish which operation
failed. If this matters, call |ReadRegister| and |WriteRegister|
directly instead.
Defined at line 104 of file ../../src/media/audio/drivers/codecs/alc5663/i2c_client.h
-
zx_status_t EnableAudioOutput (Alc5663Client * client)Enable audio output of the ALC5663 codec.
Defined at line 233 of file ../../src/media/audio/drivers/codecs/alc5663/alc5663.cc