* [PATCH 0/3] ARM: dts: rockchip: Use hci_bcm driver for bcm43540 on Veyron devices
@ 2019-10-25 21:54 Abhishek Pandit-Subedi
2019-10-25 21:54 ` [PATCH 2/3] dt-bindings: net: broadcom-bluetooth: Add BCM43540 compatible string Abhishek Pandit-Subedi
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Abhishek Pandit-Subedi @ 2019-10-25 21:54 UTC (permalink / raw)
To: Johan Hedberg, Marcel Holtmann
Cc: linux-bluetooth, dianders, Abhishek Pandit-Subedi, devicetree,
David S. Miller, Heiko Stuebner, netdev, linux-kernel,
linux-rockchip, Rob Herring, Ondrej Jirman, Mark Rutland,
Chen-Yu Tsai, linux-arm-kernel
This patch series enables using the Broadcom HCI UART driver with the
BCM43540 Wi-Fi + Bluetooth chip. This chip is used on a RK3288 based
board (Veyron) and these changes have been tested on the Minnie variant
of the board (i.e. rk3288-veyron-minnie.dts).
Abhishek Pandit-Subedi (3):
Bluetooth: hci_bcm: Add compatible string for BCM43540
dt-bindings: net: broadcom-bluetooth: Add BCM43540 compatible string
ARM: dts: rockchip: Add brcm bluetooth module on uart0
.../bindings/net/broadcom-bluetooth.txt | 1 +
arch/arm/boot/dts/rk3288-veyron.dtsi | 31 +++++--------------
drivers/bluetooth/hci_bcm.c | 1 +
3 files changed, 9 insertions(+), 24 deletions(-)
--
2.24.0.rc0.303.g954a862665-goog
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH 2/3] dt-bindings: net: broadcom-bluetooth: Add BCM43540 compatible string 2019-10-25 21:54 [PATCH 0/3] ARM: dts: rockchip: Use hci_bcm driver for bcm43540 on Veyron devices Abhishek Pandit-Subedi @ 2019-10-25 21:54 ` Abhishek Pandit-Subedi 2019-10-25 21:54 ` [PATCH 3/3] ARM: dts: rockchip: Add brcm bluetooth module on uart0 Abhishek Pandit-Subedi 2019-10-26 5:27 ` [PATCH 0/3] ARM: dts: rockchip: Use hci_bcm driver for bcm43540 on Veyron devices Marcel Holtmann 2 siblings, 0 replies; 6+ messages in thread From: Abhishek Pandit-Subedi @ 2019-10-25 21:54 UTC (permalink / raw) To: Johan Hedberg, Marcel Holtmann Cc: linux-bluetooth, dianders, Abhishek Pandit-Subedi, devicetree, David S. Miller, netdev, linux-kernel, Rob Herring, Ondrej Jirman, Mark Rutland, Chen-Yu Tsai The BCM43540 is a 802.11 a/b/g/n/ac WiFi + Bluetooth 4.1 chip from Broadcom. This is present in Azurewave AW-CM195NF WiFi+BT module. Signed-off-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org> --- Documentation/devicetree/bindings/net/broadcom-bluetooth.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt b/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt index 4fa00e2eafcf..c749dc297624 100644 --- a/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt +++ b/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt @@ -14,6 +14,7 @@ Required properties: * "brcm,bcm4330-bt" * "brcm,bcm43438-bt" * "brcm,bcm4345c5" + * "brcm,bcm43540-bt" Optional properties: -- 2.24.0.rc0.303.g954a862665-goog ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/3] ARM: dts: rockchip: Add brcm bluetooth module on uart0 2019-10-25 21:54 [PATCH 0/3] ARM: dts: rockchip: Use hci_bcm driver for bcm43540 on Veyron devices Abhishek Pandit-Subedi 2019-10-25 21:54 ` [PATCH 2/3] dt-bindings: net: broadcom-bluetooth: Add BCM43540 compatible string Abhishek Pandit-Subedi @ 2019-10-25 21:54 ` Abhishek Pandit-Subedi 2019-10-25 22:50 ` Doug Anderson 2019-10-26 5:27 ` [PATCH 0/3] ARM: dts: rockchip: Use hci_bcm driver for bcm43540 on Veyron devices Marcel Holtmann 2 siblings, 1 reply; 6+ messages in thread From: Abhishek Pandit-Subedi @ 2019-10-25 21:54 UTC (permalink / raw) To: Johan Hedberg, Marcel Holtmann Cc: linux-bluetooth, dianders, Abhishek Pandit-Subedi, devicetree, Heiko Stuebner, linux-kernel, linux-rockchip, Rob Herring, Mark Rutland, linux-arm-kernel This enables the Broadcom uart bluetooth driver on uart0 and gives it ownership of its gpios. In order to use this, you must enable the following kconfig options: - CONFIG_BT_HCIUART_BCM - CONFIG_SERIAL_DEV Signed-off-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org> --- arch/arm/boot/dts/rk3288-veyron.dtsi | 31 +++++++--------------------- 1 file changed, 7 insertions(+), 24 deletions(-) diff --git a/arch/arm/boot/dts/rk3288-veyron.dtsi b/arch/arm/boot/dts/rk3288-veyron.dtsi index 7525e3dd1fc1..8c9f91ba6f57 100644 --- a/arch/arm/boot/dts/rk3288-veyron.dtsi +++ b/arch/arm/boot/dts/rk3288-veyron.dtsi @@ -23,30 +23,6 @@ reg = <0x0 0x0 0x0 0x80000000>; }; - bt_activity: bt-activity { - compatible = "gpio-keys"; - pinctrl-names = "default"; - pinctrl-0 = <&bt_host_wake>; - - /* - * HACK: until we have an LPM driver, we'll use an - * ugly GPIO key to allow Bluetooth to wake from S3. - * This is expected to only be used by BT modules that - * use UART for comms. For BT modules that talk over - * SDIO we should use a wakeup mechanism related to SDIO. - * - * Use KEY_RESERVED here since that will work as a wakeup but - * doesn't get reported to higher levels (so doesn't confuse - * Chrome). - */ - bt-wake { - label = "BT Wakeup"; - gpios = <&gpio4 RK_PD7 GPIO_ACTIVE_HIGH>; - linux,code = <KEY_RESERVED>; - wakeup-source; - }; - - }; power_button: power-button { compatible = "gpio-keys"; @@ -434,6 +410,13 @@ /* Pins don't include flow control by default; add that in */ pinctrl-names = "default"; pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; + + bluetooth { + compatible = "brcm,bcm43540-bt"; + host-wakeup-gpios = <&gpio4 RK_PD7 GPIO_ACTIVE_HIGH>; + shutdown-gpios = <&gpio4 RK_PD5 GPIO_ACTIVE_LOW>; + device-wakeup-gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; + }; }; &uart1 { -- 2.24.0.rc0.303.g954a862665-goog ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 3/3] ARM: dts: rockchip: Add brcm bluetooth module on uart0 2019-10-25 21:54 ` [PATCH 3/3] ARM: dts: rockchip: Add brcm bluetooth module on uart0 Abhishek Pandit-Subedi @ 2019-10-25 22:50 ` Doug Anderson 2019-10-26 17:39 ` Abhishek Pandit-Subedi 0 siblings, 1 reply; 6+ messages in thread From: Doug Anderson @ 2019-10-25 22:50 UTC (permalink / raw) To: Abhishek Pandit-Subedi Cc: Johan Hedberg, Marcel Holtmann, linux-bluetooth, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Heiko Stuebner, LKML, open list:ARM/Rockchip SoC..., Rob Herring, Mark Rutland, Linux ARM Hi, On Fri, Oct 25, 2019 at 2:55 PM Abhishek Pandit-Subedi <abhishekpandit@chromium.org> wrote: > > This enables the Broadcom uart bluetooth driver on uart0 and gives it > ownership of its gpios. In order to use this, you must enable the > following kconfig options: > - CONFIG_BT_HCIUART_BCM > - CONFIG_SERIAL_DEV > > Signed-off-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org> > --- > > arch/arm/boot/dts/rk3288-veyron.dtsi | 31 +++++++--------------------- > 1 file changed, 7 insertions(+), 24 deletions(-) > > diff --git a/arch/arm/boot/dts/rk3288-veyron.dtsi b/arch/arm/boot/dts/rk3288-veyron.dtsi > index 7525e3dd1fc1..8c9f91ba6f57 100644 > --- a/arch/arm/boot/dts/rk3288-veyron.dtsi > +++ b/arch/arm/boot/dts/rk3288-veyron.dtsi You are changing this for _all_ veryon, not just those veyron devices using Broadcom. I don't think you want to change the marvell-based boards. ...presumably you'll want to make you change only affect minnie, speedy, and mickey. > @@ -23,30 +23,6 @@ > reg = <0x0 0x0 0x0 0x80000000>; > }; > > - bt_activity: bt-activity { > - compatible = "gpio-keys"; > - pinctrl-names = "default"; > - pinctrl-0 = <&bt_host_wake>; > - > - /* > - * HACK: until we have an LPM driver, we'll use an > - * ugly GPIO key to allow Bluetooth to wake from S3. > - * This is expected to only be used by BT modules that > - * use UART for comms. For BT modules that talk over > - * SDIO we should use a wakeup mechanism related to SDIO. > - * > - * Use KEY_RESERVED here since that will work as a wakeup but > - * doesn't get reported to higher levels (so doesn't confuse > - * Chrome). > - */ > - bt-wake { > - label = "BT Wakeup"; > - gpios = <&gpio4 RK_PD7 GPIO_ACTIVE_HIGH>; > - linux,code = <KEY_RESERVED>; > - wakeup-source; > - }; > - > - }; > > power_button: power-button { > compatible = "gpio-keys"; > @@ -434,6 +410,13 @@ > /* Pins don't include flow control by default; add that in */ > pinctrl-names = "default"; > pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; > + > + bluetooth { > + compatible = "brcm,bcm43540-bt"; You probably need some pinctrl entries here to make sure that things are properly configured, like: pinctrl-names = "default"; pinctrl-0 = <&bt_host_wake>, <&bt_dev_wake>, <&bt_enable>; This would require defining bt_dev_wake and bt_enable and removing the hacky output-only versions they have now. > + host-wakeup-gpios = <&gpio4 RK_PD7 GPIO_ACTIVE_HIGH>; > + shutdown-gpios = <&gpio4 RK_PD5 GPIO_ACTIVE_LOW>; Right now gpio4 RK_PD5 is controlled by the "sdio_pwrseq". Should you remove it from there? Looks like it was a no-op for marvell which makes it a little easier. > + device-wakeup-gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; You probably need to stop driving this in the pinctrl hogs for Broadcom boards... -Doug ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 3/3] ARM: dts: rockchip: Add brcm bluetooth module on uart0 2019-10-25 22:50 ` Doug Anderson @ 2019-10-26 17:39 ` Abhishek Pandit-Subedi 0 siblings, 0 replies; 6+ messages in thread From: Abhishek Pandit-Subedi @ 2019-10-26 17:39 UTC (permalink / raw) To: Doug Anderson Cc: Johan Hedberg, Marcel Holtmann, linux-bluetooth, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Heiko Stuebner, LKML, open list:ARM/Rockchip SoC..., Rob Herring, Mark Rutland, Linux ARM Yes, these shouldn't be for all of Veyron, only Minnie, Mickey and Speedy -- my mistake. I'll send an updated patch with your suggestions. Thanks Abhishek On Fri, Oct 25, 2019 at 3:50 PM Doug Anderson <dianders@chromium.org> wrote: > > Hi, > > On Fri, Oct 25, 2019 at 2:55 PM Abhishek Pandit-Subedi > <abhishekpandit@chromium.org> wrote: > > > > This enables the Broadcom uart bluetooth driver on uart0 and gives it > > ownership of its gpios. In order to use this, you must enable the > > following kconfig options: > > - CONFIG_BT_HCIUART_BCM > > - CONFIG_SERIAL_DEV > > > > Signed-off-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org> > > --- > > > > arch/arm/boot/dts/rk3288-veyron.dtsi | 31 +++++++--------------------- > > 1 file changed, 7 insertions(+), 24 deletions(-) > > > > diff --git a/arch/arm/boot/dts/rk3288-veyron.dtsi b/arch/arm/boot/dts/rk3288-veyron.dtsi > > index 7525e3dd1fc1..8c9f91ba6f57 100644 > > --- a/arch/arm/boot/dts/rk3288-veyron.dtsi > > +++ b/arch/arm/boot/dts/rk3288-veyron.dtsi > > You are changing this for _all_ veryon, not just those veyron devices > using Broadcom. I don't think you want to change the marvell-based > boards. > > ...presumably you'll want to make you change only affect minnie, > speedy, and mickey. > > > > @@ -23,30 +23,6 @@ > > reg = <0x0 0x0 0x0 0x80000000>; > > }; > > > > - bt_activity: bt-activity { > > - compatible = "gpio-keys"; > > - pinctrl-names = "default"; > > - pinctrl-0 = <&bt_host_wake>; > > - > > - /* > > - * HACK: until we have an LPM driver, we'll use an > > - * ugly GPIO key to allow Bluetooth to wake from S3. > > - * This is expected to only be used by BT modules that > > - * use UART for comms. For BT modules that talk over > > - * SDIO we should use a wakeup mechanism related to SDIO. > > - * > > - * Use KEY_RESERVED here since that will work as a wakeup but > > - * doesn't get reported to higher levels (so doesn't confuse > > - * Chrome). > > - */ > > - bt-wake { > > - label = "BT Wakeup"; > > - gpios = <&gpio4 RK_PD7 GPIO_ACTIVE_HIGH>; > > - linux,code = <KEY_RESERVED>; > > - wakeup-source; > > - }; > > - > > - }; > > > > power_button: power-button { > > compatible = "gpio-keys"; > > @@ -434,6 +410,13 @@ > > /* Pins don't include flow control by default; add that in */ > > pinctrl-names = "default"; > > pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; > > + > > + bluetooth { > > + compatible = "brcm,bcm43540-bt"; > > You probably need some pinctrl entries here to make sure that things > are properly configured, like: > > pinctrl-names = "default"; > pinctrl-0 = <&bt_host_wake>, <&bt_dev_wake>, <&bt_enable>; > > This would require defining bt_dev_wake and bt_enable and removing the > hacky output-only versions they have now. > > > > + host-wakeup-gpios = <&gpio4 RK_PD7 GPIO_ACTIVE_HIGH>; > > + shutdown-gpios = <&gpio4 RK_PD5 GPIO_ACTIVE_LOW>; > > Right now gpio4 RK_PD5 is controlled by the "sdio_pwrseq". Should you > remove it from there? Looks like it was a no-op for marvell which > makes it a little easier. > > > > + device-wakeup-gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; > > You probably need to stop driving this in the pinctrl hogs for > Broadcom boards... > > > -Doug ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 0/3] ARM: dts: rockchip: Use hci_bcm driver for bcm43540 on Veyron devices 2019-10-25 21:54 [PATCH 0/3] ARM: dts: rockchip: Use hci_bcm driver for bcm43540 on Veyron devices Abhishek Pandit-Subedi 2019-10-25 21:54 ` [PATCH 2/3] dt-bindings: net: broadcom-bluetooth: Add BCM43540 compatible string Abhishek Pandit-Subedi 2019-10-25 21:54 ` [PATCH 3/3] ARM: dts: rockchip: Add brcm bluetooth module on uart0 Abhishek Pandit-Subedi @ 2019-10-26 5:27 ` Marcel Holtmann 2 siblings, 0 replies; 6+ messages in thread From: Marcel Holtmann @ 2019-10-26 5:27 UTC (permalink / raw) To: Abhishek Pandit-Subedi Cc: Johan Hedberg, Bluez mailing list, dianders, devicetree, David S. Miller, Heiko Stuebner, netdev, linux-kernel, linux-rockchip, Rob Herring, Ondrej Jirman, Mark Rutland, Chen-Yu Tsai, linux-arm-kernel Hi Abhishek, > This patch series enables using the Broadcom HCI UART driver with the > BCM43540 Wi-Fi + Bluetooth chip. This chip is used on a RK3288 based > board (Veyron) and these changes have been tested on the Minnie variant > of the board (i.e. rk3288-veyron-minnie.dts). > > > > Abhishek Pandit-Subedi (3): > Bluetooth: hci_bcm: Add compatible string for BCM43540 > dt-bindings: net: broadcom-bluetooth: Add BCM43540 compatible string > ARM: dts: rockchip: Add brcm bluetooth module on uart0 > > .../bindings/net/broadcom-bluetooth.txt | 1 + > arch/arm/boot/dts/rk3288-veyron.dtsi | 31 +++++-------------- > drivers/bluetooth/hci_bcm.c | 1 + > 3 files changed, 9 insertions(+), 24 deletions(-) patches 1 and 2 have been applied to bluetooth-next tree. I leave patch 3 to the appropriate ARM maintainer to pick up. Regards Marcel ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-10-26 17:39 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-10-25 21:54 [PATCH 0/3] ARM: dts: rockchip: Use hci_bcm driver for bcm43540 on Veyron devices Abhishek Pandit-Subedi 2019-10-25 21:54 ` [PATCH 2/3] dt-bindings: net: broadcom-bluetooth: Add BCM43540 compatible string Abhishek Pandit-Subedi 2019-10-25 21:54 ` [PATCH 3/3] ARM: dts: rockchip: Add brcm bluetooth module on uart0 Abhishek Pandit-Subedi 2019-10-25 22:50 ` Doug Anderson 2019-10-26 17:39 ` Abhishek Pandit-Subedi 2019-10-26 5:27 ` [PATCH 0/3] ARM: dts: rockchip: Use hci_bcm driver for bcm43540 on Veyron devices Marcel Holtmann
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).