Alternate Hardware Drivers and Device Tree

I would like to be able to make use of some internal hardware on the
AM335x (like PWM, SPI, and CAN) for hard real-time operations. In order
to get these pieces of hardware powered on with clocks and out of reset,
it's necessary to include them in the device tree bindings. But this
loads the kernel-mode device driver which will typically conflict with
my code (executing in a real-time thread on the ARM or in the PRU).

There's an old LWN article about using bind/unbind to disable a driver
and allow the underlying hardware to be controlled by something else:

https://lwn.net/Articles/143397/

Is this still how I should handle replacing the kernel driver for a
chunk of hardware, or is there an alternate means to do this with a
recent 3.x kernel?

The article references kernel 2.6.13, which is pretty long in the tooth
these days! :slight_smile: