BTSCO(4) | Device Drivers Manual | BTSCO(4)

# NAME

`btsco` —
Bluetooth SCO Audio

# SYNOPSIS

`btsco* at bthub?`
`audio* at audiobus?`

# DESCRIPTION

The `btsco` driver provides support for Bluetooth SCO (Synchronous connection-oriented) Audio devices through the audio(4) driver.

The `btsco` driver must be configured at run time with the btdevctl(8) program. The following properties are used by the `btsco` driver during autoconfiguration:

local-bdaddr
  Local device address.
remote-bdaddr
  Remote device address.
service-name
  The `btsco` driver matches the ‘HF’ and ‘HSET’ services. For the ‘HF’ service, the `btsco` device will, on open(2), listen for incoming connections from the remote device. Otherwise, `btsco` will attempt to initiate a connection to the remote device.
rfcomm-channel
  This integer value is not used directly, but will be stored and passed via the `BTSCO_INFO` ioctl as below:

SCO connections require a baseband connection between the two devices before they can be created. The `btsco` driver does not create this, but can provide information to facilitate an application setting up a control channel prior to use, via the `BTSCO_INFO` ioctl(2) call on the mixer device, which returns a btsco_info structure as follows:

    #include <dev/bluetooth/btsco.h>

    struct btsco_info {
    	bdaddr_t	laddr;		/* controller bdaddr */
    	bdaddr_t	raddr;		/* headset bdaddr */
    	uint8_t		channel;	/* RFCOMM channel */
    	int		vgs;		/* mixer index speaker */
    	int		vgm;		/* mixer index mic */
    };

    #define BTSCO_INFO	_IOR('b', 16, struct btsco_info)

The `btsco` driver can be configured to act in Connect or Listen mode. In Connect mode, the `btsco` driver will initiate a connection to the remote device on an open(2) call, whereas in Listen mode, open(2) will block until the remote device initiates the connection.

# SEE ALSO

bthset(1), ioctl(2), audio(4), bluetooth(4), bthub(4), btdevctl(8)

# HISTORY

The `btsco` driver was written for NetBSD 4.0 by Iain Hibbert under the sponsorship of Itronix, Inc.

# BUGS

`btsco` takes no notice of the HCI Voice Setting in the Bluetooth controller, and this must be 0x0060 (the default) as alternate values are currently unsupported.

November 29, 2014 | NetBSD 9.3