SPI como referencia

Hola chicos, estoy intentando hacer una clase para un componente específico que estoy programando. La cuestión es que este componente funciona por comunicación SPI.

Para que este dispositivo funcione con el puerto SPI tendré que pasarle como referencia un objeto SPI no?

Estoy intentendo hacer algo como esto

#include "AD9859.h"

AD9859 DDS(SPI);

void setup(){

   DDS.start();
}
void loop(){}

Mi pregunta es: ¿Como tengo que definir en el constructor de la clase una variable a la que yo pasarle un objeto SPI para que ésta trabaje con ella?

La declaración de la clase sería algo así.

class AD9859{

private:
 tipoSPI objetoSPI;

public:
 AD9859(tipoSPI &SPI){ 
   ObjetoSPI=SPI;
 }
 
 void start(){
 .
 .
 .
 }


}

Lo voy a preguntar de otra manera a ver si me explico mejor.

¿Como puedo pasar un objeto a una función y utilizar los métodos de ese objeto dentro de la función?

Por ejemplo con SoftwareSerial

yo declaro:

SoftwareSerial mySerial(tx,rx);

void función1 (mySerial);

¿Como debería ser la implementación de función1?

seria algo asi

void función1 (Stream &puerto)
{
  puerto.writeln("usando un puntero como referencia");
}

No necesitas pasarle un objeto SPI, pues sólo disponemos de uno, al menos en los arduinos "normales". Lo único que debes especificar es el pin que va a usar como SS tu dispositivo (el resto de pines son fijos).