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

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