Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ASoC support for boards/HATs using ESS Sabre ES9023 DAC #1459

Closed

Conversation

clivem
Copy link

@clivem clivem commented May 7, 2016

Phil/Dom, Don't actually want this pulled, (at least not without review/comment first by Berry guys)...

This is an attempt at code re-use by having common board driver (in this case for the ESS Sabre ES9023 DAC variants), and using "compatible" and dt for ALSA card/dai/dai_stream names, rather than everyone cut and pasting a complete, existing driver, to add a new board.

Manufacturers not bothered about having company names in ALSA strings just use the generic (es9023-dac) overlay. Those bothered, (and I have added examples for my DD Akkordion and HB DAC+ Light), create their own overlay, set "names" in dt, and add a "compatible" to es9023_dac card driver.

Most of the current ES9023 boards "piggyback" on the hifiberry_dac/pcm5102a combo. @bonezuk and @hifiberry, please let me know which way you want to go. If you want to stick with using your "old" dac driver and pcm5102a codec combo for your ES9023 DAC+ Light boards, I will drop the specific overlay for you from the pull request. But I wanted you to take a look at it.

@hifiberry
Copy link

@clivem : The approach totally makes sense. However, at the moment I would like to stick with the PCM5102 driver with the DAC+ Light.
Did you think about creating a fully "generic" driver that supports output/input and sample rates all configurable by device tree? E.g. this might be interesting for people that uses old 44.1kHz DACs.

A generic module with input/output capabilities would also be helpful to connect I2S microphones without adding another driver.

@clivem clivem force-pushed the rpi-4.4.y-es9023 branch 2 times, most recently from be0708d to 09f5818 Compare May 8, 2016 17:59
@clivem
Copy link
Author

clivem commented May 8, 2016

However, at the moment I would like to stick with the PCM5102 driver with the DAC+ Light.

@hifiberry No problem with me. I didn't want you to feel left out! ;) I've removed the overlay for hifiberry-dacpluslight from this patch set.

Did you think about creating a fully "generic" driver that supports output/input and sample rates all configurable by device tree? E.g. this might be interesting for people that uses old 44.1kHz DACs.

I think I already have exactly what you are describing. It's called the NOS driver, because it's what I use to drive the obsolete stuff, like TDA1541, AD1862/5, etc. etc.

I have a patch set of about 40 patches, that are I2S audio related. Starting with the dedicated driver for the ES9023, was starting with what I thought was the least contentious patch set, to show the "approach". I have 3 stages of rationalising the PCM5xxx situation, which I suspect I'm going to have trouble getting both you and Gordon on-board with.

I do want to point one thing out to you. That you are using the pcm5102a codec driver for both pcm5102a and es9023, and that shouldn't become the reason for not wanting to move forward on 384k support. The conflict here being, that the datasheet for es9023 gives 192k as PCM max, while all PCM5xxx family support 384k. That is the reason I have made the user specify a dt param to get 384k support from es9023 codec.... Not every 9023 chip can do it, and I have no idea what value OSC all the manufacturers are using for their ES9023 boards, mostly 50M I suspect. But there is no reason not to want to support 352k8/384k "out-of-the-box" for all the PCM5's. The Pi is capable. The DAC codec is capable. These sort of things become problems, or at least things you need to think about, at the point you are using a codec driver, for something other than the intended hardware.

@hifiberry
Copy link

We would like to support you with all the patches. I guess, it would be good to have a better idea where your are heading to. Send me a message with your personal contact details. Then we can have a short call and see how we can help each other in the best way.

@clivem clivem force-pushed the rpi-4.4.y-es9023 branch 8 times, most recently from 11a7f34 to 24a3c0c Compare May 12, 2016 12:49
@clivem clivem changed the title Generic ASoC es9023 board/HAT support Add generic ASoC support for boards/HATs using ESS Sabre ES9023 DAC May 12, 2016
@clivem clivem changed the title Add generic ASoC support for boards/HATs using ESS Sabre ES9023 DAC Add ASoC support for boards/HATs using ESS Sabre ES9023 DAC May 12, 2016
@clivem clivem force-pushed the rpi-4.4.y-es9023 branch 15 times, most recently from 47f72ae to f3b9f38 Compare May 27, 2016 02:40
@clivem clivem force-pushed the rpi-4.4.y-es9023 branch 5 times, most recently from 474d804 to 3a7d744 Compare June 21, 2016 19:41
@clivem clivem force-pushed the rpi-4.4.y-es9023 branch from 3a7d744 to 632b005 Compare July 4, 2016 23:02
ALSA ASoC codec driver for the ESS Sabre ES9023.

