[PATCH v2 3/3] Bluetooth: hci_bcm: Add serdev support

Marcel Holtmann marcel at holtmann.org
Fri Aug 4 12:37:24 PDT 2017


Hi Stefan,

>>> Add basic support for Broadcom serial slave devices.
>>> Probe the serial device, retrieve its maximum speed and
>>> register a new hci uart device.
>>> 
>>> Tested/compatible with bcm43438 (RPi3).
>>> 
>>> Signed-off-by: Loic Poulain <loic.poulain at gmail.com>
>>> ...
>>> 
>>> +static int bcm_serdev_probe(struct serdev_device *serdev)
>>> +{
>>> +	struct bcm_bt_device *bcmdev;
>>> +	u32 speed;
>>> +	int err;
>>> +
>>> +	bcmdev = devm_kzalloc(&serdev->dev, sizeof(*bcmdev), GFP_KERNEL);
>>> +	if (!bcmdev)
>>> +		return -ENOMEM;
>>> +
>>> +	bcmdev->hu.serdev = serdev;
>>> +	serdev_device_set_drvdata(serdev, bcmdev);
>>> +
>>> +	err = of_property_read_u32(serdev->dev.of_node, "max-speed", &speed);
>>> +	if (!err)
>>> +		bcmdev->hu.oper_speed = speed;
>>> +
>>> +	return hci_uart_register_device(&bcmdev->hu, &bcm_proto);
>>> +}
>> 
>> We do not need any GPIO for reset lines or anything else for the rPI3?
>> 
> 
> unfortunately we don't have full schematics for RPI3, but according to firmware dt-blob.dts [1] there is a GPIO called BT_ON. This GPIO is controlled by the GPIO expander on the RPI3 board. The necessary driver for this expander is still out of tree (last mainlining attempt [2]).

so who handles this GPIO then right now (or any other GPIO for that matter)? I have seen Bluetooth being enabled and operational, but I really want to get this working in a plain upstream Fedora and without using hciattach or btattach.

Regards

Marcel




More information about the linux-rpi-kernel mailing list