• Maksim Kiselev's avatar
    spi: sun6i: add quirk for in-controller clock divider · 8e886ac8
    Maksim Kiselev authored
    Previously SPI controllers in Allwinner SoCs has a clock divider inside.
    However now the clock divider is removed and to set the transfer clock
    rate it's only needed to set the SPI module clock to the target value
    and configure a proper work mode.
    
    According to the datasheet there are three work modes:
    
    | SPI Sample Mode         | SDM(bit13) | SDC(bit11) | Run Clock |
    |-------------------------|------------|------------|-----------|
    | normal sample           |      1     |      0     | <= 24 MHz |
    | delay half cycle sample |      0     |      0     | <= 40 MHz |
    | delay one cycle sample  |      0     |      1     | >= 80 MHz |
    
    Add a quirk for this kind of SPI controllers.
    
    Co-developed-by: Icenowy Zheng <icenowy@aosc.io
    Signed-off-by: Maksim Kiselev <bigunclemax@gmail.com
    Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com
    Reviewed-by: Andre Przywara <andre.przywara@arm.com
    Link: https://lore.kernel.org/r/20230510081121.3463710-4-bigunclemax@gmail.com
    Signed-off-by: Mark Brown <broonie@kernel.org
    8e886ac8
spi-sun6i.c 19.4 KB