We must have LPSPI1 running in all power modes (FullSpeed, LowSpeed, LowPower). I'm attaching the specific.c that we're using: I'm calling LPSPI_Deinit() before changing clocks, then LPSPI_MasterInit() when clocks are stable. This is the SPI configuration:
const lpspi_master_config_t LCD_SPI_config = {
.baudRate = 15000000UL,
.bitsPerFrame = 8UL,
.cpol = kLPSPI_ClockPolarityActiveHigh,
.cpha = kLPSPI_ClockPhaseFirstEdge,
.direction = kLPSPI_MsbFirst,
.pcsToSckDelayInNanoSec = 1000UL,
.lastSckToPcsDelayInNanoSec = 1000UL,
.betweenTransferDelayInNanoSec = 1000UL,
.whichPcs = kLPSPI_Pcs0,
.pcsActiveHighOrLow = kLPSPI_PcsActiveLow,
.pinCfg = kLPSPI_SdiInSdoOut,
.dataOutConfig = kLpspiDataOutRetained
};
First I had the LPSPI_CLK_SEL on PLL2_MAIN_CLK, now it's on PLL3_PFD0_CLK, in both cases if I switch into a clock mode that has the source PLL bypassed, the LPSPI peripheral doesn't initialize correctly, and I cannot perform any transfers anymore.