qualcommbe: add Bluetooth support for Linksys LN6001

Enable the Bluetooth UART and pin configuration for Linksys Velop WRT
Pro 7 (LN6001/MBE70). Describe the ISP and reset outputs through the
existing named GPIO export mechanism, holding both high at boot.

Select the generic bluetooth-uart package in DEVICE_PACKAGES so images
include kmod-hci-uart and BlueZ btattach through its dependencies.
Initialize the LN6001 UCI defaults to attach /dev/ttyMSM1 using H4 at
115200 baud. Preserve already configured UARTs, including disabled ones.
The generic package remains disabled until a board or user configures it.

The combined series passed cold-start controller initialization, LE
discovery, connection and service discovery without a userspace reset
pulse. Keep Bluetooth support separate from Wi-Fi enablement.

Signed-off-by: Satoshi Ikeuchi <satosan.ikm@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/25594
Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit is contained in:
Satoshi Ikeuchi authored and Robert Marko committed 2026-10-05 13:55:37 +02:00
1 parent 2f7f5b0c49
commit a1743ae5cc
3 files changed
+54 -1

No files matched your search

@@ -14,6 +14,7 @@
aliases {
serial0 = &blsp1_uart2;
serial1 = &blsp1_uart4;
led-boot = &led_blue;
led-failsafe = &led_red;
led-running = &led_blue;
@@ -24,6 +25,22 @@
stdout-path = "serial0:115200n8";
};
gpio-export {
compatible = "gpio-export";
bluetooth-isp {
gpio-export,name = "bluetooth-isp";
gpio-export,output = <1>;
gpios = <&tlmm 57 GPIO_ACTIVE_HIGH>;
};
bluetooth-reset {
gpio-export,name = "bluetooth-reset";
gpio-export,output = <1>;
gpios = <&tlmm 31 GPIO_ACTIVE_HIGH>;
};
};
keys {
compatible = "gpio-keys";
pinctrl-0 = <&keys_pins>;
@@ -81,6 +98,12 @@
status = "okay";
};
&blsp1_uart4 {
pinctrl-0 = <&uart4_pins>, <&bluetooth_pta_pins>;
pinctrl-names = "default";
status = "okay";
};
&mdio {
clock-frequency = <6250000>;
pinctrl-0 = <&mdio_pins>;
@@ -291,6 +314,13 @@
};
&tlmm {
bluetooth_pta_pins: bluetooth-pta-state {
pins = "gpio54", "gpio55", "gpio56";
function = "pta";
drive-strength = <8>;
bias-disable;
};
keys_pins: keys-state {
pins = "gpio37", "gpio40";
function = "gpio";
@@ -354,6 +384,13 @@
bias-pull-down;
};
};
uart4_pins: uart4-state {
pins = "gpio50", "gpio51", "gpio52", "gpio53";
function = "blsp4_uart";
drive-strength = <8>;
bias-disable;
};
};
/*
+1 -1
View File
@@ -37,7 +37,7 @@ define Device/linksys_ln6001
DEVICE_MODEL := LN6001
DEVICE_DTS := ipq9554-linksys-ln6001
SOC := ipq9554
DEVICE_PACKAGES += kmod-leds-pwm kmod-fs-f2fs mkf2fs f2fsck
DEVICE_PACKAGES += bluetooth-uart kmod-leds-pwm kmod-fs-f2fs mkf2fs f2fsck
IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-to 64k | \
check-size 128m | sysupgrade-tar rootfs=$$$$@ | append-metadata
endef
@@ -0,0 +1,16 @@
#!/bin/sh
. /lib/functions.sh
[ "$(board_name)" = "linksys,ln6001" ] || exit 0
[ "$(uci -q get bluetooth-uart.main)" = "uart" ] || exit 0
# Preserve an already configured UART, including a disabled one.
[ -z "$(uci -q get bluetooth-uart.main.device)" ] || exit 0
uci -q batch <<-EOF
set bluetooth-uart.main.device='/dev/ttyMSM1'
set bluetooth-uart.main.protocol='h4'
set bluetooth-uart.main.speed='115200'
set bluetooth-uart.main.enabled='1'
EOF