platform_device and driver misunderstanding

Hello all!

I`m doing my embedded project with bf537 (on BF537-STAMP), with kernel 2.6.28.7.
Through digging over several drivers, LDD3 and other stuff, I realized that I`m totally confused.
The issue is that I`m writing network(ethernet) driver, using spi(existing spidev or over) driver. By now I have a driver, that is capable to create ethx interface and fill in information(all of these is fully described in LDD3). But what I can`t find, is the way, how I can use ANOTHER, existing spi driver. Probe() function gets struct platform_device, which(as i know) i fill in a special file, there rosources, devices and other staff is allocated and registerd, etc... So, if i have to get an access to spi(spi resources), i have to declare them, make a master....so to write a nes spi driver. But i want to use existing.
Also, looking at similar driver(bfin_mac) i found something useful, but still it creates MII master, it doesn`t take it from "somewhere in the kernel".

I understand, that what i wrote may be wrong, but that is what I found using a set of drivers from different versions of the kernel.

Could someone explain the mechanism driver ONE may use loaded in the kernel driver TWO?

Thank you very much!!