All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marcel Holtmann <marcel@holtmann.org>
To: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Cc: Rob Herring <robh+dt@kernel.org>,
	devicetree <devicetree@vger.kernel.org>,
	Linux Bluetooth mailing list <linux-bluetooth@vger.kernel.org>,
	linux-serial@vger.kernel.org, Mark Rutland <mark.rutland@arm.com>,
	"Gustavo F. Padovan" <gustavo@padovan.org>,
	Johan Hedberg <johan.hedberg@gmail.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jiri Slaby <jslaby@suse.com>, Johan Hovold <johan@kernel.org>,
	linux-sunxi@googlegroups.com, linux-amlogic@lists.infradead.org,
	Larry.Finger@lwfinger.net
Subject: Re: [RFC v1 6/8] Bluetooth: hci_h5: add support for Realtek UART Bluetooth modules
Date: Fri, 16 Mar 2018 23:22:14 +0100	[thread overview]
Message-ID: <14831F71-B426-491A-A5B0-7F93533AE78C@holtmann.org> (raw)
In-Reply-To: <20171117223543.32429-7-martin.blumenstingl@googlemail.com>

Hi Martin,

> Realtek RTL8723BS and RTL8723DS are SDIO wifi chips with an embedded
> Bluetooth controller which connects to the host via UART.
> The H5 protocol is used for communication between host and device.
> 
> The Realtek "rtl8723bs_bt" and "rtl8723ds_bt" userspace Bluetooth UART
> initialization tools (rtk_hciattach) use the following sequence:
> 1) send H5 sync pattern (already supported by hci_h5)
> 2) get LMP version (already supported by btrtl)
> 3) get ROM version (already supported by btrtl)
> 4) load the firmware and config for the current chipset (already
>   supported by btrtl)
> 5) read UART settings from the config blob (already supported by btrtl)
> 6) send UART settings via a vendor command to the device (which changes
>   the baudrate of the device and enables or disables flow control
>   depending on the config)
> 7) change the baudrate and flow control settings on the host
> 8) send the firmware and config blob to the device (already supported by
>   btrtl)
> 
> This uses the serdev library as well as the existing btrtl driver to
> initialize the Bluetooth functionality, which consists of:
> - identifying the device and loading the corresponding firmware and
>  config blobs (steps #2, #3 and #4)
> - configuring the baudrate and flow control (steps #6 and #7)
> - uploading the firmware to the device (step #8)
> 
> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
> ---
> drivers/bluetooth/Kconfig  |   1 +
> drivers/bluetooth/hci_h5.c | 195 ++++++++++++++++++++++++++++++++++++++++++++-
> 2 files changed, 195 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/bluetooth/Kconfig b/drivers/bluetooth/Kconfig
> index 60e1c7d6986d..3001f1200c72 100644
> --- a/drivers/bluetooth/Kconfig
> +++ b/drivers/bluetooth/Kconfig
> @@ -146,6 +146,7 @@ config BT_HCIUART_LL
> config BT_HCIUART_3WIRE
> 	bool "Three-wire UART (H5) protocol support"
> 	depends on BT_HCIUART
> +	select BT_RTL if SERIAL_DEV_BUS
> 	help
> 	  The HCI Three-wire UART Transport Layer makes it possible to
> 	  user the Bluetooth HCI over a serial port interface. The HCI

so I just posted a bt3wire.c driver that is serdev only and written from scratch. On a RPi3 Broadcom chip it kinda works. I think there is a lot of extra work to be done, but this might be a better starting point for Realtek UART devices.

Regards

Marcel

WARNING: multiple messages have this Message-ID (diff)
From: marcel@holtmann.org (Marcel Holtmann)
To: linus-amlogic@lists.infradead.org
Subject: [RFC v1 6/8] Bluetooth: hci_h5: add support for Realtek UART Bluetooth modules
Date: Fri, 16 Mar 2018 23:22:14 +0100	[thread overview]
Message-ID: <14831F71-B426-491A-A5B0-7F93533AE78C@holtmann.org> (raw)
In-Reply-To: <20171117223543.32429-7-martin.blumenstingl@googlemail.com>

Hi Martin,

> Realtek RTL8723BS and RTL8723DS are SDIO wifi chips with an embedded
> Bluetooth controller which connects to the host via UART.
> The H5 protocol is used for communication between host and device.
> 
> The Realtek "rtl8723bs_bt" and "rtl8723ds_bt" userspace Bluetooth UART
> initialization tools (rtk_hciattach) use the following sequence:
> 1) send H5 sync pattern (already supported by hci_h5)
> 2) get LMP version (already supported by btrtl)
> 3) get ROM version (already supported by btrtl)
> 4) load the firmware and config for the current chipset (already
>   supported by btrtl)
> 5) read UART settings from the config blob (already supported by btrtl)
> 6) send UART settings via a vendor command to the device (which changes
>   the baudrate of the device and enables or disables flow control
>   depending on the config)
> 7) change the baudrate and flow control settings on the host
> 8) send the firmware and config blob to the device (already supported by
>   btrtl)
> 
> This uses the serdev library as well as the existing btrtl driver to
> initialize the Bluetooth functionality, which consists of:
> - identifying the device and loading the corresponding firmware and
>  config blobs (steps #2, #3 and #4)
> - configuring the baudrate and flow control (steps #6 and #7)
> - uploading the firmware to the device (step #8)
> 
> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
> ---
> drivers/bluetooth/Kconfig  |   1 +
> drivers/bluetooth/hci_h5.c | 195 ++++++++++++++++++++++++++++++++++++++++++++-
> 2 files changed, 195 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/bluetooth/Kconfig b/drivers/bluetooth/Kconfig
> index 60e1c7d6986d..3001f1200c72 100644
> --- a/drivers/bluetooth/Kconfig
> +++ b/drivers/bluetooth/Kconfig
> @@ -146,6 +146,7 @@ config BT_HCIUART_LL
> config BT_HCIUART_3WIRE
> 	bool "Three-wire UART (H5) protocol support"
> 	depends on BT_HCIUART
> +	select BT_RTL if SERIAL_DEV_BUS
> 	help
> 	  The HCI Three-wire UART Transport Layer makes it possible to
> 	  user the Bluetooth HCI over a serial port interface. The HCI

so I just posted a bt3wire.c driver that is serdev only and written from scratch. On a RPi3 Broadcom chip it kinda works. I think there is a lot of extra work to be done, but this might be a better starting point for Realtek UART devices.

Regards

Marcel

  parent reply	other threads:[~2018-03-16 22:22 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-17 22:35 [RFC v1 0/8] Realtek Bluetooth serdev support (H5 protocol) Martin Blumenstingl
2017-11-17 22:35 ` Martin Blumenstingl
2017-11-17 22:35 ` Martin Blumenstingl
     [not found] ` <20171117223543.32429-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
2017-11-17 22:35   ` [RFC v1 1/8] serdev: implement parity configuration Martin Blumenstingl
2017-11-17 22:35     ` Martin Blumenstingl
2017-11-17 22:35     ` Martin Blumenstingl
2017-11-17 22:35   ` [RFC v1 2/8] Bluetooth: btrtl: add MODULE_FIRMWARE declarations Martin Blumenstingl
2017-11-17 22:35     ` Martin Blumenstingl
2017-11-17 22:35     ` Martin Blumenstingl
2017-11-17 22:35   ` [RFC v1 3/8] Bluetooth: btrtl: split the device initialization into smaller parts Martin Blumenstingl
2017-11-17 22:35     ` Martin Blumenstingl
2017-11-17 22:35     ` Martin Blumenstingl
2017-11-17 22:35   ` [RFC v1 4/8] Bluetooth: btrtl: add support for retrieving the UART settings Martin Blumenstingl
2017-11-17 22:35     ` Martin Blumenstingl
2017-11-17 22:35     ` Martin Blumenstingl
2017-11-17 22:35   ` [RFC v1 5/8] Bluetooth: btrtl: add support for the RTL8723BS and RTL8723DS chips Martin Blumenstingl
2017-11-17 22:35     ` Martin Blumenstingl
2017-11-17 22:35     ` Martin Blumenstingl
     [not found]     ` <20171117223543.32429-6-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
2017-11-19  8:25       ` Marcel Holtmann
2017-11-19  8:25         ` Marcel Holtmann
2017-11-19  8:25         ` Marcel Holtmann
     [not found]         ` <109FA59C-9875-4EAA-9DA5-EC811BAA77AE-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org>
2017-11-19 20:38           ` Martin Blumenstingl
2017-11-19 20:38             ` Martin Blumenstingl
2017-11-19 20:38             ` Martin Blumenstingl
     [not found]             ` <CAFBinCCtHUFMbbSOeKWYSJZKvFbNqhaMOrS-xgzr3E9hbkpnnw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-11-19 21:17               ` Marcel Holtmann
2017-11-19 21:17                 ` Marcel Holtmann
2017-11-19 21:17                 ` Marcel Holtmann
     [not found]                 ` <4B23C5B4-DCB8-4B1C-B1BF-A99B1E5E10B0-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org>
2017-11-26 22:23                   ` Martin Blumenstingl
2017-11-26 22:23                     ` Martin Blumenstingl
2017-11-26 22:23                     ` Martin Blumenstingl
     [not found]                     ` <CAFBinCD+P6kBOXjp9YZf8DbsetvF+q6yfp3X+OTRfN_Pv8R88w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-11-26 22:47                       ` Emil Lenngren
2017-11-26 22:47                         ` Emil Lenngren
2017-11-26 22:47                         ` Emil Lenngren
2017-11-27 10:00                       ` Marcel Holtmann
2017-11-27 10:00                         ` Marcel Holtmann
2017-11-27 10:00                         ` Marcel Holtmann
2017-11-17 22:35   ` [RFC v1 6/8] Bluetooth: hci_h5: add support for Realtek UART Bluetooth modules Martin Blumenstingl
2017-11-17 22:35     ` Martin Blumenstingl
2017-11-17 22:35     ` Martin Blumenstingl
     [not found]     ` <20171117223543.32429-7-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
2017-11-19  8:29       ` Marcel Holtmann
2017-11-19  8:29         ` Marcel Holtmann
2017-11-19  8:29         ` Marcel Holtmann
     [not found]         ` <665B6C30-D115-437A-B991-999A862736FE-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org>
2017-11-19 20:28           ` Martin Blumenstingl
2017-11-19 20:28             ` Martin Blumenstingl
2017-11-19 20:28             ` Martin Blumenstingl
2018-03-16 22:22     ` Marcel Holtmann [this message]
2018-03-16 22:22       ` Marcel Holtmann
2018-03-17 22:50       ` Jeremy Cline
2018-03-17 22:50         ` Jeremy Cline
2018-03-18 10:46         ` Marcel Holtmann
2018-03-18 10:46           ` Marcel Holtmann
2018-03-18 22:52         ` Martin Blumenstingl
2018-03-18 22:52           ` Martin Blumenstingl
2017-11-17 22:35   ` [RFC v1 7/8] Bluetooth: hci_serdev: remove the HCI_UART_INIT_PENDING check Martin Blumenstingl
2017-11-17 22:35     ` Martin Blumenstingl
2017-11-17 22:35     ` Martin Blumenstingl
     [not found]     ` <20171117223543.32429-8-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
2017-11-19  8:21       ` Marcel Holtmann
2017-11-19  8:21         ` Marcel Holtmann
2017-11-19  8:21         ` Marcel Holtmann
     [not found]         ` <56889A64-AFB2-454C-9889-FAA4C051168A-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org>
2017-11-19 20:24           ` Martin Blumenstingl
2017-11-19 20:24             ` Martin Blumenstingl
2017-11-19 20:24             ` Martin Blumenstingl
     [not found]             ` <CAFBinCC_G845v4cZW9hvwYEDQhTCLW1iG_JWzAz9Gu42rM4_Zg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-11-19 20:43               ` Johan Hedberg
2017-11-19 20:43                 ` Johan Hedberg
2017-11-19 20:43                 ` Johan Hedberg
2017-11-17 22:35   ` [RFC v1 8/8] dt-bindings: net: bluetooth: add support for Realtek Bluetooth chips Martin Blumenstingl
2017-11-17 22:35     ` Martin Blumenstingl
2017-11-17 22:35     ` Martin Blumenstingl
     [not found]     ` <20171117223543.32429-9-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
2017-11-20 21:09       ` Rob Herring
2017-11-20 21:09         ` Rob Herring
2017-11-20 21:09         ` Rob Herring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=14831F71-B426-491A-A5B0-7F93533AE78C@holtmann.org \
    --to=marcel@holtmann.org \
    --cc=Larry.Finger@lwfinger.net \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=gustavo@padovan.org \
    --cc=johan.hedberg@gmail.com \
    --cc=johan@kernel.org \
    --cc=jslaby@suse.com \
    --cc=linux-amlogic@lists.infradead.org \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=linux-sunxi@googlegroups.com \
    --cc=mark.rutland@arm.com \
    --cc=martin.blumenstingl@googlemail.com \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.