-
Notifications
You must be signed in to change notification settings - Fork 5k
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
Add ASoC support for boards/HATs using ESS Sabre ES9023 DAC #1459
Conversation
@clivem : The approach totally makes sense. However, at the moment I would like to stick with the PCM5102 driver with the DAC+ Light. A generic module with input/output capabilities would also be helpful to connect I2S microphones without adding another driver. |
be0708d
to
09f5818
Compare
@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.
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. |
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. |
11a7f34
to
24a3c0c
Compare
47f72ae
to
f3b9f38
Compare
474d804
to
3a7d744
Compare
632b005
to
5f5d7fc
Compare
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>
5f5d7fc
to
bc67106
Compare
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.