thanks, i put the file to /lib/firmware, but still get the error
dmesg | grep hci0
[ 4.888999] bluetooth hci0: Direct firmware load for mediatek/mt7622pr2h.bin failed with error -2
[ 4.898991] Bluetooth: hci0: Failed to load firmware file (-2)
[ 5.058857] bluetooth hci0: Direct firmware load for mediatek/mt7622pr2h.bin failed with error -2
[ 5.068074] Bluetooth: hci0: Failed to load firmware file (-2)
root@bpi-iot-ros-ai:~# ls /lib/firmware/
ap6210 ap6212 brcm mt7622pr2h.bin
root@bpi-iot-ros-ai:~# bluetoothctl
[bluetooth]# power on
No default controller available
where does the driver look for the firmware? i have used kernel-documentation: https://www.kernel.org/doc/html/latest/driver-api/firmware/fw_search_path.html
oh i see that a subfolder mediatek is used…so i put it there…and after reboot i got this:
root@bpi-iot-ros-ai:~# ls /lib/firmware/mediatek
mt7622pr2h.bin
root@bpi-iot-ros-ai:~# dmesg | grep hci0
[ 14.819610] Bluetooth: hci0: Execution of wmt command timed out
[ 14.819672] Bluetooth: hci0: Failed to send wmt patch dwnld (-110)
first message seem to come from here: https://github.com/frank-w/BPI-R2-4.14/blob/4.19-r64-main/drivers/bluetooth/btmtkuart.c#L122
second from here: https://github.com/frank-w/BPI-R2-4.14/blob/4.19-r64-main/drivers/bluetooth/btmtkuart.c#L168
so mtk_setup_fw calls
mtk_hci_wmt_sync(hdev, MTK_WMT_PATCH_DWNLD, flag, dlen, fw_ptr);
and this calls
wait_on_bit_timeout(&bdev->tx_state, BTMTKUART_TX_WAIT_VND_EVT, TASK_INTERRUPTIBLE, HCI_INIT_TIMEOUT);
which failed with timeout, did i miss anything (btif should be enabled cause of removed disabled-line)
btif: serial@1100c000 {
so i looked here:
root@bpi-iot-ros-ai:~# cat /sys/firmware/devicetree/base/serial@1100c000/status
okay
root@bpi-iot-ros-ai:~# cat /sys/firmware/devicetree/base/serial@1100c000/bluetooth/status
okay
any idea about gpio? official site makes same calculation but with gpio22 which does not exist on 40pin-header (depending on shematic above)