Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

I2S - force MCLK

Featured Replies

Hi,

 

I'm in need of help with the I2S "drivers" for Arch Linux ARM and the A20 processor.

 

I need to create a 4-wire I2S output.

 

1. BCLK

2. LRCLK

3. DATA

4. MCLK = 256xfs

 

I can't seem to work out how to make #4, a Master Clock fixed at 256 * Fs.

 

I've been using this code as a starting point:

https://github.com/dan-and/linux-sunxi/tree/dan-3.4.current/sound/soc/sunxi/i2s

 

and I am not a Kernel developer. At all.

 

Thanks.

I never try this myself but according to user feedback I2S is working well on Cubietruck and Banana PRO with the kernel source you are pointing to. I think the problem is if it is wired to the connector and of course if your device settings are correct. On which board you are trying to do that?

 

On Cubietruck should work out of the box, on Banana PRO you might need to adjust FEX settings (script.bin with decompile, edit, compile back).

[i2s_para]
i2s_used = 1
i2s_channel = 2
i2s_mclk = port:PB05<2><1><default><default>
i2s_bclk = port:PB06<2><1><default><default>
i2s_lrclk = port:PB07<2><1><default><default>
i2s_dout0 = port:PB08<2><1><default><default>
i2s_dout1 =
i2s_dout2 =
i2s_dout3 =
i2s_din = port:PB12<2><1><default><default>

More info:

http://www.cubieforums.com/index.php/topic,1081.0.html

Edited by Igor
more info

  • Author

Thanks for the reply!

 

I'm on the ITEAD Core EVO, similar to the Cubietruck.

 

My FEX looks like yours.

 

When I play a file (96kHz / 24bit) I get a Kernel log entry:

[   79.060885] [iIS-0] get_clock_divder_master: rate=(96000), mclk_div=(1), mpll=(0), bclk_div=(4), mult_fs=(256)
 
I'm quite certain that I have everything connected properly, but still no luck.
 
When you mention Device Settings, is there something other than the FEX file? Is there a way to "Force" the 256?
 
Again, thanks. (NOTE: I'm willing to talk about consulting fees.)
  • Author

Without a scope, I'm not positive... but I think I only get a signal @ 44.1 & 48. Also, i do not think the signal is 256xfs, or I suspect this DAC would work.

Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.