Uhm...
Following your suggestions I'm going somewhere.
It is not much pratical right now, but still it works, more or less.
I've wrote a little script:
#!/bin/sh
modprobe hci_uart
sleep 1
setserial /dev/ttyS3 baud_base 921600
hciattach /dev/ttyS3 billionton
hciconfig hci0 up
/etc/init.d/bluetooth start
It basically does what /etc/init.d/bluetooth alone didn't do: setup my card and then startup the bluetooth services. Of course I too have commented out the references to HIDD in /etc/init.d/bluetooth.
However, even if when i run it everything seems to work well ("hciconfig -a" shows the device, and "hcitool -scan" gives the proper results), I get the following message just after running it:
BCSP initialization time out
Making some test, I found that is due to the "hciconfig hci0 up" being in the script.
If I remove it from there and run it manually, I don't get the message.
I've tried also to put some sleep time between "hciattach" and "hciconfig" in the script, but still I get the message. Any hint on this?
I can remove the card running /etc/init.d/bluetooth stop. When I re-insert it I should re-run my script. When I suspend, I have to resume the card manually, by "cardctl resume 0".
At least this way, I've to run just one command upon starting/stopping the bluetooth.
Thanks for any help so far.
***little update***
The card is somewhat unreliable. Sometimes, upon insertion, the led doesn't blink.
Even if "cardctl status" shows the card as being active, it is not.
Doing "cardctl suspend 0", waiting a couple of seconds, and then "cardctl resume 0",
makes it up. Then the script works well, and doesn't give that "BCSP initialization time out" error message.