How do I access SPI driver?

How do I get a handle on a SPI bus within the code (Specifically SPI5) ? I have set the pins accordingly in hwdef.dat and all I want to do is transmit a counter (0x01 0x02 0x03 … and so on) on the MOSI line within the 1hz loop in UserCode.cpp (I have the code for this already just no clue on how to access the SPI driver)

I’ve used chibios a lot outside of ardupilot but after sifting through ardupilots HAL system, there are so many abstractions and layers so i’ve become confused and am circling. How do I get a handle on SPI5 to access init, transfer, read functions etc.

UserCode.cpp below:

extern const AP_HAL::HAL& hal;

void Copter::userhook_init()
{
    // put your initialisation code here
    // this will be called once at start-up

             gcs().send_text(MAV_SEVERITY_CRITICAL, "SPI5 COUNTER BEGIN");

        // Set SPI5 driver settings here ?
        // SPI5 begin ?
        // SPI5 transmit ?

        hal.spi..... ?
}

I dont mind if the solution uses the Ardupilot HAL abstraction or the direct chibios implementation, As long as someone can tell me how to access SPI regardless.