• Peter Rosin's avatar
    ASoC: atmel_ssc_dai: Allow more rates · b6d6c6e9
    Peter Rosin authored
    When the SSC acts as BCK master, use a ratnum rule to limit
    the rate instead of only doing the standard rates. When the SSC
    acts as BCK slave, allow any BCK frequency up to the SSC master
    clock, divided by either of 2, 3 or 6.
    
    Put a cap at 384kHz. Who's /ever/ going to need more than that?
    
    The divider of 2, 3 or 6 is selected based on the Serial Clock Ratio
    Considerations section from the SSC documentation:
    
        The Transmitter and the Receiver can be programmed to operate
        with the clock signals provided on either the TK or RK pins.
        This allows the SSC to support many slave-mode data transfers.
        In this case, the maximum clock speed allowed on the RK pin is:
        - Peripheral clock divided by 2 if Receiver Frame Synchro is input
        - Peripheral clock divided by 3 if Receiver Frame Synchro is output
        In addition, the maximum clock speed allowed on the TK pin is:
        - Peripheral clock divided by 6 if Transmit Frame Synchro is input
        - Peripheral clock divided by 2 if Transmit Frame Synchro is output
    Signed-off-by: default avatarPeter Rosin <peda@axentia.se>
    Acked-by: default avatarBo Shen <voice.shen@atmel.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    b6d6c6e9
atmel_ssc_dai.h 3.25 KB