Bluetooth: hci_bcm: Support pcm params in dts
Marcel Holtmann
maintainerPATCH v2 4/4 Bluetooth: hci_bcm: Support pcm params in dts
From: Abhishek Pandit-Subedi <[email protected]>
BCM chips may require configuration of PCM to operate correctly and there is a vendor specific HCI command to do this. Add support in the hci_bcm driver to parse this from devicetree and configure the chip.
Signed-off-by Abhishek Pandit-Subedi <[email protected]>
Signed-off-by Marcel Holtmann <[email protected]>
--- drivers/bluetooth/hci_bcm.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
drivers/bluetooth/hci_bcm.c +19 -0
@@ -122,6 +122,7 @@ struct bcm_device {bool is_suspended;#endif bool no_early_set_baudrate; +u8 pcm_int_params[5 ]; };/* generic bcm uart resources */
@@ -594,6 +595,16 @@ static int bcm_setup(struct hci_uart *hu)host_set_baudrate (hu, speed); } +/* PCM parameters if provided */ +if (bcm->dev && bcm->dev->pcm_int_params[0 ] !=0xff ) { +struct bcm_set_pcm_int_params params; + +btbcm_read_pcm_int_params (hu->hdev, ¶ms); + +memcpy (¶ms, bcm->dev->pcm_int_params,5 ); +btbcm_write_pcm_int_params (hu->hdev, ¶ms); + } + finalize:release_firmware (fw);
@@ -1131,6 +1142,8 @@ static int bcm_acpi_probe(struct bcm_device *dev)static int bcm_of_probe (struct bcm_device *bdev) {device_property_read_u32 (bdev->dev,"max-speed" , &bdev->oper_speed); +device_property_read_u8_array (bdev->dev,"brcm,bt-pcm-int-params" , + bdev->pcm_int_params,5 );return 0 ; }
@@ -1146,6 +1159,9 @@ static int bcm_probe(struct platform_device *pdev) dev->dev = &pdev->dev; dev->irq =platform_get_irq (pdev,0 ); +/* Initialize routing field to an unused value */ + dev->pcm_int_params[0 ] =0xff ; +if (has_acpi_companion (&pdev->dev)) { ret =bcm_acpi_probe (dev);if (ret)
@@ -1406,6 +1422,9 @@ static int bcm_serdev_probe(struct serdev_device *serdev) bcmdev->serdev_hu.serdev = serdev;serdev_device_set_drvdata (serdev, bcmdev); +/* Initialize routing field to an unused value */ + bcmdev->pcm_int_params[0 ] =0xff ; +if (has_acpi_companion (&serdev->dev)) err =bcm_acpi_probe (bcmdev);else
Signature · 1 line
2.23.0