It should work fine. One thing to remind you is that OSPi uses four digital pins to communicate with the shift register. Among them one is the OE (output enable pin, active low) which is pulled high by default (to prevent shift register output during initialization), and set to low when the initialization is completed. The other three are the standard shift register pins (latch, clock, and data). You can check OpenSprinkler.cpp for relevant code (specifically the begin() function and apply_all_station_bits() function.