Is there any way to achieve this? I tried the following variations on the data written to the SPICLK register, with these results (HLL = clock high for 12.5ns then low for 2 * 12.5ns):
SPI1CLK = (2 << 12) | (2 << 6) | 2; // fails, clock remains high
SPI1CLK = (2 << 12) | (2 << 6) | 1; // fails, clock goes HLHLL
SPI1CLK = (2 << 12) | (2 << 6) | 0; // works but clock goes HLL
SPI1CLK = (2 << 12) | (1 << 6) | 2; // works but clock goes HLL
SPI1CLK = (2 << 12) | (1 << 6) | 1; // fails, clock is 80MHz
SPI1CLK = (2 << 12) | (1 << 6) | 0; // fails, clock goes HLHLL
SPI1CLK = (2 << 12) | (0 << 6) | 2; // fails, clock goes HLHLL
SPI1CLK = (2 << 12) | (0 << 6) | 1; // works but clock goes HLL
SPI1CLK = (2 << 12) | (0 << 6) | 0; // fails, clock is 80MHz
I thought I could get around it by using SPI mode 0 instead, but if I do that then the ESP8266 inverts the clock signal so that I get 25ns high and 12.5ns low, defeating the purpose of switching to mode 0.