• Matthias Reichl's avatar
    ASoC: bcm2835: Support left/right justified and DSP modes · abd4f0e1
    Matthias Reichl authored
    DSP modes and left/right justified modes can be supported
    on bcm2835 by configuring the frame sync polarity and
    frame sync length registers and by adjusting the
    channel data position registers.
    
    Clock and frame sync polarity handling in hw_params has
    been refactored to make the interaction between logical
    rising/falling edge frame start and physical configuration
    (changed by normal/inverted polarity modes) clearer.
    
    Modes where the first active data bit is transmitted immediately
    after frame start (eg DSP mode B with slot 0 active)
    only work reliable if bcm2835 is configured as frame master.
    In frame slave mode channel swap (or shift, this isn't quite
    clear yet) can occur.
    
    Currently the driver only warns if an unstable configuration
    is detected but doensn't prevent using them.
    Signed-off-by: default avatarMatthias Reichl <hias@horus.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    abd4f0e1
bcm2835-i2s.c 24.1 KB