Originally Posted by am_bb8800
I could not work out for the life of me how the 2 drivers triggered the PC USB port to charge the Blackberry until now. They trigger a "turn on" supply to pin 2 of the USB cable which the Blackberry Unit sees and turns on its on board charging circuit.
BTW - the drivers don't "trigger" the device or vice versa. When the BB is plugged in and the drivers are installed the drivers recognize a device ID (actually, I'm guessing a manufacturer ID since that's what we use on linux) and adjust the current to 500mA. If there are no drivers then the current stays at 100mA and you get that on-device popup, which an ESC key will dismiss and charge continues.
In the case of a modern (2.6.21 and up) linux kernel the driver is actually a kernel module (berry_charge.ko) that does the current adjusting, source is in the kernel tree if you're curious. As far as I know it only works with non-SD card devices that pop up with channel 1; newer devices with SD cards need to use the bcharge tool from Barry, as it understands the devices are on channel 6 (then reset to 4) and not on 1. I just run mine without the tool right now and hit ESC on the device and let it charge at 100mA.
OOh, I take that back! I just peaked at the 2.6.23 code and the support for newer SD devices is in the code: Linux/drivers/usb/misc/berry_charge.c
(lines 029, 030)