Jump to content

Daan

Members
  • Posts

    4
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hi, Thank you for the answer. I'm surely willing to do this together. For now I don't know if it's a driver problem or a device tree file problem. The next step for me is checking if the register addresses in the DTS file for I2S are correct. I also can't find any reports of anyone with a working I2S in a kernel not using fex files. Kind regards, Daan
  2. Hi, Have you been able to get the I2S to work? Kind regards, Daan
  3. I've been working further but still no sound card I'm now using a single overlay file: /dts-v1/; /plugin/; / { compatible = "allwinner,sun7i-a20"; fragment@0 { target-path = "/aliases"; __overlay__ { i2c1 = "/soc@01c00000/i2c@01c2b000"; i2s0 = "/soc@01c00000/i2s@01c22400"; }; }; fragment@1 { target = <&i2c1>; __overlay__ { pinctrl-names = "default"; pinctrl-0 = <&i2c1_pins_a>; status = "okay"; wm8731@1a { #sound-dai-cells = <0>; compatible = "wlf,wm8731"; reg = <0x1a>; status = "okay"; }; }; }; fragment@2 { target-path = "/"; __overlay__ { wm8731: wm8731 { #sound-dai-cells = <0>; compatible = "wlf,wm8731"; status = "okay"; }; }; }; fragment@3 { target = <&pio>; __overlay__ { i2s0_pins: i2s0 { pins = "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12"; function = "i2s0"; }; }; }; fragment@4 { target = <&i2s0>; __overlay__ { status = "okay"; pinctrl-0 = <&i2s0_pins>; sound-dai = <&wm8731>; pinctrl-names = "default"; }; }; fragment@5 { target-path = "/"; __overlay__ { sound { compatible = "simple-audio-card"; simple-audio-card,name = "I2S-master"; simple-audio-card,format = "i2s"; status = "okay"; simple-audio-card,widgets = "Headphone", "Headphone Jack", "Microphone", "Microphone Jack", "Line", "Line Jack"; simple-audio-card,routing = "Headphone Jack", "RHPOUT", "Headphone Jack", "LHPOUT", "LLINEIN", "Line Jack", "MICIN", "Mic Bias", "Mic Bias", "Microphone Jack"; simple-audio-card,cpu { sound-dai = <&i2s0>; }; simple-audio-card,codec { sound-dai = <&wm8731>; }; }; }; }; }; And lsmod is showing me the correct modules (I think): root@lime2:/dev# lsmod Module Size Used by sun4i_gpadc_iio 16384 0 snd_soc_wm8731 20480 0 snd_soc_simple_card 16384 0 snd_soc_simple_card_utils 16384 1 snd_soc_simple_card at24 20480 0 axp20x_usb_power 16384 0 axp20x_battery 16384 0 axp20x_adc 16384 0 evdev 20480 1 sun4i_i2s 20480 0 industrialio 49152 4 axp20x_usb_power,axp20x_battery,sun4i_gpadc_iio,axp20x_adc snd_soc_core 106496 4 snd_soc_wm8731,sun4i_i2s,snd_soc_simple_card_utils,snd_soc_simple_card snd_pcm_dmaengine 16384 1 snd_soc_core snd_pcm 65536 4 snd_soc_wm8731,sun4i_i2s,snd_pcm_dmaengine,snd_soc_core sun4i_ts 16384 0 snd_timer 24576 1 snd_pcm sun4i_gpadc 16384 0 snd 45056 4 snd_soc_wm8731,snd_timer,snd_soc_core,snd_pcm soundcore 16384 1 snd zstd 16384 2 sun4i_ss 24576 0 cpufreq_dt 16384 0 uio_pdrv_genirq 16384 0 uio 16384 1 uio_pdrv_genirq thermal_sys 57344 3 sun4i_ts,cpufreq_dt,sun4i_gpadc_iio zram 20480 3 bonding 94208 0 ip_tables 20480 0 x_tables 20480 1 ip_tables pinctrl_axp209 16384 0 pwrseq_emmc 16384 1 realtek 16384 1 Has anybody been able to get I2S to work?
  4. Hello, I've been searching for the last couple of days to get I2S audio working on my Olimex A20-SOM-EVB. I've tried many options but without luck. Let me describe the setup: Hardware I have the Olimex A20-SOM-EVB and the MikroElektronika Audio Codec Board - PROTO and I've connected these two boards according to the following connection table: A20 SoC PIN I2S signal name I2S Signal description WM8731 PIN PB5 MCLK Master clock (not connected) PB6 BCLK Bit clock BCLK PB7 LRCK Frame sync (switch between L and R) DACL PB8 DOUT0 Data output 0 DACDAT PB12 DIN Data input ADCDAT I also connected the I2C SCL and SDA lines to the I2C0 bus through the UEXT2 connector of the board. Software I've downloaded the latest Armbian, currently running kernel 4.19.13-sunxi and compiled the image from scratch. I've included the sunxi-i2s driver in the kernel configuration and I also made sure to select the WM8731 codec driver. As the A20-SOM-EVB is not in the supported devices list I'm using the LIME2 board as this is the only board with matching ethernet configuration. The image boots fine but at this point there is no audio card and no '/dev/i2s' device. Therefore I've created the following dts overlay files: sun7i-a20-i2s0.dts: /dts-v1/; /plugin/; / { compatible = "allwinner,sun7i-a20"; fragment@0 { target = <&pio>; __overlay__ { i2s0_pins: i2s0 { pins = "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12"; function = "i2s0"; }; }; }; fragment@1 { target = <&i2s0>; __overlay__ { pinctrl-names = "default"; pinctrl-0 = <&i2s0_pins>; status = "okay"; }; }; }; sun7i-a20-i2c1.dts: /dts-v1/; /plugin/; / { compatible = "allwinner,sun7i-a20"; fragment@0 { target-path = "/aliases"; __overlay__ { i2c1 = "/soc@01c00000/i2c@01c2b000"; }; }; fragment@1 { target = <&i2c1>; __overlay__ { pinctrl-names = "default"; pinctrl-0 = <&i2c1_pins_a>; status = "okay"; wm8731@1a { #sound-dai-cells = <0>; compatible = "wlf,wm8731"; reg = <0x1a>; status = "okay"; }; }; }; }; sound.dts: /dts-v1/; /plugin/; / { compatible = "allwinner,sun7i-a20"; fragment@0 { target-path = "/"; __overlay__ { wm8731: wm8731 { #sound-dai-cells = <0>; compatible = "wlf,wm8731"; status = "okay"; }; }; }; fragment@1 { target-path = "/"; __overlay__ { sound { compatible = "simple-audio-card"; simple-audio-card,format = "i2s"; simple-audio-card,cpu { sound-dai = <&i2s0>; }; simple-audio-card,codec { sound-dai = <&wm8731>; }; }; }; }; }; I then compiled these 3 dts overlay files with 'armbian-add-overlay'. These files are now correctly added by uboot as can be seen in the boot log: Boot script loaded from mmc 252 bytes read in 10 ms (24.4 KiB/s) 4914007 bytes read in 287 ms (16.3 MiB/s) 6504992 bytes read in 377 ms (16.5 MiB/s) Found mainline kernel configuration 40538 bytes read in 67 ms (590.8 KiB/s) 702 bytes read in 10 ms (68.4 KiB/s) Applying user provided DT overlay sun7i-a20-i2s0.dtbo 619 bytes read in 11 ms (54.7 KiB/s) Applying user provided DT overlay sun7i-a20-i2c1.dtbo 862 bytes read in 12 ms (69.3 KiB/s) Applying user provided DT overlay sound.dtbo 5845 bytes read in 81 ms (70.3 KiB/s) Applying kernel provided DT fixup script (sun7i-a20-fixup.scr) The I2C bus and WM8731 driver appears to be working, this is the relevant dmesg output: [ 8.264826] wm8731 1-001a: Assuming static MCLK [ 8.264869] wm8731 1-001a: 1-001a supply AVDD not found, using dummy regulator [ 8.264994] wm8731 1-001a: Linked as a consumer to regulator.0 [ 8.265013] wm8731 1-001a: 1-001a supply HPVDD not found, using dummy regulator [ 8.265066] wm8731 1-001a: 1-001a supply DCVDD not found, using dummy regulator [ 8.265133] wm8731 1-001a: 1-001a supply DBVDD not found, using dummy regulator But after all this work there is still no i2s device and no sound card in aplay -l. What am I missing, can anybody point me in the right direction? Any help would be much appreciated. As a reference this is the output of 'armbianmonitor -u': http://ix.io/1yun Kind regards, Daan
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines