Re: [PATCH v4] bluetooth: hci_bcm: enable IRQ capability from node

From: guillaume La Roque
Date: Fri Dec 13 2019 - 07:31:25 EST


Hi Johan,

On 12/13/19 12:17 PM, Johan Hovold wrote:
> On Fri, Dec 13, 2019 at 11:55:21AM +0100, Guillaume La Roque wrote:
>> Actually IRQ can be found from GPIO but all platforms don't support
>> gpiod_to_irq, it's the case on amlogic chip.
>> so to have possibility to use interrupt mode we need to add interrupts
>> field in node and support it in driver.
> "node" is a bit vague, please refer to devicetree here and in the patch
> summary.
>
Âi will
>> Signed-off-by: Guillaume La Roque <glaroque@xxxxxxxxxxxx>
>> ---
>> drivers/bluetooth/hci_bcm.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c
>> index f8f5c593a05c..aa194f8d703e 100644
>> --- a/drivers/bluetooth/hci_bcm.c
>> +++ b/drivers/bluetooth/hci_bcm.c
>> @@ -13,6 +13,7 @@
>> #include <linux/module.h>
>> #include <linux/acpi.h>
>> #include <linux/of.h>
>> +#include <linux/of_irq.h>
>> #include <linux/property.h>
>> #include <linux/platform_data/x86/apple.h>
>> #include <linux/platform_device.h>
>> @@ -1421,6 +1422,7 @@ static int bcm_serdev_probe(struct serdev_device *serdev)
>> #endif
>> bcmdev->serdev_hu.serdev = serdev;
>> serdev_device_set_drvdata(serdev, bcmdev);
>> + bcmdev->irq = of_irq_get(bcmdev->dev->of_node, 0);
> And this clearly makes no sense for acpi, so you'd need to add it to
> bcm_of_probe().
>
> Shouldn't you be used using of_irq_get_byname()?
i can use it if you prefer but no other interrupt need to be defined
>
> And since you're extending the binding, I think you need a preparatory
> patch documenting this in:
>
> Documentation/devicetree/bindings/net/broadcom-bluetooth.txt
sorry i forgot this, i will do
>> /* Initialize routing field to an unused value */
>> bcmdev->pcm_int_params[0] = 0xff;
> Johan


thanks

Guillaume