Here's how to free up all the SPI buses on the pi-top 
Sometimes, you may wish to work with peripherals (such as HATs) or content that is specifically designed to work with particular GPIO pins. The pi-top  uses I2C for communication with the hub, with a fixed I2C address of 0x11. Anything that requires this address is unfortunately incompatible.
I2C uses GPIO pins 2 and 3. GPIO 2 is the Data pin and GPIO 3 is the Clock pin
However, pi-top  also uses SPI1 by default for its onboard Mini OLED Screen. The good news is that the pi-top  is also capable of using SPI0 to do this instead. This is useful for when the GPIO pins that are used by SPI1 are desired for something else - for example, a HAT that uses SPI1 or any of its pins (regardless of its intended use).
SP1 uses GPIO pins 16, 17, 18, 19, 20, and 21
SPI0 uses GPIO pins 7, 8 9, 10, and 11
To set the SPI bus of the OLED, run the appropriate command:
pi-top oled spi 0 #Forces the OS to switch the SPI bus to Port 0
pi-top oled spi 1 #Forces the OS to switch the SPI bus to Port 1
It is also possible to disable both SPI buses for the OLED, freeing up all of the pins:
pi-top oled spi off #The will disable the Mini Oled Screen Completely
Remember that the OLED will only work on pi-top OS or on Raspberry Pi OS with the pi-top packages installed. If you have neither of these then the OLED won't function
pinout.xyz is a great place to learn the additional functions of the GPIO pins on the Raspberry Pi. Have a look at their site for more information
The Mini OLED Screen is fed by a multiplexer controlled by the Hub. The multiplexer is connected to SPI1, SPI0 and to the hub. The hub then selects which bus is connected to the Mini OLED Screen at any time.