Note to self, this has now been split into this patch (for upstream) and
a downstream patch for 384k support.

Signed-off-by: DigitalDreamtime <clive.messer@digitaldreamtime.co.uk>
Add 384k support to es9023 codec driver, but continue to default to
the 192k datasheet max.

Enable 384k support if device tree boolean property, "es9023,384k",
is set.

Signed-off-by: DigitalDreamtime <clive.messer@digitaldreamtime.co.uk>
Driver for cards/boards/HATs using the ESS Sabre 9023 DAC.
eg. Audiophonics I-Sabre, Collybia MamboBerry HiFi DAC+,
    Digital Dreamtime Akkordion and HiFiBerry DAC+ Light.

Signed-off-by: DigitalDreamtime <clive.messer@digitaldreamtime.co.uk>
Modify RPi kernel configs to include support for ES9023 DAC.

Signed-off-by: DigitalDreamtime <clive.messer@digitaldreamtime.co.uk>
Add generic es9023-audio overlay for ESS Sabre ES9023 boards/HATs.

##
## Generic board or HAT using ESS Sabre ES9023 DAC
##
##  card_name       = "es9023"
##  dai_name        = "ES9023 DAC"
##  dai_stream_name = "ES9023 DAC HiFi"
##
# dtoverlay=es9023-audio
# dtoverlay=es9023-audio,bclk_ratio_int_div
# dtoverlay=es9023-audio,bclk_ratio_int_div,384k

Signed-off-by: DigitalDreamtime <clive.messer@digitaldreamtime.co.uk>
Add akkordion-es9023-audio overlay for Digital Dreamtime Akkordion
(ES9023 edition).

##
## Digital Dreamtime Akkordion using ESS Sabre ES9023 DAC
##
##  card_name       = "Akkordion"
##  dai_name        = "Akkordion DAC"
##  dai_stream_name = "Akkordion DAC HiFi"
##
# dtoverlay=akkordion-es9023-audio
# dtoverlay=akkordion-es9023-audio,bclk_ratio_int_div
# dtoverlay=akkordion-es9023-audio,bclk_ratio_int_div,384k

Signed-off-by: DigitalDreamtime <clive.messer@digitaldreamtime.co.uk>
Add mamboberry-dacplus-es9023-audio overlay for Collybia Mamboberry
HiFi DAC+.

##
## Collybia MamboBerry HiFi DAC+
##
##  card_name       = "Mamboberry"
##  dai_name        = "Mamboberry DAC+"
##  dai_stream_name = "Mamboberry DAC+ HiFi"
##
# dtoverlay=mamboberry-dacplus-es9023-audio
# dtoverlay=mamboberry-dacplus-es9023-audio,bclk_ratio_int_div
# dtoverlay=mamboberry-dacplus-es9023-audio,bclk_ratio_int_div,384k

Signed-off-by: DigitalDreamtime <clive.messer@digitaldreamtime.co.uk>
Add i-sabre-dac-es9023-audio overlay for Audiophonics I-Sabre DAC.

##
## Audiophonics I-Sabre DAC
##
##  card_name       = "ISabre"
##  dai_name        = "ISabre DAC"
##  dai_stream_name = "ISabre DAC HiFi"
##
# dtoverlay=i-sabre-dac-es9023-audio
# dtoverlay=i-sabre-dac-es9023-audio,bclk_ratio_int_div
# dtoverlay=i-sabre-dac-es9023-audio,bclk_ratio_int_div,384k

Signed-off-by: DigitalDreamtime <clive.messer@digitaldreamtime.co.uk>
Add hifiberry-dacpluslight-es9023-audio overlay for HiFiBerry DAC+ Light.

##
## HiFiBerry DAC+ Light
##
##  card_name       = "snd_rpi_hifiberry_dac"
##  dai_name        = "HifiBerry DAC"
##  dai_stream_name = "HifiBerry DAC HiFi"
##
# dtoverlay=hifiberry-dacpluslight-es9023-audio
# dtoverlay=hifiberry-dacpluslight-es9023-audio,bclk_ratio_int_div
# dtoverlay=hifiberry-dacpluslight-es9023-audio,bclk_ratio_int_div,384k

Signed-off-by: DigitalDreamtime <clive.messer@digitaldreamtime.co.uk>
@clivem clivem closed this Aug 30, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants