Jump to content

How to enable I2S for DAC HAT Shield on Rock64?


Dan C
Go to solution Solved by Dan C,

Recommended Posts

Hello,

 

A while back i was using my rock64 as a media player running armbian with some success.  Since a hiatus and reinstall of the latest armbian focal mainline release, the i2s output no longer works.  I can get output on the 3.5mm jack, but not on the RCAs of the DAC board.

 

I spent some time playing around the fdtget/fdtput with no success as i don't really know what i'm doing in that space.

 

Does anyone know how to enable I2S?

 

Volumio got mentioned allot in my google searches, so i tried that and viola the DAC works again.

 

volumio@volumio:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDMI], device 0: ff000000.i2s-i2s-hifi i2s-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: I2S [I2S], device 0: ff010000.i2s-rk3328-hifi rk3328-hifi-0 []
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: I2S [I2S], device 1: ff010000.i2s-snd-soc-dummy-dai snd-soc-dummy-dai-1 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: SPDIF [SPDIF], device 0: ff030000.spdif-dit-hifi dit-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
volumio@volumio:~$ uname -a
Linux volumio 4.4.154 #1 SMP Tue Oct 13 11:37:38 CEST 2020 aarch64 GNU/Linux

 

on armbian i get

**** List of PLAYBACK Hardware Devices ****
card 0: rockchiprk3328 [rockchip,rk3328], device 0: ff000000.i2s-i2s-hifi i2s-hifi-0 [ff000000.i2s-i2s-hifi i2s-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: rockchiprk3328 [rockchip,rk3328], device 1: ff010000.i2s-rk3328-hifi ff410000.codec-1 [ff010000.i2s-rk3328-hifi ff410000.codec-1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: rockchiprk3328 [rockchip,rk3328], device 2: ff030000.spdif-dit-hifi dit-hifi-2 [ff030000.spdif-dit-hifi dit-hifi-2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

 

Regards,

Dan

Link to comment
Share on other sites

58 minutes ago, Dan C said:

of the latest armbian focal mainline release, the i2s output no longer works. 

 

Porting features to mainline kernel and maintaining them there usually represent a serious cost and usually can't be done by amateurs ... Perhaps I am wrong and this feature was indeed ported, just doesn't work or hasn't been accepted to the upstream kernel yet. You will probably need to use old kernel if this is critical feature. Perhaps its just a missing driver ... without logs, nobody can help.

Link to comment
Share on other sites

  • Solution

Thanks, the tip, i forgot about the 'legacy' kernel images.  I've booted the most recent build i could find Armbian_21.02.1_Rock64_focal_legacy_4.4.213  and now have audio working.

 

`aplay -D default:CARD=rki2ssound piano2.wav` will play out of both the onboard 3.5mm headphone jack, and the DAC HAT.

 

I'm sure i had it working before (2+ years) ago using the mainline kernel.  Either things have changed since then, or my memory is faulty.

 

I see rock64 has more recently moved from CSC -> WIP and there are some new builds.  Will try those out and see if things have changed.

Link to comment
Share on other sites

1 hour ago, Dan C said:

I'm sure i had it working before (2+ years) ago using the mainline kernel. 


That is possible, but features in mainline kernel are breaking down in regular cycles if not maintained. Most people wrongly assumes works is done when hardware reaches mainline, but that is not the case. When hardware, especially of cheap HW such as Rock64, gets here (never with all functions supported) it starts the journey of breaking its usable features down. We are seeing this everywhere and without our intervention many board would not be usable at all anymore. 

 

1 hour ago, Dan C said:

I see rock64 has more recently moved from CSC -> WIP and there are some new builds.  Will try those out and see if things have changed.

 

Those interventions could (are) easily costs somewhere between 5 and 15k euros per board per year. Current cost covering scheme - you as our "clients" are only adding 0.5% of needed.


CSC -> Supported didn't fix you the problem. It only helps sharing the non most critical burden:

Someone will keep a list of what is not working, but he/she is not obligated to do anything. We also accept people that has no clue about R&D. If this would be a requirement, most likely nobody would show up. But this is again just a wish / theory - in reality - very little of those that joined actually does anything on that list. They report nothing, they don't (all) participate in release process. When there is no help, status is going back again ... 

 

If someone pays hours needed to fix the feature / bug, someone will try to fix it. If not, bugs stays. This is not a problem of Armbian since public is not even trying to cover expenses related to keeping the device usable.

Link to comment
Share on other sites

So just to report back for posterity.  I've tried the latest 5.18 kernel for the 'rolling' build on https://www.armbian.com/rock64/.   No luck with the DAC HAT, audio out the 3.5mm jack no problem.  Back to the legacy kernel for me...

 

The list of devices looks promising, but none of them produced sound out the i2s HAT.
 

# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Analog [Analog], device 0: ff010000.i2s-rk3328-hifi ff410000.codec-0 [ff010000.i2s-rk3328-hifi ff410000.codec-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDMI], device 0: ff000000.i2s-i2s-hifi i2s-hifi-0 [ff000000.i2s-i2s-hifi i2s-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

# aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
hw:CARD=Analog,DEV=0
    Analog, ff010000.i2s-rk3328-hifi ff410000.codec-0
    Direct hardware device without any conversions
plughw:CARD=Analog,DEV=0
    Analog, ff010000.i2s-rk3328-hifi ff410000.codec-0
    Hardware device with all software conversions
default:CARD=Analog
    Analog, ff010000.i2s-rk3328-hifi ff410000.codec-0
    Default Audio Device
sysdefault:CARD=Analog
    Analog, ff010000.i2s-rk3328-hifi ff410000.codec-0
    Default Audio Device
dmix:CARD=Analog,DEV=0
    Analog, ff010000.i2s-rk3328-hifi ff410000.codec-0
    Direct sample mixing device
hw:CARD=HDMI,DEV=0
    HDMI, ff000000.i2s-i2s-hifi i2s-hifi-0
    Direct hardware device without any conversions
plughw:CARD=HDMI,DEV=0
    HDMI, ff000000.i2s-i2s-hifi i2s-hifi-0
    Hardware device with all software conversions
default:CARD=HDMI
    HDMI, ff000000.i2s-i2s-hifi i2s-hifi-0
    Default Audio Device
sysdefault:CARD=HDMI
    HDMI, ff000000.i2s-i2s-hifi i2s-hifi-0
    Default Audio Device
dmix:CARD=HDMI,DEV=0
    HDMI, ff000000.i2s-i2s-hifi i2s-hifi-0
    Direct sample mixing device

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines