[PATCH 0/7] PinePhone BT audio bringup

Chen-Yu Tsai wens at csie.org
Thu Nov 5 23:28:04 EST 2020


Hi,

On Fri, Nov 6, 2020 at 12:15 PM Samuel Holland <samuel at sholland.org> wrote:
>
> This series makes use of the additional DAIs recently added to the
> sun8i-codec driver to add hardware routing for BT SCO (headset) audio
> on the PinePhone.
>
> The BT audio connection is represented by the "dummy" bt-sco codec. The
> connection to the Quectel EG-25G modem via AIF2 works as well, but I do
> not include it here because there is no appropriate codec driver in
> tree. We have been using an out-of-tree "dummy" codec driver similar to
> bt-sco, and I'm not sure if such a driver would be desired upstream.
>
> The modem has a similar amount of configurability as the rtl8723cs BT
> chip. For the BT chip, the DAI format and PCM parameters are set in a
> configuration firmware file and loaded at driver load time. For the
> modem, the DAI format and PCM parameters are set by (and can be queried
> from) an AT command. However, this AT command requires a modem restart
> to take effect, so the parameters cannot feasibly be changed at runtime.
>
> With a dummy driver, we pick some "standard" set of PCM parameters, e.g.
> 16 bit mono at 8 or 16 kHz, and assume the hardware agrees. Similarly,
> we assume the DAI format pre-programmed in the remote hardware matches
> what is configured in the DAI link (in this case, in the device tree).
>
> Is that the right way to model this? Or does the modem (and maybe even
> the BT chip) deserve a more featureful driver that reads and/or programs
> the format and params at probe time?

FYI there's a "Bluetooth: Allow to use configure SCO socket codec parameters"
thread on the bluetooth mailing list which is still unresolved AFAICT.

You might want to take a look at it.

ChenYu

> Because of those unanswered questions, I'm sending BT SCO support
> first/only.
>
> Regards,
> Samuel
>
> Arnaud Ferraris (1):
>   arm64: dts: allwinner: pinephone: Set audio card name
>
> Samuel Holland (6):
>   ASoC: dt-bindings: sun8i-codec: Increase #sound-dai-cells
>   ARM: dts: sun8i-a33: Allow using multiple codec DAIs
>   arm64: dts: allwinner: a64: Allow using multiple codec DAIs
>   arm64: dts: allwinner: a64: Add pinmux nodes for AIF2/AIF3
>   arm64: dts: allwinner: a64: Allow multiple DAI links
>   arm64: dts: allwinner: pinephone: Add support for Bluetooth audio
>
>  .../sound/allwinner,sun8i-a33-codec.yaml      |  2 +-
>  arch/arm/boot/dts/sun8i-a33.dtsi              |  4 +-
>  .../dts/allwinner/sun50i-a64-pinephone.dtsi   | 25 +++++++++++++
>  arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 37 ++++++++++++++-----
>  4 files changed, 55 insertions(+), 13 deletions(-)
>
> --
> 2.26.2
>



More information about the linux-arm-kernel mailing list