A bit late to the party but since this stuff still doesn't work out of the box in linux. I'll add my experience here as well.
I bought an Asus BT400 dongle, it uses the Broadcom BCM20702A1 chip (usb device 0b05:17cb).
I had the same problem as described in the OP. A2DP works fine (i.e. only output), HSP/HFP neither output or input.
I read about old bugs:
And the linked workaround/fix for a Plugable dongle (it uses the same chip).
My understanding of the problem wasn't getting any better, and downloading an arbitrary firmware, for a somewhat-related product, from a random AWS server seemed a bit shady.
Finally I came upon this GitHub gist, describing how to use the firmware from the Asus Windows driver:
Then it finally "clicked" for me: These Bluetooth dongles are not fully functional as delivered and they require firmware updates to work completely. The Windows driver bundle a myriad of firmware files for all variants the driver supports. I don't really know how MacOS does it, but I assume it works similarly.
So, simply downloading the latest driver from their download page and then extracting the correct firmware file and placing it (correctly named) in
/lib/firmware/brcm/ fixed the problem.
TL;DR The Windows driver contains the required firmware file.