spi: pxa2xx: Apply CS clk quirk to BXT
authorEvan Green <evgreen@chromium.org>
Mon, 27 Apr 2020 23:32:48 +0000 (16:32 -0700)
committerMark Brown <broonie@kernel.org>
Thu, 30 Apr 2020 14:22:58 +0000 (15:22 +0100)
With a couple allies at Intel, and much badgering, I got confirmation
from Intel that at least BXT suffers from the same SPI chip-select
issue as Cannonlake (and beyond). The issue being that after going
through runtime suspend/resume, toggling the chip-select line without
also sending data does nothing.

Add the quirk to BXT to briefly toggle dynamic clock gating off and
on, forcing the fabric to wake up enough to notice the CS register
change.

Signed-off-by: Evan Green <evgreen@chromium.org>
Cc: Shobhit Srivastava <shobhit.srivastava@intel.com>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20200427163238.1.Ib1faaabe236e37ea73be9b8dcc6aa034cb3c8804@changeid
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-pxa2xx.c

index 73d2a65d0b6eff66a9a692580ff08b4f46c55ff8..20dcbd35611a7e3c698595868500430bb9c0f5b2 100644 (file)
@@ -150,6 +150,7 @@ static const struct lpss_config lpss_platforms[] = {
                .tx_threshold_hi = 48,
                .cs_sel_shift = 8,
                .cs_sel_mask = 3 << 8,
+               .cs_clk_stays_gated = true,
        },
        {       /* LPSS_CNL_SSP */
                .offset = 0x200,