[PATCH 1/2] ARM64: dts: bcm2837-rpi-3-b: Add bcm43438 as serial slave device
Stefan Wahren
stefan.wahren at i2se.com
Mon Jul 31 12:56:13 PDT 2017
Hi Loic,
> Loic Poulain <loic.poulain at gmail.com> hat am 31. Juli 2017 um 12:03 geschrieben:
>
>
> Add BCM43438 as a slave device of uart0 (pl011/ttyAMA0).
> This allows to automatically insert the bcm43438 to the bluetooth
> subsystem instead of relying on userspace helpers (hciattach).
>
> Overwrite bootargs to use aux uart (ttyS0) instead of ttyAMA0.
>
> Signed-off-by: Loic Poulain <loic.poulain at gmail.com>
i'm very happy to see this patch series and i can't wait to adapt it for RPI Zero W.
> ---
> .../devicetree/bindings/net/broadcom-bluetooth.txt | 29 ++++++++++++++++++++++
> arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts | 17 +++++++++++++
> 2 files changed, 46 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/net/broadcom-bluetooth.txt
>
> diff --git a/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt b/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt
> new file mode 100644
> index 0000000..c51ea1b
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt
> @@ -0,0 +1,29 @@
> +Broadcom Bluetooth Chips
> +---------------------
> +
> +This documents the binding structure and common properties for serial
> +attached Broadcom devices.
> +
> +Serial attached Broadcom devices shall be a child node of the host UART
> +device the slave device is attached to.
> +
> +Required properties:
> +
> + - compatible: should contain one of the following:
> + * "brcm,bcm43438-bt"
> +
> +Optional properties:
> +
> + - max-speed: see Documentation/devicetree/bindings/serial/slave-device.txt
> +
> +Example:
> +
> +&uart2 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&uart2_pins>;
> +
> + bluetooth {
> + compatible = "brcm,bcm43438-bt";
> + max-speed = <921600>;
> + };
> +};
This binding looks good to me, but please send it as a separate patch at first.
> diff --git a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts
> index 972f14d..d0c669a 100644
> --- a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts
> +++ b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts
> @@ -8,6 +8,11 @@
> compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
> model = "Raspberry Pi 3 Model B";
>
> + chosen {
> + /* BCM2835 8250 auxiliar UART instead of pl011 */
> + bootargs = "console=ttyS0,115200 earlycon";
> + };
> +
> memory {
> reg = <0 0x40000000>;
> };
> @@ -39,3 +44,15 @@
> status = "okay";
> bus-width = <4>;
> };
> +
> +/* UART0 is used to drive bcm43438 bluetooth controller */
> +&uart0 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>;
> + status = "okay";
> +
> + bluetooth {
> + compatible = "brcm,bcm43438-bt";
> + max-speed = <921600>;
> + };
> +};
> --
> 1.9.1
This also looks good, but this conflicts with the recent changes (which will be applied soon):
[PATCH v2] ARM: dts: bcm283x: Move the BCM2837 DT contents from arm64 to arm.
[PATCH V2 0/3] ARM: bcm283x: Raspberry Pi Zero W support
Last question: how about another patch to enable serdev support as module for arm64/defconfig?
Best regards
Stefan
More information about the linux-rpi-kernel
mailing list