lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <8481B301-0B92-4247-8DC0-A1EDB32325F4@holtmann.org>
Date:   Thu, 15 Mar 2018 14:54:59 +0100
From:   Marcel Holtmann <marcel@...tmann.org>
To:     Sebastian Reichel <sebastian.reichel@...labora.co.uk>
Cc:     Thierry Escande <thierry.escande@...aro.org>,
        Bjorn Andersson <bjorn.andersson@...aro.org>,
        Rob Herring <robh+dt@...nel.org>,
        Andy Gross <andy.gross@...aro.org>,
        Johan Hedberg <johan.hedberg@...il.com>,
        David Brown <david.brown@...aro.org>,
        Mark Rutland <mark.rutland@....com>,
        Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
        Loic Poulain <loic.poulain@...aro.org>,
        Srinivas Kandagatla <srinivas.kandagatla@...aro.org>,
        Linux Bluetooth mailing list 
        <linux-bluetooth@...r.kernel.org>, linux-arm-msm@...r.kernel.org,
        devicetree <devicetree@...r.kernel.org>,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH v4 2/3] dt-bindings: net: bluetooth: Add
 qualcomm-bluetooth

Hi Sebastian,

>>>> BT_DISABLE_N is the name of this pin in the datasheet of the QCA chip,
>>>> not on the board, so this name is the same regardless of what you name
>>>> the line or gpio your board connect it to.
>>> 
>>> and QCA chip v1 and QCA chip v2 will use the same driver and
>>> same firmware loading mechanism. So why do we have to add a new
>>> GPIO naming if they decide to change the name in the data sheet.
>>> With Bluetooth it is pretty much all the same. Every UART chip
>>> has a shutdown/reset GPIO to enable/disable the chip behind the
>>> UART.
>>> 
>>>>> A new board should not require driver changes, you just ship a new DT
>>>>> for that board and an existing driver hopefully just does the job. No
>>>>> matter how someone named a GPIO in a piece of paper.
>>>>> 
>>>> 
>>>> I totally agree with the fact that the board should not affect the
>>>> naming of the gpio in the driver. But I do enjoy when we refer to pins
>>>> by their real name - instead of having to guess which pin in the _chip_
>>>> specification the driver actually refer to.
>>>> 
>>>> 
>>>> That said, what name would you prefer for this?
>>>> 
>>>> Afaict this is not "wakeup" and there are a few extra steps between the
>>>> disabled state and "bluetooth is enabled", so "enable" feels slightly
>>>> wrong. And it probably should be "bluetooth" and not just "device" as
>>>> this refers to a pin on a WiFi/BT combo chip.
>>> 
>>> The Broadcom side called it shutdown GPIO, it is essentially the
>>> shutdown/reset GPIO or power on/off GPIO. Personally I do not
>>> care what it is named, but it will be all the same for all
>>> Bluetooth chips. Take a poll from Broadcom, Intel, Realtek and
>>> Qualcomm and you can pick a reasonable common name.
>> 
>> The Nokia driver has "bluetooth-wakeup" gpio. The Broadcom one has
>> "device-wakeup" and "shutdown". The "shutdown" gpio is set to its active
>> state to power on the chip which sounds reversed logic. Same for the
>> "bt-disable-n" gpio in the Qualcomm driver, configured as ACTIVE_HIGH, and
>> which is set to 1 to enable it...
>> 
>> So for consistency, naming it as "shutdown" to stick to the bcm driver but
>> it should be configured as ACTIVE_LOW in the dts so we actually do a
>> gpiod_set_value(0) to un-shutdown it. Does that sound ok?
> 
> FWIW you picked the wrong gpio from the nokia bluetooth binding. The
> gpio for shutdown would be "reset". The "bluetooth-wakeup" is
> required for normal operation to exit idle mode. The "reset" name
> used by the nokia binding is quite common for DT:
> 
> Documentation/devicetree/bindings $ git grep reset-gpios | wc -l
> 212
> 
> I guess it only makes sense when the device is actually being
> reset, though (i.e. for Nokia the settings are back to defaults
> and you need to re-upload the FW).

that is actually a good point. I like to differentiate between a shutdown GPIO (and we can argue about the inversion here) and the reset GPIO. If we loose the firmware and the programmed BD_ADDR, then it is a hard-reset, otherwise it is shutdown/power GPIO.

So can we agree on how we name the hard-reset, shutdown, wakeup etc. GPIOs for Bluetooth UART devices?

Regards

Marcel

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