@smartua, Hi, welcome to the forum!
I hope you have seen and read How to get the best out of this forum already.
Yes, with GxEPD you can pass an instance of SPIClass to the constructor of GxIO_SPI.
This makes GxEPD easy to adapt to hardware with multiple SPI channels.
With the recent version of GxEPD2 you also have a similar option. See README.md.
See also related post Waveshare e-paper displays with SPI - #2924 by ZinggJM :
Version 1.4.3 of library GxEPD2 is available, install or update with Library Manager.
- added option to select an alternate HW SPI channel and/or SPI settings
- by method selectSPI(SPIClass& spi, SPISettings spi_settings) of driver base class GxEPD2_EPD
- by calling selectSPI before calling init() of display class
- or by calling extended init() method that has these parameters added
- tested with RPi Pico RP2040 using Good Display DESPI-PICO connection shield
- updated GxEPD2_Example to show use with DESPI-PICO
- DESPI-PICO: see https://www.good-display.com/product/393.html
You would need to uncomment line 118
//display.init(115200, true, 10, false, SPI0, SPISettings(4000000, MSBFIRST, SPI_MODE0)); // extended init method with SPI channel and/or settings selection
and replace SPI0 with your HW SPI instance.
But I did not test this with ESP32.
Please specify what help you need; what is your issue?
Jean-Marc