Bluetooth Coexistance is done via two GPIOs, one input and one output. The output one indicates when the WLAN transmits. BTC is only available when the relevant boardflag is set. If the BTCMOD boardflag is also set, BTC is done on GPIOs 4 (input) and 5 (output) instead of the regular 7 (input) and 8 (output).
The question really is: does anyone hook these up? We should ask CSR, they make the bluetooth chips in the powerbook as revealed by hciconfig...
Disabling is done by simply disabling and setting the BTC output GPIO low from the ChipCommon core.
FIXME: There should be some page on GPIOs describing this completely. For now: To disable a GPIO (make it impossible to control from anywhere but the GPIO controlling core) unset its bit in the GPIO control register on the GPIO controlling core core. To lower it, set the outenable bit and unset the output bit.
FIXME: explain UART workaround...
Simply set the Bluetooth coexistance host flag and possibly the Bluetooth coexistance in alternate pins host flag and allow controlling the GPIOs from other cores but the GPIO controlling cores (FIXME: see above; unset the bits in the GPIO control register).