This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

about tlv320aic3104 debug

Other Parts Discussed in Thread: TLV320AIC3104, AM3358, TPS65910, TPS65217

Dear  sir

we use tlv320aic3104  on am3358 board,but it do not works, we design our board follows  http://elinux.org/CircuitCo:Audio_Cape_RevB; 

use sdk 6 with 3.2 kernel. 

 

  • U-Boot 2013.01.01 (May 08 2015 - 17:37:03)

    I2C: ready
    DRAM: 512 MiB
    WARNING: Caches not enabled
    Incorrect magic number (0xffffffff) in EEPROM
    Could not get board ID.
    NAND: No NAND device found!!!
    0 MiB
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
    *** Warning - readenv() failed, using default environment

    musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
    musb-hdrc: MHDRC RTL version 2.0
    musb-hdrc: setup fifo_mode 4
    musb-hdrc: 28/31 max ep, 16384/16384 memory
    USB Peripheral mode controller at 47401000 using PIO, IRQ 0
    musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
    musb-hdrc: MHDRC RTL version 2.0
    musb-hdrc: setup fifo_mode 4
    musb-hdrc: 28/31 max ep, 16384/16384 memory
    USB Host mode controller at 47401800 using PIO, IRQ 0
    Net: <ethaddr> not set. Validating first E-fuse MAC
    cpsw, usb_ether
    Hit any key to stop autoboot: 0
    mmc1(part 0) is current device
    SD/MMC found on device 1
    reading uEnv.txt
    ** Unable to read file uEnv.txt **
    reading uImage
    3167432 bytes read in 696 ms (4.3 MiB/s)
    Booting from mmc ...
    ## Booting kernel from Legacy Image at 80007fc0 ...
    Image Name: Linux-3.2.0
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 3167368 Bytes = 3 MiB
    Load Address: 80008000
    Entry Point: 80008000
    Verifying Checksum ... OK
    XIP Kernel Image ... OK
    OK

    Starting kernel ...

    Uncompressing Linux... done, booting the kernel.
    [ 0.000000] Linux version 3.2.0 (zhouqun@zhouqun) (gcc version 4.7.3 20130226 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-5
    [ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
    [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [ 0.000000] Machine: am335xevm
    [ 0.000000] Memory policy: ECC disabled, Data cache writeback
    [ 0.000000] AM335X ES2.1 (sgx neon )
    [ 0.000000] ------------[ cut here ]------------
    [ 0.000000] WARNING: at arch/arm/mach-omap2/clkt_clksel.c:194 omap2_clksel_recalc+0xc8/0x134()
    [ 0.000000] clock: Could not find fieldval 0 for clock dpll_core_m6_ck parent dpll_core_x2_ck
    [ 0.000000] Modules linked in:
    [ 0.000000] Backtrace:
    [ 0.000000] [<c0017dbc>] (dump_backtrace+0x0/0x10c) from [<c040c07c>] (dump_stack+0x18/0x1c)
    [ 0.000000] r6:c0030b28 r5:00000009 r4:c05cbe78 r3:c05eca4c
    [ 0.000000] [<c040c064>] (dump_stack+0x0/0x1c) from [<c003e444>] (warn_slowpath_common+0x54/0x6c)
    [ 0.000000] [<c003e3f0>] (warn_slowpath_common+0x0/0x6c) from [<c003e500>] (warn_slowpath_fmt+0x38/0x40)
    [ 0.000000] r8:80000200 r7:c06476e4 r6:00000000 r5:c05dec38 r4:00000000
    [ 0.000000] r3:00000009
    [ 0.000000] [<c003e4c8>] (warn_slowpath_fmt+0x0/0x40) from [<c0030b28>] (omap2_clksel_recalc+0xc8/0x134)
    [ 0.000000] r3:00000000 r2:c04f944c
    [ 0.000000] [<c0030a60>] (omap2_clksel_recalc+0x0/0x134) from [<c00349d4>] (propagate_rate+0x34/0x54)
    [ 0.000000] r6:c064771c r5:c05deb38 r4:c05dec38
    [ 0.000000] [<c00349a0>] (propagate_rate+0x0/0x54) from [<c00349e0>] (propagate_rate+0x40/0x54)
    [ 0.000000] r5:c05deadc r4:c05deb24
    [ 0.000000] [<c00349a0>] (propagate_rate+0x0/0x54) from [<c00349e0>] (propagate_rate+0x40/0x54)
    [ 0.000000] r5:c05dea24 r4:c05deac8
    [ 0.000000] [<c00349a0>] (propagate_rate+0x0/0x54) from [<c00349e0>] (propagate_rate+0x40/0x54)
    [ 0.000000] r5:c05de910 r4:c05dea10
    [ 0.000000] [<c00349a0>] (propagate_rate+0x0/0x54) from [<c0034b44>] (recalculate_root_clocks+0x40/0x58)
    [ 0.000000] r5:c05ec1bc r4:c05de8fc
    [ 0.000000] [<c0034b04>] (recalculate_root_clocks+0x0/0x58) from [<c059bbd8>] (am33xx_clk_init+0x84/0xa0)
    [ 0.000000] r5:c05de78c r4:c05de78c
    [ 0.000000] [<c059bb54>] (am33xx_clk_init+0x0/0xa0) from [<c059b920>] (omap3xxx_clk_init+0xe0/0x314)
    [ 0.000000] r5:c0a62040 r4:00003517
    [ 0.000000] [<c059b840>] (omap3xxx_clk_init+0x0/0x314) from [<c05955b8>] (am33xx_init_early+0x3c/0x40)
    [ 0.000000] r7:c06476e4 r6:c064771c r5:c0a62040 r4:c05bb330
    [ 0.000000] [<c059557c>] (am33xx_init_early+0x0/0x40) from [<c0591de0>] (setup_arch+0x714/0x804)
    [ 0.000000] [<c05916cc>] (setup_arch+0x0/0x804) from [<c058e5a4>] (start_kernel+0x78/0x2dc)
    [ 0.000000] [<c058e52c>] (start_kernel+0x0/0x2dc) from [<80008040>] (0x80008040)
    [ 0.000000] r6:c05bc7a0 r5:c05cc084 r4:10c53c7d
    [ 0.000000] ---[ end trace 1b75b31a2719ed1c ]---
    [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048
    [ 0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk0p2 ro rootfstype=ext3 rootwait ip=none
    [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
    [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
    [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
    [ 0.000000] Memory: 512MB = 512MB total
    [ 0.000000] Memory: 513220k/513220k available, 11068k reserved, 0K highmem
    [ 0.000000] Virtual kernel memory layout:
    [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
    [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
    [ 0.000000] vmalloc : 0xe0800000 - 0xff000000 ( 488 MB)
    [ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)
    [ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)
    [ 0.000000] .text : 0xc0008000 - 0xc058e000 (5656 kB)
    [ 0.000000] .init : 0xc058e000 - 0xc05c9000 ( 236 kB)
    [ 0.000000] .data : 0xc05ca000 - 0xc0631c70 ( 416 kB)
    [ 0.000000] .bss : 0xc0631c94 - 0xc06608a4 ( 188 kB)
    [ 0.000000] NR_IRQS:396
    [ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
    [ 0.000000] Total of 128 interrupts on 1 active controller
    [ 0.000000] OMAP clockevent source: GPTIMER2 at 24000000 Hz
    [ 0.000000] OMAP clocksource: GPTIMER1 at 32768 Hz
    [ 0.000000] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 131071999ms
    [ 0.000000] Console: colour dummy device 80x30
    [ 0.000335] Calibrating delay loop... 298.59 BogoMIPS (lpj=1492992)
    [ 0.067657] pid_max: default: 32768 minimum: 301
    [ 0.067932] Security Framework initialized
    [ 0.068115] Mount-cache hash table entries: 512
    [ 0.068817] CPU: Testing write buffer coherency: ok
    [ 0.096435] omap_hwmod: pruss: failed to hardreset
    [ 0.098663] print_constraints: dummy:
    [ 0.099395] NET: Registered protocol family 16
    [ 0.103881] OMAP GPIO hardware version 0.1
    [ 0.109863] omap_mux_init: Add partition: #1: core, flags: 0
    [ 0.114013] omap_i2c.1: alias fck already exists
    [ 0.115844] omap2_mcspi.1: alias fck already exists
    [ 0.116333] omap2_mcspi.2: alias fck already exists
    [ 0.118499] edma.0: alias fck already exists
    [ 0.118530] edma.0: alias fck already exists
    [ 0.118591] edma.0: alias fck already exists
    [ 0.185607] bio: create slab <bio-0> at 0
    [ 0.190551] SCSI subsystem initialized
    [ 0.194244] usbcore: registered new interface driver usbfs
    [ 0.194915] usbcore: registered new interface driver hub
    [ 0.195343] usbcore: registered new device driver usb
    [ 0.207794] omap_i2c omap_i2c.1: bus 1 rev2.4.0 at 100 kHz
    [ 0.211364] tps65910 1-002d: could not be detected
    [ 0.214477] Advanced Linux Sound Architecture Driver Version 1.0.24.
    [ 0.216827] Switching to clocksource gp timer
    [ 0.253417] NET: Registered protocol family 2
    [ 0.253784] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
    [ 0.254394] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
    [ 0.255096] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
    [ 0.255523] TCP: Hash tables configured (established 16384 bind 16384)
    [ 0.255554] TCP reno registered
    [ 0.255554] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.255615] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.256072] NET: Registered protocol family 1
    [ 0.256561] RPC: Registered named UNIX socket transport module.
    [ 0.256591] RPC: Registered udp transport module.
    [ 0.256591] RPC: Registered tcp transport module.
    [ 0.256622] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [ 0.257202] NetWinder Floating Point Emulator V0.97 (double precision)
    [ 0.288299] VFS: Disk quotas dquot_6.5.2
    [ 0.288421] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    [ 0.289520] msgmni has been set to 1002
    [ 0.295928] alg: No test for stdrng (krng)
    [ 0.297332] io scheduler noop registered
    [ 0.297363] io scheduler deadline registered
    [ 0.297485] io scheduler cfq registered (default)
    [ 0.299957] Could not set LED4 to fully on
    [ 0.303680] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
    [ 0.988922] console [ttyO0] enabled
    [ 0.993713] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
    [ 1.002197] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
    [ 1.010528] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
    [ 1.018890] omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
    [ 1.027221] omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
    [ 1.036529] omap4_rng omap4_rng: OMAP4 Random Number Generator ver. 2.00
    [ 1.064788] brd: module loaded
    [ 1.079223] loop: module loaded
    [ 1.082946] i2c-core: driver [tsl2550] using legacy suspend method
    [ 1.089569] i2c-core: driver [tsl2550] using legacy resume method
    [ 1.096191] at24 1-0051: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
    [ 1.157470] No daughter card found
    [ 1.161163] at24 1-0050: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
    [ 1.170898] The board is a AM335x Beaglebone Black.
    [ 1.179931] tps65217 1-0024: TPS65217 ID 0xe version 1.2
    [ 1.189086] print_constraints: DCDC1: 900 <--> 1800 mV at 1500 mV
    [ 1.199218] print_constraints: DCDC2: 900 <--> 3300 mV at 1100 mV
    [ 1.209350] print_constraints: DCDC3: 900 <--> 1500 mV at 1100 mV
    [ 1.219360] print_constraints: LDO1: 1000 <--> 3300 mV at 1800 mV
    [ 1.229339] print_constraints: LDO2: 900 <--> 3300 mV at 3300 mV
    [ 1.239166] print_constraints: LDO3: 1800 <--> 3300 mV at 1800 mV
    [ 1.249176] print_constraints: LDO4: 1800 <--> 3300 mV at 3300 mV
    [ 1.256988] +++++++zhouqun mcasp0_init
    [ 1.261230] davinci-mcasp.0: alias fck already exists
    [ 1.267913] omap_hsmmc.0: alias fck already exists
    [ 1.273712] omap_hsmmc.1: alias fck already exists
    [ 1.279418] ++++zhouqun i2c2_init
    [ 1.283081] omap_i2c.3: alias fck already exists
    [ 1.307586] omap_i2c omap_i2c.3: bus 3 rev2.4.0 at 100 kHz
    [ 1.318084] registered am33xx_sr device
    [ 1.326110] mtdoops: mtd device (mtddev=name/number) must be supplied
    [ 1.333770] omap2-nand driver initializing
    [ 1.338531] OneNAND driver initializing
    [ 1.345336] CAN device driver interface
    [ 1.349456] CAN bus driver for Bosch D_CAN controller 1.0
    [ 1.397521] davinci_mdio davinci_mdio.0: davinci mdio revision 1.6
    [ 1.404083] davinci_mdio davinci_mdio.0: detected phy mask fffffffe
    [ 1.411865] davinci_mdio.0: probed
    [ 1.415496] davinci_mdio davinci_mdio.0: phy[0]: device 0:00, driver SMSC LAN8710/LAN8720
    [ 1.424896] usbcore: registered new interface driver zd1201
    [ 1.431274] usbcore: registered new interface driver cdc_ether
    [ 1.437835] usbcore: registered new interface driver cdc_eem
    [ 1.444152] usbcore: registered new interface driver dm9601
    [ 1.450164] cdc_ncm: 04-Aug-2011
    [ 1.453948] usbcore: registered new interface driver cdc_ncm
    [ 1.459991] Initializing USB Mass Storage driver...
    [ 1.465545] usbcore: registered new interface driver usb-storage
    [ 1.471954] USB Mass Storage support registered.
    [ 1.478546] mousedev: PS/2 mouse device common for all mice
    [ 1.486663] omap_rtc am33xx-rtc: rtc core: registered am33xx-rtc as rtc0
    [ 1.494323] i2c /dev entries driver
    [ 1.499511] Linux video capture interface: v2.00
    [ 1.505065] usbcore: registered new interface driver uvcvideo
    [ 1.511199] USB Video Class driver (1.1.1)
    [ 1.522247] OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
    [ 1.531372] cpuidle: using governor ladder
    [ 1.536834] cpuidle: using governor menu
    [ 1.546539] omap4_aes_mod_init: loading AM33X AES driver
    [ 1.552459] omap4-aes omap4-aes: AM33X AES hw accel rev: 3.02
    [ 1.559875] omap4_aes_probe: probe() done
    [ 1.564636] omap4_sham_mod_init: loading AM33X SHA/MD5 driver
    [ 1.571044] omap4-sham omap4-sham: AM33X SHA/MD5 hw accel rev: 4.03
    [ 1.593811] omap4_sham_probe: probe() done
    [ 1.603912] usbcore: registered new interface driver usbhid
    [ 1.609893] usbhid: USB HID core driver
    [ 1.615570] usbcore: registered new interface driver snd-usb-audio
    [ 1.627075] +++++++++++++++zhouqun aic3x_i2c_probe
    [ 1.632232] control_type = SND_SOC_I2C
    [ 1.636260] ++++++snd_soc_register_codec:0
    [ 1.640686] +++++++++++++++zhouqun aic3x_i2c_probe
    [ 1.645751] control_type = SND_SOC_I2C
    [ 1.649780] ++++++snd_soc_register_codec:0
    [ 1.655578] ++++zhouqun am335x_evm?
    [ 1.659973] ++++++++++soc_bind_dai_link
    [ 1.664062] ++++++++zhouqun:binding TLV320AIC3X at idx 0
    [ 1.669952] +++++++++++++++ aic3x_probe
    [ 1.675689] ++++++++++++++aic3x_probe FINISHED
    [ 1.683288] +++++zhouqun:evm_aic3x_init
    [ 1.688964] asoc: tlv320aic3x-hifi <-> davinci-mcasp.0 mapping ok
    [ 1.698547] ALSA device list:
    [ 1.701751] #0: AM335X EVM
    [ 1.704803] oprofile: hardware counters not available
    [ 1.710205] oprofile: using timer interrupt.
    [ 1.714782] nf_conntrack version 0.5.0 (8019 buckets, 32076 max)
    [ 1.722167] ip_tables: (C) 2000-2006 Netfilter Core Team
    [ 1.728088] TCP cubic registered
    [ 1.731536] NET: Registered protocol family 17
    [ 1.736236] can: controller area network core (rev 20090105 abi 8)
    [ 1.743041] NET: Registered protocol family 29
    [ 1.747772] can: raw protocol (rev 20090105)
    [ 1.752319] can: broadcast manager protocol (rev 20090105 t)
    [ 1.758422] Registering the dns_resolver key type
    [ 1.763549] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    [ 1.771759] ThumbEE CPU extension supported.
    [ 1.776397] mux: Failed to setup hwmod io irq -22
    [ 1.782745] Power Management for AM33XX family
    [ 1.787841] Trying to load am335x-pm-firmware.bin (60 secs timeout)
    [ 1.794738] Copied the M3 firmware to UMEM
    [ 1.799285] Cortex M3 Firmware Version = 0x181
    [ 1.805603] create_regulator: DCDC2: Failed to create debugfs directory
    [ 1.814880] smartreflex smartreflex: am33xx_sr_probe: Driver initialized
    [ 1.832855] clock: disabling unused clocks to save power
    [ 1.863861] mmc1: new high speed MMC card at address 0001
    [ 1.871124] mmcblk0: mmc1:0001 S10004 3.56 GiB
    [ 1.876220] mmcblk0boot0: mmc1:0001 S10004 partition 1 4.00 MiB
    [ 1.883575] mmcblk0boot1: mmc1:0001 S10004 partition 2 4.00 MiB
    [ 1.892395] mmcblk0: p1 p2
    [ 1.901336] mmcblk0boot1: unknown partition table
    [ 1.909790] Detected MACID=d0:5f:b8:fc:3:d0
    [ 1.916595] cpsw: Detected MACID = d0:5f:b8:fc:03:d2
    [ 1.922851] mmcblk0boot0: unknown partition table
    [ 1.930511] omap_rtc am33xx-rtc: setting system clock to 2000-01-01 00:00:01 UTC (946684801)
    [ 1.946380] kjournald starting. Commit interval 5 seconds
    [ 1.952362] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode
    [ 1.959777] VFS: Mounted root (ext3 filesystem) readonly on device 179:2.
    [ 1.967987] Freeing init memory: 236K
    INIT: version 2.88 booting
    Error opening /dev/fb0: No such device
    Starting udev
    Starting Bootlog daemon: bootlogd: cannot allocate pseudo tty: No such file or directory
    bootlogd.
    [ 8.713348] EXT3-fs (mmcblk0p2): using internal journal
    ALSA: Restoring mixer settings...
    No state is present for card EVM
    Found hardware: "AM335X_EVM" "" "" "" ""
    Hardware is initialized using a generic method
    No state is present for card EVM
    Configuring network interfaces... [ 9.933837] net eth0: CPSW phy found : id is : 0x7c0f1
    udhcpc (v1.20.2) started
    Sending discover...
    Sending discover...
    Sending discover...
    No lease, failing
    done.
    Tue Jun 25 23:09:00 UTC 2013
    INIT: Entering runlevel: 5
    Starting system message bus: dbus.
    Starting Dropbear SSH server: Will output 1024 bit rsa secret key to '/etc/dropbear/dropbear_rsa_host_key'
    Generating key, this may take a while...
    Public key portion is:
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgnU02UW+Kuxcb3y9xEDXn1lPk1Urv7rP5TML855uufjsufFsA1Yfz7H8nzuda35UaJtf/QfymAMdgtlxMjHG3rYGcnOmezr0FDm
    Fingerprint: md5 fb:5a:5f:15:ee:af:c2:56:0d:9a:cf:65:6b:aa:72:1b
    dropbear.
    Starting telnet daemon.
    Performing wifi calibration...
    Error: Module wl12xx_sdio is not currently loaded
    nl80211 not found.
    [ 22.004577] Disabling lock debugging due to kernel taint
    Starting network benchmark server: netserver.
    Starting syslogd/klogd: done
    Starting thttpd.
    Starting Lighttpd Web Server: lighttpd.
    2013-06-25 23:09:03: (log.c.166) server started
    /
    Starting Matrix GUI application.
    ERROR: could not insert 'g_mass_storage': No such device
    ***************************************************************
    ***************************************************************
    NOTICE: This file system contains the followin GPLv3 packages:
    binutils-symlinks
    binutils
    gdbserver

    If you do not wish to distribute GPLv3 components please remove
    the above packages prior to distribution. This can be done using
    the opkg remove command. i.e.:
    opkg remove <package>
    Where <package> is the name printed in the list above

    NOTE: If the package is a dependency of another package you
    will be notified of the dependent packages. You should
    use the --force-removal-of-dependent-packages option to
    also remove the dependent packages as well
    ***************************************************************
    ***************************************************************
    Stopping Bootlog daemon: bootlogd.

    _____ _____ _ _
    | _ |___ ___ ___ ___ | _ |___ ___ |_|___ ___| |_
    | | _| .'| . | . | | __| _| . | | | -_| _| _|
    |__|__|_| |__,|_ |___| |__| |_| |___|_| |___|___|_|
    |___| |___|

    Arago Project http://arago-project.org am335x-evm ttyO0

    Arago 2013.05 am335x-evm ttyO0

    am335x-evm login: root
    root@am335x-evm:~# cd /
    root@am335x-evm:/# ls
    Settings dev lib mnt sbin test var
    bin etc lost+found opt srv tmp www
    boot home media proc sys usr
    root@am335x-evm:/# cd test/
    root@am335x-evm:/test# ls
    123.wav result.log stderr.log stdout.log test.sh
    root@am335x-evm:/test# aplay 123.wav
    Playing WAVE '123.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
    [ 60.159393] playback write error (DMA or IRQ trouble?)
    aplay: pcm_write:1710: write error: Input/output error
    root@am335x-evm:/test# <7>[ 144.803558] i2c i2c-1: master_xfer[0] W, addr=0x24, len=2
  • Hi,

    Please check whether you have pinmuxed the AM335X interface to the codec correctly?

  •  Hi Biser,
    I think you are right, I check the code, mcasp1_init() initialize the mcasp1, but we actually connect mcasp0,
    /* Module pin mux for mcasp1 */
    static struct pinmux_config mcasp1_pin_mux[] = {
    {"mii1_crs.mcasp1_aclkx", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN},
    {"mii1_rxerr.mcasp1_fsx", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN},
    {"mii1_col.mcasp1_axr2", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN},
    {"rmii1_refclk.mcasp1_axr3", OMAP_MUX_MODE4 |
    AM33XX_PIN_INPUT_PULLDOWN},
    {NULL, 0},
    };
    how can I initialize mcasp0? I wonder that how I can confirm the strings in the arry, like "mii1_crs.mcasp1_aclkx", would you please help me to verify it? thanks

    the attachment is the schem of audio, FYI

  • _AM33XX_MUXENTRY(MII1_COL, 0,
    "mii1_col", "rmii2_refclk", "spi1_sclk", NULL,
    "mcasp1_axr2", "mmc2_dat3", "mcasp0_axr2", "gpio3_0"),
    _AM33XX_MUXENTRY(MII1_CRS, 0,
    "mii1_crs", "rmii1_crs_dv", "spi1_d0", "i2c1_sda",
    "mcasp1_aclkx", NULL, NULL, "gpio3_1"),
    _AM33XX_MUXENTRY(MII1_RXERR, 0,
    "mii1_rxerr", "rmii1_rxerr", "spi1_d1", "i2c1_scl",
    "mcasp1_fsx", NULL, NULL, "gpio3_2"),
    _AM33XX_MUXENTRY(MII1_REFCLK, 0,
    "rmii1_refclk", NULL, "spi1_cs0", NULL,
    "mcasp1_axr3", "mmc0_pow", "mcasp1_ahclkx", "gpio0_29"),

    but actually we use
    _AM33XX_MUXENTRY(MCASP0_ACLKX, 0,
    "mcasp0_aclkx", NULL, NULL, "spi1_sclk",
    "mmc0_sdcd", NULL, NULL, "gpio3_14"),
    _AM33XX_MUXENTRY(MCASP0_FSX, 0,
    "mcasp0_fsx", NULL, NULL, "spi1_d0",
    "mmc1_sdcd", NULL, NULL, "gpio3_15"),
    _AM33XX_MUXENTRY(MCASP0_AXR0, 0,
    "mcasp0_axr0", NULL, NULL, "spi1_d1",
    "mmc2_sdcd", NULL, NULL, "gpio3_16"),
    _AM33XX_MUXENTRY(MCASP0_AHCLKR, 0,
    "mcasp0_ahclkr", NULL, "mcasp0_axr2", "spi1_cs0",
    "ecap2_in_pwm2_out", NULL, NULL, "gpio3_17"),

    _AM33XX_MUXENTRY(MCASP0_AHCLKX, 0,
    "mcasp0_ahclkx", NULL, "mcasp0_axr3", "mcasp1_axr1",
    NULL, NULL, NULL, "gpio3_21"),

    mcasp0 is used as the default function, how can we pinmux it? like "mcasp0_ahclkx.mcasp0_ahclkx" or just "mcasp0_ahclkx" in the array I mentioned before. as follows
    static struct pinmux_config mcasp1_pin_mux[] = {
    {"mii1_crs.mcasp1_aclkx", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN},
    {"mii1_rxerr.mcasp1_fsx", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN},
    {"mii1_col.mcasp1_axr2", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN},
    {"rmii1_refclk.mcasp1_axr3", OMAP_MUX_MODE4 |
    AM33XX_PIN_INPUT_PULLDOWN},
    {NULL, 0},
    };
  • now I configed as follows, is it correct?
    /*Module pin mux for mcasp0 */

    static struct pinmux_config mcasp0_pin_mux[] = {

    {"mcasp0_aclkx.mcasp0_aclkx", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},

    {"mcasp0_fsx.mcasp0_fsx", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},

    {"mcasp0_axr0.mcasp0_axr0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},

    {"mcasp0_axr1.mcasp0_axr1", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
    {"mcasp0_ahclkx.mcasp0_ahclkx", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN}, // Is this pin config here? or any advice?
    {NULL, 0},

    };
  • This seems correct.

  • Hi,

    You need to configure like mcasp0_ahclkx.mcasp0_ahclkx.
    For example to mux the MCASP0 pins showed in the schematic above you need to create a structure similar to the one bellow:

    static struct pinmux_config mcasp0_pin_mux[] = {
    {"mcasp0_fsx.mcasp0_fsx", OMAP_MUXMODE0 | AM33XX_PIN_INPUT_PULLDOWN},
    {"mcasp0_aclkx.mcasp0_aclkx", OMAP_MUXMODE0 | AM33XX_PIN_INPUT_PULLDOWN},
    {"mcasp0_axr0.mcasp0_axr0", OMAP_MUXMODE0 | AM33XX_PIN_INPUT_PULLDOWN},
    .................................
    .................................
    {NULL, 0},
    };

    Above structure configures
    ball B13 as mcasp0_fsx with input enable & pull down
    ball A13 as mcasp0_aclkx with input enable & pull down
    ball D12 as mcasp0_axr0 with input enable & pull down
    and so on....

    Hope this helps.

    Best Regards,
    Yordan

  • hi Yordan,

    we configed as follows but failed. 

    /*Module pin mux for mcasp0 */

    static struct pinmux_config mcasp0_pin_mux[] = {

            {"mcasp0_aclkx.mcasp0_aclkx", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},

            {"mcasp0_fsx.mcasp0_fsx", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},

            {"mcasp0_axr0.mcasp0_axr0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},

            {"mcasp0_axr1.mcasp0_axr1", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},

            {"mcasp0_ahclkx.mcasp0_ahclkx", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},         // Is this pin config here? or any advice?
            {NULL, 0},

    };

  • root@am335x-evm:/test# aplay 123.wav
    Playing WAVE '123.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
    [ 60.159393] playback write error (DMA or IRQ trouble?)
    aplay: pcm_write:1710: write error: Input/output error
    root@am335x-evm:/test# <7>[ 144.803558] i2c i2c-1: master_xfer[0] W, addr=0x24, len=2

    we test aplay, but error occurred, so we can not detect the clock-"mcasp0_ahclkx.mcasp0_ahclkx", what is the default clock of this pin?
    or we did the wrong test method? any advice?
  • hi Biser,
    we can not get the clock of {"mcasp0_ahclkx.mcasp0_ahclkx", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN}, this pin with the instrument.
    and the initial log seems ok now,

    [ 1.627075] +++++++++++++++zhouqun aic3x_i2c_probe
    [ 1.632232] control_type = SND_SOC_I2C
    [ 1.636260] ++++++snd_soc_register_codec:0
    [ 1.640686] +++++++++++++++zhouqun aic3x_i2c_probe
    [ 1.645751] control_type = SND_SOC_I2C
    [ 1.649780] ++++++snd_soc_register_codec:0
    [ 1.655578] ++++zhouqun am335x_evm?
    [ 1.659973] ++++++++++soc_bind_dai_link
    [ 1.664062] ++++++++zhouqun:binding TLV320AIC3X at idx 0
    [ 1.669952] +++++++++++++++ aic3x_probe
    [ 1.675689] ++++++++++++++aic3x_probe FINISHED
    [ 1.683288] +++++zhouqun:evm_aic3x_init
    [ 1.688964] asoc: tlv320aic3x-hifi <-> davinci-mcasp.0 mapping ok
    [ 1.698547] ALSA device list:
    [ 1.701751] #0: AM335X EVM

    but can not play audio, when we test as follow command ,it encounts failure.
    root@am335x-evm:/test# aplay 123.wav
    Playing WAVE '123.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
    [ 60.159393] playback write error (DMA or IRQ trouble?)
    aplay: pcm_write:1710: write error: Input/output error
    root@am335x-evm:/test# <7>[ 144.803558] i2c i2c-1: master_xfer[0] W, addr=0x24, len=2

    we test aplay, but error occurred, so we can not detect the clock-"mcasp0_ahclkx.mcasp0_ahclkx", what is the default clock of this pin?
    or we did the wrong test method? any advice?
  • I have doubt that why pull down these pins include {"mcasp0_ahclkx.mcasp0_ahclkx", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},

    is it correct?
  • I wonder what is the meaning of am335x_iis_serializer_direction1[? we used mcasp0 is different with the default mcasp1.
    static u8 am335x_iis_serializer_direction1[] = {
    e2e.ti.com/.../1517447 INACTIVE_MODE, INACTIVE_MODE, TX_MODE, RX_MODE,
    INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
    INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
    INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
    };
    //wubin
    static struct snd_platform_data am335x_evm_snd_data0 = {
    .tx_dma_offset = 0x46000000, /* McASP0 */
    .rx_dma_offset = 0x46000000,
    .op_mode = DAVINCI_MCASP_IIS_MODE,
    .num_serializer = ARRAY_SIZE(am335x_iis_serializer_direction1),
    .tdm_slots = 2,
    .serial_dir = am335x_iis_serializer_direction1,
    .asp_chan_q = EVENTQ_2,
    .version = MCASP_VERSION_3,
    .txnumevt = 32,
    .rxnumevt = 32,
    .get_context_loss_count =
    omap_pm_get_dev_context_loss_count,
    };
  • Hi,

    "I have doubt that why pull down these pins include {"mcasp0_ahclkx.mcasp0_ahclkx", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},

    is it correct?"

    Yes, this is correct. Audio pins are set with INPUTENABLE & PULLDOWN selected.

    "I wonder what is the meaning of am335x_iis_serializer_direction1[?"

    This is used to describe the serializer direction: whether it is inactive, transmitting or receiving.

    As to why you can't get mcasp0_ahclkx clock on the pin, I have a couple of suggestions:

    1. Check your board file to verify that no other IP uses this pin.
    2. See clock settings for MCASP0 => consult PRCM chapter in AM335x TRM. Register you need to check is: CM_PER_MCASP0_CLKCTRL[1:0]MODULEMODE (physical address of the register is 0x0x44E00034)
    3. Also verify that pinmux registers are being written (print their values in MCASP driver, i.e. inside the initialization function ).

    Also see the following guide: processors.wiki.ti.com/.../Sitara_Linux_Audio_DAC_Example . It is for later kernels (using dts) but you may use them as a reference to see what settings you need to do in order to port your codec... perhaps you've missed something in the tlv320aic3104 settings.

    Best Regards,
    Yordan
  • Hi Biser,
    we now consider to use CLKOUT1(A15) or CLKOUT2(D14) as the MCLK of TLV320AIC3014,

    we test CLKOUT2 is 32.768k ,but TLV320AIC3014 need 500KHz to 50Mhz,
    we wonder how to config CLKOUT1 CLKOUT2 to be 12MHz or 24MHz to satisfy codec?
  • we add some printk in the file davinci-mcasp.c ,but no log was printed.
  • Hi Yodan,
    we will check following your guide.

    CM_PER_MCASP0_CLKCTRL we do not change the default code.
  • now  we config as follows, is there a function like setup_pin_mux for us to print the pinmux value?

    /* Setup McASP 0 wubin */
    static void mcasp0_init(int evm_id, int profile)
    {
    /* Configure McASP */
    setup_pin_mux(mcasp0_pin_mux);
    switch (evm_id) {
    case EVM_SK:
    am335x_register_mcasp(&am335x_evm_sk_snd_data0, 0);
    break;
    default:
    am335x_register_mcasp(&am335x_evm_snd_data0, 0);
    }

    return;
    }

  • Hi Yordan
    in clock33xx_data.c line 2099,
    CLK("davinci-mcasp.0", NULL, &mcasp0_fck, CK_AM33XX),
    CLK(NULL, "mcasp2_ick", &mcasp1_ick, CK_AM33XX),
    CLK("davinci-mcasp.1", NULL, &mcasp1_fck, CK_AM33XX),
    what's this clock for?

    the new log is as follows at the beginning,
    Starting kernel ...

    Uncompressing Linux... done, booting the kernel.
    [ 0.000000] Linux version 3.2.0 (zhouqun@zhouqun) (gcc version 4.7.3 20130226 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-5
    [ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
    [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [ 0.000000] Machine: am335xevm
    [ 0.000000] Memory policy: ECC disabled, Data cache writeback
    [ 0.000000] AM335X ES2.1 (sgx neon )
    [ 0.000000] ------------[ cut here ]------------
    [ 0.000000] WARNING: at arch/arm/mach-omap2/clkt_clksel.c:194 omap2_clksel_recalc+0xc8/0x134()
    [ 0.000000] clock: Could not find fieldval 0 for clock dpll_core_m6_ck parent dpll_core_x2_ck
    [ 0.000000] Modules linked in:
    [ 0.000000] Backtrace:
    [ 0.000000] [<c0017dbc>] (dump_backtrace+0x0/0x10c) from [<c040c07c>] (dump_stack+0x18/0x1c)
    [ 0.000000] r6:c0030b28 r5:00000009 r4:c05cbe78 r3:c05eca4c
    [ 0.000000] [<c040c064>] (dump_stack+0x0/0x1c) from [<c003e444>] (warn_slowpath_common+0x54/0x6c)
    [ 0.000000] [<c003e3f0>] (warn_slowpath_common+0x0/0x6c) from [<c003e500>] (warn_slowpath_fmt+0x38/0x40)
    [ 0.000000] r8:80000200 r7:c06476e4 r6:00000000 r5:c05dec38 r4:00000000
    [ 0.000000] r3:00000009
    [ 0.000000] [<c003e4c8>] (warn_slowpath_fmt+0x0/0x40) from [<c0030b28>] (omap2_clksel_recalc+0xc8/0x134)
    [ 0.000000] r3:00000000 r2:c04f944c
    [ 0.000000] [<c0030a60>] (omap2_clksel_recalc+0x0/0x134) from [<c00349d4>] (propagate_rate+0x34/0x54)
    [ 0.000000] r6:c064771c r5:c05deb38 r4:c05dec38
    [ 0.000000] [<c00349a0>] (propagate_rate+0x0/0x54) from [<c00349e0>] (propagate_rate+0x40/0x54)
    [ 0.000000] r5:c05deadc r4:c05deb24
    [ 0.000000] [<c00349a0>] (propagate_rate+0x0/0x54) from [<c00349e0>] (propagate_rate+0x40/0x54)
    [ 0.000000] r5:c05dea24 r4:c05deac8
    [ 0.000000] [<c00349a0>] (propagate_rate+0x0/0x54) from [<c00349e0>] (propagate_rate+0x40/0x54)
    [ 0.000000] r5:c05de910 r4:c05dea10
    [ 0.000000] [<c00349a0>] (propagate_rate+0x0/0x54) from [<c0034b44>] (recalculate_root_clocks+0x40/0x58)
    [ 0.000000] r5:c05ec1bc r4:c05de8fc
    [ 0.000000] [<c0034b04>] (recalculate_root_clocks+0x0/0x58) from [<c059bbd8>] (am33xx_clk_init+0x84/0xa0)
    [ 0.000000] r5:c05de78c r4:c05de78c
    [ 0.000000] [<c059bb54>] (am33xx_clk_init+0x0/0xa0) from [<c059b920>] (omap3xxx_clk_init+0xe0/0x314)
    [ 0.000000] r5:c0a62040 r4:00003517
    [ 0.000000] [<c059b840>] (omap3xxx_clk_init+0x0/0x314) from [<c05955b8>] (am33xx_init_early+0x3c/0x40)
    [ 0.000000] r7:c06476e4 r6:c064771c r5:c0a62040 r4:c05bb330
    [ 0.000000] [<c059557c>] (am33xx_init_early+0x0/0x40) from [<c0591de0>] (setup_arch+0x714/0x804)
    [ 0.000000] [<c05916cc>] (setup_arch+0x0/0x804) from [<c058e5a4>] (start_kernel+0x78/0x2dc)
    [ 0.000000] [<c058e52c>] (start_kernel+0x0/0x2dc) from [<80008040>] (0x80008040)
    [ 0.000000] r6:c05bc7a0 r5:c05cc084 r4:10c53c7d
    [ 0.000000] ---[ end trace 1b75b31a2719ed1c ]---
    [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048
    [ 0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk0p2 ro rootfstype=ext3 rootwait ip=none
    [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
    [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
    [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
    [ 0.000000] Memory: 512MB = 512MB total
    [ 0.000000] Memory: 513220k/513220k available, 11068k reserved, 0K highmem
    [ 0.000000] Virtual kernel memory layout:
    [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
    [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
    [ 0.000000] vmalloc : 0xe0800000 - 0xff000000 ( 488 MB)
    [ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)
    [ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)
    [ 0.000000] .text : 0xc0008000 - 0xc058e000 (5656 kB)
    [ 0.000000] .init : 0xc058e000 - 0xc05c9000 ( 236 kB)
    [ 0.000000] .data : 0xc05ca000 - 0xc0631c70 ( 416 kB)
    [ 0.000000] .bss : 0xc0631c94 - 0xc06608a4 ( 188 kB)
    [ 0.000000] NR_IRQS:396
    [ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
    [ 0.000000] Total of 128 interrupts on 1 active controller
    [ 0.000000] OMAP clockevent source: GPTIMER2 at 24000000 Hz
    [ 0.000000] OMAP clocksource: GPTIMER1 at 32768 Hz
    [ 0.000000] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 131071999ms
    [ 0.000000] Console: colour dummy device 80x30
    [ 0.000305] Calibrating delay loop... 298.59 BogoMIPS (lpj=1492992)
    [ 0.067291] pid_max: default: 32768 minimum: 301
    [ 0.067565] Security Framework initialized
    [ 0.067749] Mount-cache hash table entries: 512
    [ 0.068481] CPU: Testing write buffer coherency: ok
    [ 0.096069] omap_hwmod: pruss: failed to hardreset
    [ 0.098236] print_constraints: dummy:
    [ 0.098999] NET: Registered protocol family 16
    [ 0.103485] OMAP GPIO hardware version 0.1
    [ 0.109436] omap_mux_init: Add partition: #1: core, flags: 0
    [ 0.113616] omap_i2c.1: alias fck already exists
    [ 0.115478] omap2_mcspi.1: alias fck already exists
    [ 0.115966] omap2_mcspi.2: alias fck already exists
    [ 0.118103] edma.0: alias fck already exists
    [ 0.118164] edma.0: alias fck already exists
    [ 0.118194] edma.0: alias fck already exists
    [ 0.185241] bio: create slab <bio-0> at 0
    [ 0.190185] SCSI subsystem initialized
    [ 0.193878] usbcore: registered new interface driver usbfs
    [ 0.194519] usbcore: registered new interface driver hub
    [ 0.194946] usbcore: registered new device driver usb
    [ 0.207427] omap_i2c omap_i2c.1: bus 1 rev2.4.0 at 100 kHz
    [ 0.211029] tps65910 1-002d: could not be detected
    [ 0.214141] Advanced Linux Sound Architecture Driver Version 1.0.24.
    [ 0.216491] Switching to clocksource gp timer
    [ 0.253021] NET: Registered protocol family 2
    [ 0.253387] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
    [ 0.253967] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
    [ 0.254669] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
    [ 0.255096] TCP: Hash tables configured (established 16384 bind 16384)
    [ 0.255126] TCP reno registered
    [ 0.255157] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.255218] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.255645] NET: Registered protocol family 1
    [ 0.256134] RPC: Registered named UNIX socket transport module.
    [ 0.256164] RPC: Registered udp transport module.
    [ 0.256195] RPC: Registered tcp transport module.
    [ 0.256225] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [ 0.256805] NetWinder Floating Point Emulator V0.97 (double precision)
    [ 0.288085] VFS: Disk quotas dquot_6.5.2
    [ 0.288208] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    [ 0.289276] msgmni has been set to 1002
    [ 0.295745] alg: No test for stdrng (krng)
    [ 0.297149] io scheduler noop registered
    [ 0.297180] io scheduler deadline registered
    [ 0.297332] io scheduler cfq registered (default)
    [ 0.299713] Could not set LED4 to fully on
    [ 0.303436] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
    [ 0.989471] console [ttyO0] enabled
    [ 0.994262] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
    [ 1.002746] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
    [ 1.011108] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
    [ 1.019470] omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
    [ 1.027832] omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
    [ 1.037170] omap4_rng omap4_rng: OMAP4 Random Number Generator ver. 2.00
    [ 1.065399] brd: module loaded
    [ 1.079803] loop: module loaded
    [ 1.083526] i2c-core: driver [tsl2550] using legacy suspend method
    [ 1.090148] i2c-core: driver [tsl2550] using legacy resume method
    [ 1.096771] at24 1-0051: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
    [ 1.157135] No daughter card found
    [ 1.160827] at24 1-0050: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
    [ 1.170562] The board is a AM335x Beaglebone Black.
    [ 1.179626] tps65217 1-0024: TPS65217 ID 0xe version 1.2
    [ 1.188781] print_constraints: DCDC1: 900 <--> 1800 mV at 1500 mV
    [ 1.198913] print_constraints: DCDC2: 900 <--> 3300 mV at 925 mV
    [ 1.208984] print_constraints: DCDC3: 900 <--> 1500 mV at 1025 mV
    [ 1.218963] print_constraints: LDO1: 1000 <--> 3300 mV at 1800 mV
    [ 1.228973] print_constraints: LDO2: 900 <--> 3300 mV at 3300 mV
    [ 1.238830] print_constraints: LDO3: 1800 <--> 3300 mV at 1800 mV
    [ 1.248870] print_constraints: LDO4: 1800 <--> 3300 mV at 3300 mV
    [ 1.256652] +++++++zhouqun mcasp0_init
    [ 1.260925] davinci-mcasp.0: alias fck already exists
    [ 1.267608] omap_hsmmc.0: alias fck already exists
    [ 1.273406] omap_hsmmc.1: alias fck already exists
    [ 1.279144] ++++zhouqun i2c2_init
    [ 1.282806] omap_i2c.3: alias fck already exists
    [ 1.307250] omap_i2c omap_i2c.3: bus 3 rev2.4.0 at 100 kHz
    [ 1.317749] registered am33xx_sr device
    [ 1.325775] mtdoops: mtd device (mtddev=name/number) must be supplied
    [ 1.333496] omap2-nand driver initializing
    [ 1.338287] OneNAND driver initializing
    [ 1.345092] CAN device driver interface
    [ 1.349212] CAN bus driver for Bosch D_CAN controller 1.0
    [ 1.397216] davinci_mdio davinci_mdio.0: davinci mdio revision 1.6
    [ 1.403778] davinci_mdio davinci_mdio.0: detected phy mask fffffffe
    [ 1.411651] davinci_mdio.0: probed
    [ 1.415283] davinci_mdio davinci_mdio.0: phy[0]: device 0:00, driver SMSC LAN8710/LAN8720
    [ 1.424713] usbcore: registered new interface driver zd1201
    [ 1.431091] usbcore: registered new interface driver cdc_ether
    [ 1.437683] usbcore: registered new interface driver cdc_eem
    [ 1.444000] usbcore: registered new interface driver dm9601
    [ 1.450042] cdc_ncm: 04-Aug-2011
    [ 1.453826] usbcore: registered new interface driver cdc_ncm
    [ 1.459869] Initializing USB Mass Storage driver...
    [ 1.465423] usbcore: registered new interface driver usb-storage
    [ 1.471832] USB Mass Storage support registered.
    [ 1.478454] mousedev: PS/2 mouse device common for all mice
    [ 1.486572] omap_rtc am33xx-rtc: rtc core: registered am33xx-rtc as rtc0
    [ 1.493804] am33xx-rtc: already running
    [ 1.498352] i2c /dev entries driver
    [ 1.503509] Linux video capture interface: v2.00
    [ 1.509155] usbcore: registered new interface driver uvcvideo
    [ 1.515258] USB Video Class driver (1.1.1)
    [ 1.526336] OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
    [ 1.535461] cpuidle: using governor ladder
    [ 1.541015] cpuidle: using governor menu
    [ 1.550689] omap4_aes_mod_init: loading AM33X AES driver
    [ 1.556549] omap4-aes omap4-aes: AM33X AES hw accel rev: 3.02
    [ 1.563751] omap4_aes_probe: probe() done
    [ 1.568756] omap4_sham_mod_init: loading AM33X SHA/MD5 driver
    [ 1.575134] omap4-sham omap4-sham: AM33X SHA/MD5 hw accel rev: 4.03
    [ 1.597930] omap4_sham_probe: probe() done
    [ 1.607879] usbcore: registered new interface driver usbhid
    [ 1.613800] usbhid: USB HID core driver
    [ 1.619812] usbcore: registered new interface driver snd-usb-audio
    [ 1.628112] +++++++++++++++zhouqun aic3x_i2c_probe
    [ 1.633178] control_type = SND_SOC_I2C
    [ 1.637268] ++++++snd_soc_register_codec:0
    [ 1.641693] +++++++++++++++zhouqun aic3x_i2c_probe
    [ 1.646759] control_type = SND_SOC_I2C
    [ 1.650787] ++++++snd_soc_register_codec:0
    [ 1.656616] ++++zhouqun am335x_evm?
    [ 1.661010] ++++++++++soc_bind_dai_link
    [ 1.665069] ++++++++zhouqun:binding TLV320AIC3X at idx 0
    [ 1.670959] +++++++++++++++ aic3x_probe
    [ 1.676696] ++++++++++++++aic3x_probe FINISHED
    [ 1.684204] +++++zhouqun:evm_aic3x_init
    [ 1.689849] asoc: tlv320aic3x-hifi <-> davinci-mcasp.0 mapping ok
    [ 1.702514] ALSA device list:
    [ 1.705688] #0: AM335X EVM
    [ 1.708801] oprofile: hardware counters not available
    [ 1.714141] oprofile: using timer interrupt.
    [ 1.718750] nf_conntrack version 0.5.0 (8019 buckets, 32076 max)
    [ 1.726104] ip_tables: (C) 2000-2006 Netfilter Core Team
    [ 1.731964] TCP cubic registered
    [ 1.735382] NET: Registered protocol family 17
    [ 1.740112] can: controller area network core (rev 20090105 abi 8)
    [ 1.746795] NET: Registered protocol family 29
    [ 1.751495] can: raw protocol (rev 20090105)
    [ 1.755981] can: broadcast manager protocol (rev 20090105 t)
    [ 1.762054] Registering the dns_resolver key type
    [ 1.767120] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    [ 1.775238] ThumbEE CPU extension supported.
    [ 1.779846] mux: Failed to setup hwmod io irq -22
    [ 1.786132] Power Management for AM33XX family
    [ 1.791229] Trying to load am335x-pm-firmware.bin (60 secs timeout)
    [ 1.798187] Copied the M3 firmware to UMEM
    [ 1.802673] Cortex M3 Firmware Version = 0x181
    [ 1.809051] create_regulator: DCDC2: Failed to create debugfs directory
    [ 1.817382] smartreflex smartreflex: am33xx_sr_probe: Driver initialized
    [ 1.834472] clock: disabling unused clocks to save power
    [ 1.871032] Detected MACID=d0:5f:b8:fc:3:d0
    [ 1.877777] cpsw: Detected MACID = d0:5f:b8:fc:03:d2
    [ 1.885284] omap_rtc am33xx-rtc: setting system clock to 2013-06-26 00:43:20 UTC (1372207400)
    [ 1.895416] Waiting for root device /dev/mmcblk0p2...
    [ 1.906463] mmc1: new high speed MMC card at address 0001
    [ 1.913421] mmcblk0: mmc1:0001 S10004 3.56 GiB
    [ 1.918518] mmcblk0boot0: mmc1:0001 S10004 partition 1 4.00 MiB
    [ 1.925018] mmcblk0boot1: mmc1:0001 S10004 partition 2 4.00 MiB
    [ 1.933624] mmcblk0: p1 p2
    [ 1.941986] mmcblk0boot1: unknown partition table
    [ 1.951263] mmcblk0boot0: unknown partition table
    [ 2.011230] EXT3-fs (mmcblk0p2): recovery required on readonly filesystem
    [ 2.018493] EXT3-fs (mmcblk0p2): write access will be enabled during recovery
    [ 2.078857] regulator_check_voltage: DCDC2: unsupportable voltage range: 900000-891250uV
    [ 2.087554] smartreflex smartreflex: set_voltage: regulator_set_voltage failed! (err -22)
    [ 2.878265] kjournald starting. Commit interval 5 seconds
    [ 2.884246] EXT3-fs (mmcblk0p2): recovery complete
    [ 2.892944] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode
    [ 2.900390] VFS: Mounted root (ext3 filesystem) readonly on device 179:2.
    [ 2.908630] Freeing init memory: 236K
    INIT: version 2.88 booting
    Error opening /dev/fb0: No such device
    [ 3.353393] smartreflex smartreflex: get_errvolt: SR 1: Same AvgError for 2 different voltages
    Starting udev
    [ 4.608886] regulator_check_voltage: DCDC2: unsupportable voltage range: 900000-891250uV
    [ 4.617492] smartreflex smartreflex: set_voltage: regulator_set_voltage failed! (err -22)
    [ 6.248748] smartreflex smartreflex: get_errvolt: SR 1: Same AvgError for 2 different voltages
    [ 7.738830] regulator_check_voltage: DCDC2: unsupportable voltage range: 900000-891250uV
    [ 7.747436] smartreflex smartreflex: set_voltage: regulator_set_voltage failed! (err -22)
    Starting Bootlog daemon: [ 9.148895] smartreflex smartreflex: get_errvolt: SR 1: Same AvgError for 2 different voltages
    bootlogd: cannot allocate pseudo tty: No such file or directory
    bootlogd.
    [ 9.241394] EXT3-fs (mmcblk0p2): using internal journal
    ALSA: Restoring mixer settings...
    No state is present for card EVM
    Found hardware: "AM335X_EVM" "" "" "" ""
    Hardware is initialized using a generic method
    No state is present for card EVM
    Configuring network interfaces... [ 10.408935] regulator_check_voltage: DCDC2: unsupportable voltage range: 900000-891250uV
    [ 10.417449] smartreflex smartreflex: set_voltage: regulator_set_voltage failed! (err -22)
    [ 10.473876] net eth0: CPSW phy found : id is : 0x7c0f1
    udhcpc (v1.20.2) started
    Sending discover...
    [ 11.698669] smartreflex smartreflex: get_errvolt: SR 1: Same AvgError for 2 different voltages
    [ 12.958679] regulator_check_voltage: DCDC2: unsupportable voltage range: 900000-891250uV
    [ 12.967285] smartreflex smartreflex: set_voltage: regulator_set_voltage failed! (err -22)
    Sending discover...
    Sending discover...
    No lease, failing
    done.
    INIT: Entering runlevel: 5
    Starting system message bus: dbus.
    Starting Dropbear SSH server: dropbear.
    Starting telnet daemon.
    Performing wifi calibration...
    rm: can't remove '/lib/firmware/ti-connectivity/wl1271-nvs.bin': No such file or directory
    Error: Module wl12xx_sdio is not currently loaded
    nl80211 not found.
    [ 20.416778] Disabling lock debugging due to kernel taint
    Starting network benchmark server: netserver.
    Starting syslogd/klogd: done
    Starting thttpd.
    Starting Lighttpd Web Server: lighttpd.
    2013-06-26 00:43:38: (log.c.166) server started
    /
    Starting Matrix GUI application.
    ERROR: could not insert 'g_mass_storage': No such device
    ***************************************************************
    ***************************************************************
    NOTICE: This file system contains the followin GPLv3 packages:
    binutils-symlinks
    binutils
    gdbserver

    If you do not wish to distribute GPLv3 components please remove
    the above packages prior to distribution. This can be done using
    the opkg remove command. i.e.:
    opkg remove <package>
    Where <package> is the name printed in the list above

    NOTE: If the package is a dependency of another package you
    will be notified of the dependent packages. You should
    use the --force-removal-of-dependent-packages option to
    also remove the dependent packages as well
    ***************************************************************
    ***************************************************************
    Stopping Bootlog daemon: bootlogd.

    _____ _____ _ _
    | _ |___ ___ ___ ___ | _ |___ ___ |_|___ ___| |_
    | | _| .'| . | . | | __| _| . | | | -_| _| _|
    |__|__|_| |__,|_ |___| |__| |_| |___|_| |___|___|_|
    |___| |___|

    Arago Project http://arago-project.org am335x-evm ttyO0

    Arago 2013.05 am335x-evm ttyO0

    am335x-evm login: root
    root@am335x-evm:~# cd /
    root@am335x-evm:/# aplay /test/
    aplay: playback:2483: read error
    root@am335x-evm:/# cd /test/
    root@am335x-evm:/test# aplay 123.wav
    Playing WAVE '123.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
    [ 555.468688] playback write error (DMA or IRQ trouble?)
    aplay: pcm_write:1710: write error: Input/output error
  • Hi Biser,
    I wonder that davinci-i2s.c is a must for this device ,now is not compiled by default.

    D:\TI\share\sdk\linux-3.2.0-psp04.06.00.11\sound\soc\davinci>dir


    D:\TI\share\sdk\linux-3.2.0-psp04.06.00.11\sound\soc\davinci 的目录

    2014-12-04 11:17 <DIR> .
    2014-12-04 11:17 <DIR> ..
    2014-12-04 10:00 288 .built-in.o.cmd
    2014-12-04 10:00 86,001 .davinci-evm.o.cmd
    2014-12-04 10:00 31,040 .davinci-mcasp.o.cmd
    2014-12-04 10:00 32,533 .davinci-pcm.o.cmd
    2014-12-04 10:00 237 .snd-soc-davinci-mcasp.o.cmd
    2014-12-04 10:00 223 .snd-soc-davinci.o.cmd
    2014-12-04 10:00 215 .snd-soc-evm.o.cmd
    2014-12-04 10:00 24,669 built-in.o
    2014-12-04 10:00 10,391 davinci-evm.c
    2014-12-04 10:00 5,960 davinci-evm.o
    2014-12-04 10:00 23,838 davinci-i2s.c
    2014-12-04 10:00 573 davinci-i2s.h
    2014-12-04 10:00 33,598 davinci-mcasp.c
    2014-12-04 10:00 1,879 davinci-mcasp.h
    2014-12-04 10:00 10,400 davinci-mcasp.o
    2014-12-04 10:00 26,354 davinci-pcm.c
    2014-12-04 10:00 929 davinci-pcm.h
    2014-12-04 10:00 11,240 davinci-pcm.o
    2014-12-04 10:00 4,352 davinci-sffsdr.c
    2014-12-04 10:00 7,679 davinci-vcif.c
    2014-12-04 10:00 2,818 Kconfig
    2014-12-04 10:00 888 Makefile
    2014-12-04 10:00 10,413 snd-soc-davinci-mcasp.o
    2014-12-04 10:00 11,246 snd-soc-davinci.o
    2014-12-04 10:00 5,975 snd-soc-evm.o
    25 个文件 343,739 字节
    2 个目录 659,079,168 可用字节

    D:\TI\share\sdk\linux-3.2.0-psp04.06.00.11\sound\soc\davinci>
  • Hi Biser
    in TRM
    22.3.5.1 Transmit Clock
    The transmit bit clock, ACLKX, (Figure 22-17) may be either externally sourced from the ACLKX pin or
    internally generated, as selected by the CLKXM bit. If internally generated (CLKXM = 1), the clock is
    divided down by a programmable bit clock divider (CLKXDIV) from the transmit high-frequency master
    clock (AHCLKX).

    where is the code I could check ? and external AHCLKX is critical for this problem, I think, right?
  • Hi Amon,

    Sorry for the delayed response, needed some time to catch up with the updates on this thread since Friday.

    Here is what I can answer of your questions:

    "we now consider to use CLKOUT1(A15) or CLKOUT2(D14) as the MCLK of TLV320AIC3014,

    we test CLKOUT2 is 32.768k ,but TLV320AIC3014 need 500KHz to 50Mhz,

    we wonder how to config CLKOUT1 CLKOUT2 to be 12MHz or 24MHz to satisfy codec?"

    I think it would be best if you stick with the reference design -> elinux.org/.../Audio_Cape_B1_Schematic.pdf  & https://github.com/CircuitCo/BeagleBone-Black/blob/master/BBB_SCH.pdf?raw=true 

    In beaglebone audio cape

    MCLK is connected to the expansion header on GPIO3_21 => which is ball A14 of AM335x device => MCASP0_AHCLKX/EQEP0_STROBE/MCASP0_AXR3/MCASP1_AXR1/EMU4/PR1_PRU0_PRU_R30_7/PR1_PRU0_PRU_R31_7/GPIO3_21  

    WCLK is connected to SPI1_D0 => ball B13 on AM335x device => 

    MCASP0_FSX/EHRPWM0B//SPI1_D0/MMC1_SDCD/PR1_PRU0_PRU_R30_1/PR1_PRU0_PRU_R31_1/GPIO3_15 

    BCLK is connected to SP1_SCLK => ball A13 on AM335x device => 
    MCASP0_ACLKX/EHRPWM0A//SPI1_SCLK/MMC0_SDCD/PR1_PRU0_PRU_R30_0/PR1_PRU0_PRU_R31_0/GPIO3_14 

    Please ensure the correct setting of those clocks. Refer to Sitara DAC example & backport to your kernel version:  http://processors.wiki.ti.com/index.php/Sitara_Linux_Audio_DAC_Example 

    "now  we config as follows, is there a function like setup_pin_mux for us to print the pinmux value?

    /* Setup McASP 0 wubin */
    static void mcasp0_init(int evm_id, int profile)
    {
    /* Configure McASP */
    setup_pin_mux(mcasp0_pin_mux);
    switch (evm_id) {
    case EVM_SK:
    am335x_register_mcasp(&am335x_evm_sk_snd_data0, 0);
    break;
    default:
    am335x_register_mcasp(&am335x_evm_snd_data0, 0);
    }"

    Yes you can use the setup_pinmux() function on mcasp0. But first you need to create static struct pinmux_config mcasp0_pin_mux[] with all needed pins (depending on your use case: clock, data, irq, etc...) defined. 

    Regarding the errors you get: 
     

    Amon Wu said:
    root@am335x-evm:/test# aplay 123.wav
    Playing WAVE '123.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
    [ 555.468688] playback write error (DMA or IRQ trouble?)

    Can you check the following fixes: https://lkml.org/lkml/2013/3/1/204 

  • HI Yorland,
    I check the following fixes: lkml.org/.../204 , it is for sdk7.0, but there is a eeprom board version check problem. so I can not test it.
    when I merge to SDK6.0, there is some difference.
    not exist in SDK 6 for the follows codes.
    > @@ -1015,8 +1057,16 @@ static struct snd_platform_data *davinci_mcasp_set_pdata_from_of(
    > pdata->op_mode = val;
    >
    > ret = of_property_read_u32(np, "tdm-slots", &val);
    > - if (ret >= 0)
    > + if (ret >= 0) {
    > + if (val < 2 || val > 32) {
    > + dev_err(&pdev->dev,
    > + "tdm-slots must be in rage [2-32]\n");
    > + ret = -EINVAL;
    > + goto nodata;
    > + }
    > +
    > pdata->tdm_slots = val;
    > + }
    >
    > ret = of_property_read_u32(np, "num-serializer", &val);
    > if (ret >= 0)
    Is there patch for SDK6.0? or how can I merge for the code above listed.

    Amon
  • for the fixes : lkml.org/.../204 merged into SDK6, we tested, but the result is the same.
  • Hi Yordan,(I am sorry for the wrong name in the last post)
    I wonder what is the function of the patch.? I think it is better that I understand it before merging.
  • Hi Amon,

    The description is given at the beginning of the page:
    > Davinci McASP has support for I2S multichannel playback.
    > For I2S playback/receive, each serializer is capable to play 2 channels
    > (L/R) audio data.Serializer function (Playback-receive-none) is configured
    > in DT, depending on hardware specification. It is possible to play less
    > channels than configured in DT. For that purpose,only specific number of
    > active serializers are enabled. McASP FIFO need to have DMA transfer Bcnt
    > set to number of enabled serializers, otherwise no data are transfered to
    > McASP and Alsa generates "DMA/IRQ playback write error (DMA or IRQ trouble?)"
    > error. For TDM mode, McASP is capable to play or receive 32 channels for one
    > serializer. McAsp has support for max 16 serializer, therefore max channels
    > is 32 * 8

    It tends to solve a problem similar to yours: DMA/IRQ playback write error (DMA or IRQ trouble?). That was the reason I recommended to try it & see if it helps. The patch itself configures the driver to set the number of serializers & their direction at run-time.

    Best Regards,
    Yordan
  • OK, I see,maybe.
    I will test again.
    but one problem is the GPIO3_21/MCLK has no clock, and no print log in davinci-mcasp.c, we put printk in each function entrance.
    do you think it is occurred by the MCLK ?
  • Hi, 

    Amon Wu said:
    but one problem is the GPIO3_21/MCLK has no clock, and no print log in davinci-mcasp.c

     

    Having no clock on the AHCLKR pin (MCLK) could be the root cause of your issue. I think you should concentrate on configuring the clocks first. 

    I see you've initialized the MCASP0, in board-am335xevm.c, as done with mcasp1? Like: 

      static void mcasp0_init(int evm_id, int profile) 
      {

             setup_pin_mux(mcasp0_pin_mux); 

             switch (evm_id) { 
                 case EVM_SK: 

                                   am335x_register_mcasp(&am335x_evm_sk_snd_data1, 0); 

                                   break; 

                 default: 
                                    am335x_register_mcasp(&am335x_evm_sk_snd_data1, 0); 

              return;

        }

    After booting your board, can you verify the pinmux settings for AHCLKX (ball A14), FSX (ball  B13), AXR &  MCASP clock dividers? You can use the devmem2 command in user space. 

    Best Regards, 

    Yordan

  • Hi Yordan,
    we use devmem2 command to debug , but we set to the correct value as follows, but still no clock on pin
    MCLK is connected to the expansion header on GPIO3_21 => which is ball A14 of AM335x device => MCASP0_AHCLKX/EQEP0_STROBE/MCASP0_AXR3/MCASP1_AXR1/EMU4/PR1_PRU0_PRU_R30_7/PR1_PRU0_PRU_R31_7/GPIO3_21

    others i2s pins seem ok. the log as follows.
    any more advice?

    Arago Project http://arago-project.org am335x-evm ttyO0

    Arago 2013.05 am335x-evm ttyO0

    am335x-evm login: root
    root@am335x-evm:~# cd /
    root@am335x-evm:/# devmem2

    Usage: devmem2 { address } [ type [ data ] ]
    address : memory address to act upon
    type : access operation type : [b]yte, [h]alfword, [w]ord
    data : data to be written

    root@am335x-evm:/# devmem2 0x18
    /dev/mem opened.[ 63.548461] Unhandled fault: external abort on non-linefetch8

    Memory mapped at address 0x400b8000.
    Bus error
    root@am335x-evm:/# devmem2 0x400b8000
    /dev/mem opened.[ 84.988555] Unhandled fault: external abort on non-linefetch0

    Memory mapped at address 0x401a8000.
    Bus error
    root@am335x-evm:/# <7>[ 123.810424] omap_i2c omap_i2c.1: IRQ (ISR = 0x0004)

    root@am335x-evm:/#
    root@am335x-evm:/#
    root@am335x-evm:/# devmem2 0x401a8000]
    /dev/mem opened.[ 230.218597] Unhandled fault: external abort on non-linefetch0

    Memory mapped at address 0x40170000.
    Bus error
    root@am335x-evm:/#
    root@am335x-evm:/# devmem2 0x480380b4 r
    /dev/mem opened.
    Memory mapped at address 0x400df000.
    Illegal data type 'r'.
    root@am335x-evm:/# devmem2 0x480380b4
    /dev/mem opened.
    Memory mapped at address 0x401a2000.
    Read at address 0x480380B4 (0x401a20b4): 0x00008000
    root@am335x-evm:/# devmem2 0x480380b4 w 0x00008003
    /dev/mem opened.
    Memory mapped at address 0x400a7000.
    Read at address 0x480380B4 (0x400a70b4): 0x00008000
    Write at address 0x480380B4 (0x400a70b4): 0x00008003, readback 0x00008003
    root@am335x-evm:/# devmem2 0x480380b4 w 0x0000b003
    /dev/mem opened.
    Memory mapped at address 0x400cb000.
    Read at address 0x480380B4 (0x400cb0b4): 0x00188003
    Write at address 0x480380B4 (0x400cb0b4): 0x0000B003, readback 0x0000B003
    root@am335x-evm:/# devmem2 0x480380b4 w 0x0000b030
    /dev/mem opened.
    Memory mapped at address 0x40184000.
    Read at address 0x480380B4 (0x401840b4): 0x00188003
    Write at address 0x480380B4 (0x401840b4): 0x0000B030, readback 0x0000B030
    root@am335x-evm:/# devmem2 0x44e109ac
    /dev/mem opened.
    Memory mapped at address 0x40145000.
    Read at address 0x44E109AC (0x401459ac): 0x00000027
    root@am335x-evm:/# devmem2 0x44e10990
    /dev/mem opened.
    Memory mapped at address 0x40121000.
    Read at address 0x44E10990 (0x40121990): 0x00000020
    root@am335x-evm:/# devmem2 0x44e10994
    /dev/mem opened.
    Memory mapped at address 0x400b9000.
    Read at address 0x44E10994 (0x400b9994): 0x00000020
    root@am335x-evm:/# devmem2 0x44e10998
    /dev/mem opened.
    Memory mapped at address 0x400b8000.
    Read at address 0x44E10998 (0x400b8998): 0x00000020
    root@am335x-evm:/# devmem2 0x44e109a8
    /dev/mem opened.
    Memory mapped at address 0x40151000.
    Read at address 0x44E109A8 (0x401519a8): 0x00000020
    root@am335x-evm:/# devmem2 0x44e109ac w 0x00000020
    /dev/mem opened.
    Memory mapped at address 0x40173000.
    Read at address 0x44E109AC (0x401739ac): 0x00000027
    Write at address 0x44E109AC (0x401739ac): 0x00000020, readback 0x00000020
    root@am335x-evm:/# devmem2 0x480380b4 w 0x00008030
    /dev/mem opened.
    Memory mapped at address 0x40077000.
    Read at address 0x480380B4 (0x400770b4): 0x00188030
    Write at address 0x480380B4 (0x400770b4): 0x00008030, readback 0x00008030
    root@am335x-evm:/# devmem2 0x480380b4 w 0x0000b030
    /dev/mem opened.
    Memory mapped at address 0x40134000.
    Read at address 0x480380B4 (0x401340b4): 0x00188030
    Write at address 0x480380B4 (0x401340b4): 0x0000B030, readback 0x0000B030
    root@am335x-evm:/# devmem2 0x480380b4 w 0x0000b003
    /dev/mem opened.
    Memory mapped at address 0x4009f000.
    Read at address 0x480380B4 (0x4009f0b4): 0x00188030
    Write at address 0x480380B4 (0x4009f0b4): 0x0000B003, readback 0x0000B003
    root@am335x-evm:/# devmem2 0x480380b4 w 0x00008003
    /dev/mem opened.
    Memory mapped at address 0x4008c000.
    Read at address 0x480380B4 (0x4008c0b4): 0x00188003
    Write at address 0x480380B4 (0x4008c0b4): 0x00008003, readback 0x00008003
    root@am335x-evm:/#
  • It seems pinmux setting failed. or another pinmux setting somewhere.
    root@am335x-evm:~# devmem2 0x44e109ac w 0x00000000
    /dev/mem opened.
    Memory mapped at address 0x400a3000.
    Read at address 0x44E109AC (0x400a39ac): 0x00000027
    Write at address 0x44E109AC (0x400a39ac): 0x00000000, readback 0x00000000
    root@am335x-evm:~# devmem2 0x44e109ac
    /dev/mem opened.
    Memory mapped at address 0x4010d000.
    Read at address 0x44E109AC (0x4010d9ac): 0x00000027
    root@am335x-evm:~# devmem2 0x44e109ac w 0x00000020
    /dev/mem opened.
    Memory mapped at address 0x40034000.
    Read at address 0x44E109AC (0x400349ac): 0x00000027
    Write at address 0x44E109AC (0x400349ac): 0x00000020, readback 0x00000020
    root@am335x-evm:~# devmem2 0x44e109ac
    /dev/mem opened.
    Memory mapped at address 0x40102000.
    Read at address 0x44E109AC (0x401029ac): 0x00000027
  • Hi,

    Have you cleaned up your board file?

    I can see that in board-am335xevm.c (SDK6.0) mcasp0 pins are used by other modules.

    For example MCASP0_AHCLKX is muxed as gpio3_21 & is used by the WIFI module:

    static struct pinmux_config wl12xx_pin_mux[] = {

    {"gpmc_a0.gpio1_16", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},

    {"mcasp0_ahclkr.gpio3_17", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},

    {"mcasp0_ahclkx.gpio3_21", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT_PULLUP},

    {NULL, 0},

    };

    static struct pinmux_config wl12xx_pin_mux_sk[] = {

    {"gpmc_wpn.gpio0_31", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},

    {"gpmc_csn0.gpio1_29", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT_PULLUP},

    {"mcasp0_ahclkx.gpio3_21", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},

    {NULL, 0},

    };

    MCASP0_AXR0 is muxed as SPI1_D1:

    static struct pinmux_config spi1_pin_mux[] = {

    {"mcasp0_aclkx.spi1_sclk", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL

    | AM33XX_INPUT_EN},

    {"mcasp0_fsx.spi1_d0", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL

    | AM33XX_PULL_UP | AM33XX_INPUT_EN},

    {"mcasp0_axr0.spi1_d1", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL

    | AM33XX_INPUT_EN},

    {"mcasp0_ahclkr.spi1_cs0", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL

    | AM33XX_PULL_UP | AM33XX_INPUT_EN},

    {NULL, 0},

    };

    and so on. I think that you should clean those or mux the MCASP0 pins (AHCLKX, AHCLKR, FSX, AXR, etc..) on other device balls if your HW design allows that. 

    Best Regards, 
    Yordan

  • the  new log

    Starting kernel ...                                                             
                                                                                    
    Uncompressing Linux... done, booting the kernel.                               
    [    0.000000] Linux version 3.2.0 (zhouqun@zhouqun) (gcc version 4.7.3 20130225
    [    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d 
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instructie
    [    0.000000] Machine: am335xevm                                              
    [    0.000000] Memory policy: ECC disabled, Data cache writeback               
    [    0.000000] AM335X ES2.1 (sgx neon )                                        
    [    0.000000] ------------[ cut here ]------------                            
    [    0.000000] WARNING: at arch/arm/mach-omap2/clkt_clksel.c:194 omap2_clksel_r)
    [    0.000000] clock: Could not find fieldval 0 for clock dpll_core_m6_ck parenk
    [    0.000000] Modules linked in:                                              
    [    0.000000] Backtrace:                                                      
    [    0.000000] [<c0017dbc>] (dump_backtrace+0x0/0x10c) from [<c0400ed4>] (dump_)
    [    0.000000]  r6:c0030b28 r5:00000009 r4:c05bbe78 r3:c05dca8c                
    [    0.000000] [<c0400ebc>] (dump_stack+0x0/0x1c) from [<c003e4a4>] (warn_slowp)
    [    0.000000] [<c003e450>] (warn_slowpath_common+0x0/0x6c) from [<c003e560>] ()
    [    0.000000]  r8:80000200 r7:c0636e64 r6:00000000 r5:c05cec38 r4:00000000    
    [    0.000000] r3:00000009                                                     
    [    0.000000] [<c003e528>] (warn_slowpath_fmt+0x0/0x40) from [<c0030b28>] (oma)
    [    0.000000]  r3:00000000 r2:c04ec8cc                                        
    [    0.000000] [<c0030a60>] (omap2_clksel_recalc+0x0/0x134) from [<c0034a34>] ()
    [    0.000000]  r6:c0636e9c r5:c05ceb38 r4:c05cec38                            
    [    0.000000] [<c0034a00>] (propagate_rate+0x0/0x54) from [<c0034a40>] (propag)
    [    0.000000]  r5:c05ceadc r4:c05ceb24                                        
    [    0.000000] [<c0034a00>] (propagate_rate+0x0/0x54) from [<c0034a40>] (propag)
    [    0.000000]  r5:c05cea24 r4:c05ceac8                                        
    [    0.000000] [<c0034a00>] (propagate_rate+0x0/0x54) from [<c0034a40>] (propag)
    [    0.000000]  r5:c05ce910 r4:c05cea10                                        
    [    0.000000] [<c0034a00>] (propagate_rate+0x0/0x54) from [<c0034ba4>] (recalc)
    [    0.000000]  r5:c05dc1e4 r4:c05ce8fc                                        
    [    0.000000] [<c0034b64>] (recalculate_root_clocks+0x0/0x58) from [<c058cbd8>)
    [    0.000000]  r5:c05ce78c r4:c05ce78c                                        
    [    0.000000] [<c058cb54>] (am33xx_clk_init+0x0/0xa0) from [<c058c920>] (omap3)
    [    0.000000]  r5:c0a51040 r4:00003517                                        
    [    0.000000] [<c058c840>] (omap3xxx_clk_init+0x0/0x314) from [<c05865b8>] (am)
    [    0.000000]  r7:c0636e64 r6:c0636e9c r5:c0a51040 r4:c05ac1a8                
    [    0.000000] [<c058657c>] (am33xx_init_early+0x0/0x40) from [<c0582de0>] (set)
    [    0.000000] [<c05826cc>] (setup_arch+0x0/0x804) from [<c057f5a4>] (start_ker)
    [    0.000000] [<c057f52c>] (start_kernel+0x0/0x2dc) from [<80008040>] (0x80008)
    [    0.000000]  r6:c05ad618 r5:c05bc084 r4:10c53c7d                            
    [    0.000000] ---[ end trace 1b75b31a2719ed1c ]---                            
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pa8
    [    0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk0p2 e
    [    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)             
    [    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) 
    [    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)  
    [    0.000000] Memory: 512MB = 512MB total                                     
    [    0.000000] Memory: 513288k/513288k available, 11000k reserved, 0K highmem  
    [    0.000000] Virtual kernel memory layout:                                   
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)               
    [    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)               
    [    0.000000]     vmalloc : 0xe0800000 - 0xff000000   ( 488 MB)               
    [    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)               
    [    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)               
    [    0.000000]       .text : 0xc0008000 - 0xc057f000   (5596 kB)               
    [    0.000000]       .init : 0xc057f000 - 0xc05ba000   ( 236 kB)               
    [    0.000000]       .data : 0xc05ba000 - 0xc06213f0   ( 413 kB)               
    [    0.000000]        .bss : 0xc0621414 - 0xc064ffe4   ( 187 kB)               
    [    0.000000] NR_IRQS:396                                                     
    [    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrus
    [    0.000000] Total of 128 interrupts on 1 active controller                  
    [    0.000000] OMAP clockevent source: GPTIMER2 at 24000000 Hz                 
    [    0.000000] OMAP clocksource: GPTIMER1 at 32768 Hz                          
    [    0.000000] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 1s
    [    0.000000] Console: colour dummy device 80x30                              
    [    0.000305] Calibrating delay loop... 298.59 BogoMIPS (lpj=1492992)         
    [    0.067657] pid_max: default: 32768 minimum: 301                            
    [    0.067932] Security Framework initialized                                  
    [    0.068115] Mount-cache hash table entries: 512                             
    [    0.068817] CPU: Testing write buffer coherency: ok                         
    [    0.096496] omap_hwmod: pruss: failed to hardreset                          
    [    0.098693] print_constraints: dummy:                                       
    [    0.099456] NET: Registered protocol family 16                              
    [    0.103942] OMAP GPIO hardware version 0.1                                  
    [    0.109863] omap_mux_init: Add partition: #1: core, flags: 0                
    [    0.114044]  omap_i2c.1: alias fck already exists                           
    [    0.115905]  omap2_mcspi.1: alias fck already exists                        
    [    0.116394]  omap2_mcspi.2: alias fck already exists                        
    [    0.118530]  edma.0: alias fck already exists                               
    [    0.118591]  edma.0: alias fck already exists                               
    [    0.118621]  edma.0: alias fck already exists                               
    [    0.181579] bio: create slab <bio-0> at 0                                   
    [    0.186340] SCSI subsystem initialized                                      
    [    0.189849] usbcore: registered new interface driver usbfs                  
    [    0.190551] usbcore: registered new interface driver hub                    
    [    0.190979] usbcore: registered new device driver usb                       
    [    0.192779] omap_i2c omap_i2c.1: bus 1 rev2.4.0 at 100 kHz                  
    [    0.195861] tps65910 1-002d: could not be detected                          
    [    0.198883] Advanced Linux Sound Architecture Driver Version 1.0.24.        
    [    0.201232] Switching to clocksource gp timer                               
    [    0.237304] NET: Registered protocol family 2                               
    [    0.237670] IP route cache hash table entries: 4096 (order: 2, 16384 bytes) 
    [    0.238250] TCP established hash table entries: 16384 (order: 5, 131072 byte)
    [    0.238952] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)      
    [    0.239379] TCP: Hash tables configured (established 16384 bind 16384)      
    [    0.239410] TCP reno registered                                             
    [    0.239440] UDP hash table entries: 256 (order: 0, 4096 bytes)              
    [    0.239471] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)         
    [    0.239929] NET: Registered protocol family 1                               
    [    0.240447] RPC: Registered named UNIX socket transport module.             
    [    0.240478] RPC: Registered udp transport module.                           
    [    0.240478] RPC: Registered tcp transport module.                           
    [    0.240509] RPC: Registered tcp NFSv4.1 backchannel transport module.       
    [    0.240997] NetWinder Floating Point Emulator V0.97 (double precision)      
    [    0.272277] VFS: Disk quotas dquot_6.5.2                                    
    [    0.272399] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)      
    [    0.273468] msgmni has been set to 1002                                     
    [    0.279876] alg: No test for stdrng (krng)                                  
    [    0.281158] io scheduler noop registered                                    
    [    0.281188] io scheduler deadline registered                                
    [    0.281433] io scheduler cfq registered (default)                           
    [    0.283691] Could not set LED4 to fully on                                  
    [    0.286987] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
    [    0.966674] console [ttyO0] enabled                                         
    [    0.971466] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
    [    0.979919] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
    [    0.988372] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
    [    0.996704] omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
    [    1.005065] omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
    [    1.014434] omap4_rng omap4_rng: OMAP4 Random Number Generator ver. 2.00    
    [    1.042816] brd: module loaded                                              
    [    1.057250] loop: module loaded                                             
    [    1.060943] i2c-core: driver [tsl2550] using legacy suspend method          
    [    1.067596] i2c-core: driver [tsl2550] using legacy resume method           
    [    1.074218] at24 1-0051: 32768 byte 24c256 EEPROM, writable, 64 bytes/write 
    [    1.121856] No daughter card found                                          
    [    1.125549] at24 1-0050: 32768 byte 24c256 EEPROM, writable, 64 bytes/write 
    [    1.135101] The board is a AM335x Beaglebone Black.                         
    [    1.141326] Cannot clk_get ck_32                                            
    [    1.144989] ++++++++pin_mux:xdma_event_intr1.clkout2                        
    [    1.152160] tps65217 1-0024: TPS65217 ID 0xe version 1.2                    
    [    1.160919] print_constraints: DCDC1: 900 <--> 1800 mV at 1500 mV           
    [    1.170501] print_constraints: DCDC2: 900 <--> 3300 mV at 1100 mV           
    [    1.180053] print_constraints: DCDC3: 900 <--> 1500 mV at 1100 mV           
    [    1.189544] print_constraints: LDO1: 1000 <--> 3300 mV at 1800 mV           
    [    1.198913] print_constraints: LDO2: 900 <--> 3300 mV at 3300 mV            
    [    1.208190] print_constraints: LDO3: 1800 <--> 3300 mV at 1800 mV           
    [    1.217620] print_constraints: LDO4: 1800 <--> 3300 mV at 3300 mV           
    [    1.224884] ++++++++pin_mux:mii1_rxerr.mii1_rxerr++++++++pin_mux:mii1_txen.m6
    [    1.304718]  davinci-mcasp.0: alias fck already exists                      
    [    1.310882] ++++++++pin_mux:gpmc_ad3.mmc1_dat3++++++++pin_mux:gpmc_ad2.mmc1_8
    [    1.369720]  omap_hsmmc.0: alias fck already exists                         
    [    1.375732]  omap_hsmmc.1: alias fck already exists                         
    [    1.381408] ++++zhouqun i2c2_init                                           
    [    1.385040] ++++++++pin_mux:uart1_ctsn.i2c2_sda++++++++pin_mux:uart1_rtsn.i2l
    [    1.393005]  omap_i2c.3: alias fck already exists                           
    [    1.398864] omap_i2c omap_i2c.3: bus 3 rev2.4.0 at 100 kHz                  
    [    1.409057] registered am33xx_sr device                                     
    [    1.417083] mtdoops: mtd device (mtddev=name/number) must be supplied       
    [    1.424865] omap2-nand driver initializing                                  
    [    1.429595] OneNAND driver initializing                                     
    [    1.436492] CAN device driver interface                                     
    [    1.440582] CAN bus driver for Bosch D_CAN controller 1.0                   
    [    1.491943] davinci_mdio davinci_mdio.0: davinci mdio revision 1.6          
    [    1.498504] davinci_mdio davinci_mdio.0: detected phy mask fffffffe         
    [    1.506347] davinci_mdio.0: probed                                          
    [    1.509979] davinci_mdio davinci_mdio.0: phy[0]: device 0:00, driver SMSC LA0
    [    1.519409] usbcore: registered new interface driver zd1201                 
    [    1.525756] usbcore: registered new interface driver cdc_ether              
    [    1.532318] usbcore: registered new interface driver cdc_eem                
    [    1.538665] usbcore: registered new interface driver dm9601                 
    [    1.544677] cdc_ncm: 04-Aug-2011                                            
    [    1.548461] usbcore: registered new interface driver cdc_ncm                
    [    1.554504] Initializing USB Mass Storage driver...                         
    [    1.560058] usbcore: registered new interface driver usb-storage            
    [    1.566467] USB Mass Storage support registered.                            
    [    1.573059] mousedev: PS/2 mouse device common for all mice                 
    [    1.581176] omap_rtc am33xx-rtc: rtc core: registered am33xx-rtc as rtc0    
    [    1.588867] i2c /dev entries driver                                         
    [    1.593994] Linux video capture interface: v2.00                            
    [    1.599578] usbcore: registered new interface driver uvcvideo               
    [    1.605743] USB Video Class driver (1.1.1)                                  
    [    1.614257] OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec            
    [    1.623199] cpuidle: using governor ladder                                  
    [    1.628692] cpuidle: using governor menu                                    
    [    1.638397] omap4_aes_mod_init: loading AM33X AES driver                    
    [    1.644317] omap4-aes omap4-aes: AM33X AES hw accel rev: 3.02               
    [    1.651458] omap4_aes_probe: probe() done                                   
    [    1.656494] omap4_sham_mod_init: loading AM33X SHA/MD5 driver               
    [    1.662872] omap4-sham omap4-sham: AM33X SHA/MD5 hw accel rev: 4.03         
    [    1.685760] omap4_sham_probe: probe() done                                  
    [    1.695709] usbcore: registered new interface driver usbhid                 
    [    1.701599] usbhid: USB HID core driver                                     
    [    1.707611] usbcore: registered new interface driver snd-usb-audio          
    [    1.715881] +++++++++++++++zhouqun aic3x_i2c_probe                          
    [    1.720977] control_type = SND_SOC_I2C                                      
    [    1.725067] ++++++snd_soc_register_codec:0                                  
    [    1.729461] +++++++++++++++zhouqun aic3x_i2c_probe                          
    [    1.734588] control_type = SND_SOC_I2C                                      
    [    1.738555] ++++++snd_soc_register_codec:0                                  
    [    1.743804] ++++++++++++++++zhouqun:davinci_mcasp_init                      
    [    1.743835]  ++++++++++++++==zhouqun : davinci_mcasp_probe                  
    [    1.755737] +++++++zhouqun :evm_init                                        
    [    1.759582] ++++zhouqun am335x_evm?                                         
    [    1.765045] ++++++++++soc_bind_dai_link                                     
    [    1.769134] ++++++++zhouqun:binding TLV320AIC3X at idx 0                    
    [    1.775024] +++++++++++++++ aic3x_probe                                     
    [    1.779144] tlv320aic3x-codec 1-001b: Failed to get supply 'IOVDD': -19     
    [    1.786224] tlv320aic3x-codec 1-001b: Failed to request supplies: -19       
    [    1.793090] tlv320aic3x-codec 1-001b: asoc: failed to probe CODEC tlv320aic39
    [    1.802398] asoc: failed to instantiate card AM335X EVM: -19                
    [    1.808471] ALSA device list:                                               
    [    1.811614]   No soundcards found.                                          
    [    1.815246] oprofile: hardware counters not available                       
    [    1.820617] oprofile: using timer interrupt.                                
    [    1.825195] nf_conntrack version 0.5.0 (8020 buckets, 32080 max)            
    [    1.832672] ip_tables: (C) 2000-2006 Netfilter Core Team                    
    [    1.838500] TCP cubic registered                                            
    [    1.842010] NET: Registered protocol family 17                              
    [    1.846740] can: controller area network core (rev 20090105 abi 8)          
    [    1.853485] NET: Registered protocol family 29                              
    [    1.858184] can: raw protocol (rev 20090105)                                
    [    1.862762] can: broadcast manager protocol (rev 20090105 t)                
    [    1.868835] Registering the dns_resolver key type                           
    [    1.873962] VFP support v0.3: implementor 41 architecture 3 part 30 variant 3
    [    1.882141] ThumbEE CPU extension supported.                                
    [    1.886779] mux: Failed to setup hwmod io irq -22                           
    [    1.893157] Power Management for AM33XX family                              
    [    1.898223] Trying to load am335x-pm-firmware.bin (60 secs timeout)         
    [    1.905181] Copied the M3 firmware to UMEM                                  
    [    1.909667] Cortex M3 Firmware Version = 0x181                              
    [    1.917877] create_regulator: DCDC2: Failed to create debugfs directory     
    [    1.925964] smartreflex smartreflex: am33xx_sr_probe: Driver initialized    
    [    1.941772] clock: disabling unused clocks to save power                    
    [    1.979644] Detected MACID=d0:5f:b8:fc:3:d0                                 
    [    1.986236] cpsw: Detected MACID = d0:5f:b8:fc:03:d2                        
    [    1.993865] omap_rtc am33xx-rtc: setting system clock to 2000-01-01 00:00:01)
    [    2.003845] Waiting for root device /dev/mmcblk0p2...                       
    [    2.016632] mmc1: new high speed MMC card at address 0001                   
    [    2.023590] mmcblk0: mmc1:0001 S10004 3.56 GiB                              
    [    2.028656] mmcblk0boot0: mmc1:0001 S10004 partition 1 4.00 MiB             
    [    2.035217] mmcblk0boot1: mmc1:0001 S10004 partition 2 4.00 MiB             
    [    2.043762]  mmcblk0: p1 p2                                                 
    [    2.052093]  mmcblk0boot1: unknown partition table                          
    [    2.061340]  mmcblk0boot0: unknown partition table                          
    [    2.117767] kjournald starting.  Commit interval 5 seconds                  
    [    2.123748] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode  
    [    2.131103] VFS: Mounted root (ext3 filesystem) readonly on device 179:2.   
    [    2.139312] Freeing init memory: 236K                                       
    INIT: version 2.88 booting                                                     
    Error opening /dev/fb0: No such device                                         
    Starting udev                                                                  
    Starting Bootlog daemon: bootlogd: cannot allocate pseudo tty: No such file or y
    bootlogd.                                                                      
    [    8.760864] EXT3-fs (mmcblk0p2): using internal journal                     
    ALSA: Restoring mixer settings...                                              
    /usr/sbin/alsactl: load_state:1686: No soundcards found...                     
    Configuring network interfaces... [    9.967315] net eth0: CPSW phy found : id 1
    udhcpc (v1.20.2) started                                                       
    Sending discover...                                                            
    Sending discover...                                                            
    Sending discover...                                                            
    No lease, failing                                                              
    done.                                                                          
    Tue Jun 25 23:09:00 UTC 2013                                                   
    INIT: Entering runlevel: 5                                                     
    Starting system message bus: dbus.                                             
    Starting Dropbear SSH server: Will output 1024 bit rsa secret key to '/etc/drop'
    Generating key, this may take a while...                                       
    Public key portion is:                                                         
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgnvwfm6Pt5Z7tSqyA+te2ZnaoprJvm08QkSdZsI/AIwm
    Fingerprint: md5 91:f4:93:58:99:68:bd:e6:42:df:d8:1b:26:b2:aa:96               
    dropbear.                                                                      
    Starting telnet daemon.                                                        
    Performing wifi calibration...                                                 
    Error: Module wl12xx_sdio is not currently loaded                              
    nl80211 not found.                                                             
    [   20.656250] Disabling lock debugging due to kernel taint                    
    Starting network benchmark server: netserver.                                  
    Starting syslogd/klogd: done                                                   
    Starting thttpd.                                                               
    Starting Lighttpd Web Server: lighttpd.                                        
    2013-06-25 23:09:01: (log.c.166) server started                                
    /                                                                              
    Starting Matrix GUI application.                                               
    ERROR: could not insert 'g_mass_storage': No such device                       
    ***************************************************************                
    ***************************************************************                
    NOTICE: This file system contains the followin GPLv3 packages:                 
            binutils-symlinks                                                      
            binutils                                                               
            gdbserver                                                              
                                                                                   
    If you do not wish to distribute GPLv3 components please remove                
    the above packages prior to distribution.  This can be done using              
    the opkg remove command.  i.e.:                                                
        opkg remove <package>                                                      
    Where <package> is the name printed in the list above                          
                                                                                   
    NOTE: If the package is a dependency of another package you                    
          will be notified of the dependent packages.  You should                  
          use the --force-removal-of-dependent-packages option to                  
          also remove the dependent packages as well                               
    ***************************************************************                
    ***************************************************************                
    Stopping Bootlog daemon: bootlogd.                                             
                                                                                   
     _____                    _____           _         _                          
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_                        
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|                       
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|                         
                  |___|                    |___|                                   
                                                                                   
    Arago Project http://arago-project.org am335x-evm ttyO0                        
                                                                                   
    Arago 2013.05 am335x-evm ttyO0                                                 
                                                                                   
    am335x-evm login:

  • actully  we do not use spi1 and not initialize it in the cfg list, as follows.

    maybe not 

    /* Beaglebone Black */
    static struct evm_dev_cfg beagleboneblack_dev_cfg[] = {
    {am335x_rtc_init, DEV_ON_BASEBOARD, PROFILE_NONE},
    {clkout2_enable, DEV_ON_BASEBOARD, PROFILE_NONE},
    {tps65217_init, DEV_ON_BASEBOARD, PROFILE_NONE},
    {mii1_init, DEV_ON_BASEBOARD, PROFILE_NONE},
    {usb0_init, DEV_ON_BASEBOARD, PROFILE_NONE},
    {mfd_tscadc_init, DEV_ON_BASEBOARD, PROFILE_ALL},
    {usb1_init, DEV_ON_BASEBOARD, PROFILE_NONE},
    {mmc1_emmc_init, DEV_ON_BASEBOARD, PROFILE_NONE},
    {mmc0_init, DEV_ON_BASEBOARD, PROFILE_NONE},
    // {i2c2_init, DEV_ON_BASEBOARD, PROFILE_NONE},
    // {sgx_init, DEV_ON_BASEBOARD, PROFILE_NONE},
    {enable_ecap1, DEV_ON_BASEBOARD, PROFILE_NONE},
    {NULL, 0, 0},
    };

  • it failed in this function,
    static int aic3x_probe(struct snd_soc_codec *codec)
    {
    struct aic3x_priv *aic3x = snd_soc_codec_get_drvdata(codec);
    int ret, i;

    INIT_LIST_HEAD(&aic3x->list);
    aic3x->codec = codec;
    codec->dapm.idle_bias_off = 1;

    ret = snd_soc_codec_set_cache_io(codec, 8, 8, aic3x->control_type);
    if (ret != 0) {
    dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret);
    return ret;
    }

    if (gpio_is_valid(aic3x->gpio_reset) &&
    !aic3x_is_shared_reset(aic3x)) {
    ret = gpio_request(aic3x->gpio_reset, "tlv320aic3x reset");
    if (ret != 0)
    goto err_gpio;
    gpio_direction_output(aic3x->gpio_reset, 0);
    }

    for (i = 0; i < ARRAY_SIZE(aic3x->supplies); i++)
    aic3x->supplies[i].supply = aic3x_supply_names[i];

    ret = regulator_bulk_get(codec->dev, ARRAY_SIZE(aic3x->supplies),
    aic3x->supplies);
    if (ret != 0) {
    dev_err(codec->dev, "Failed to request supplies: %d\n", ret);
    goto err_get;
    }
  • static void mcasp_start_tx(struct davinci_audio_dev *dev)

    {

             u8 offset = 0, i;

             u32 cnt;

     

             mcasp_set_ctl_reg(dev->base + DAVINCI_MCASP_GBLCTLX_REG, TXHCLKRST);

             mcasp_set_ctl_reg(dev->base + DAVINCI_MCASP_GBLCTLX_REG, TXCLKRST);

             mcasp_set_ctl_reg(dev->base + DAVINCI_MCASP_GBLCTLX_REG, TXSERCLR);

             mcasp_set_reg(dev->base + DAVINCI_MCASP_TXBUF_REG, 0);

     

             mcasp_set_ctl_reg(dev->base + DAVINCI_MCASP_GBLCTLX_REG, TXSMRST);

             mcasp_set_ctl_reg(dev->base + DAVINCI_MCASP_GBLCTLX_REG, TXFSRST);

             mcasp_set_reg(dev->base + DAVINCI_MCASP_TXBUF_REG, 0);

             for (i = 0; i < dev->num_serializer; i++) {

                       if (dev->serial_dir[i] == TX_MODE) {

                                offset = i;

                                break;

                       }

             }

     

             /* wait for TX ready */   here we found !(mcasp_get_reg(dev->base + DAVINCI_MCASP_XRSRCTL_REG(offset))  always 1,and cnt  count to 100000 then quit the loop, maybe not tx ready ?

             cnt = 0;

             while (!(mcasp_get_reg(dev->base + DAVINCI_MCASP_XRSRCTL_REG(offset)) &

                        TXSTATE) && (cnt < 100000))

                       cnt++;

     

             mcasp_set_reg(dev->base + DAVINCI_MCASP_TXBUF_REG, 0);

    }

  • hi Yordan,

    could you help to find some hints on this problem?

    The problem is no clock on GPIO3_21, A14,we mentioned in the last post.

    Could we verify whether 3104 is OK or not?

    Amon

  • Hi Yordan,

    we have the clock 24.576Mhz on GPIO3_21,we enable the GPIO1_27 to enable the external clock on the BBB borad.

    but still with the wrong log,

    [ 555.468688] playback write error (DMA or IRQ trouble?)

    please help us to fix the problem,thank you.

  • hi Yordan,
    static u8 am335x_iis_serializer_direction1[] = {
    INACTIVE_MODE, INACTIVE_MODE, TX_MODE, RX_MODE,
    INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
    INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
    INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
    };

    what is the meaning of the table?would you please explain to us?
  • Hi Biser,
    now the log failed as follows, how can we check the regulator?

    tlv320aic3x-codec 3-0018: Failed to get supply 'IOVDD': -19
    [ 1.587707] tlv320aic3x-codec 3-0018: Failed to request supplies: -19
    [ 1.594573] tlv320aic3x-codec 3-0018: asoc: failed to probe CODEC tlv320aic3x-codec.3-0018: -19
    [ 1.603912] asoc: failed to instantiate card AM335X EVM: -19
    [ 1.609985] ALSA device list:
    [ 1.613159] No soundcards found.
  • Hi Amon,

    Regarding your questions:
    "static u8 am335x_iis_serializer_direction1[] = {
    ........ ................... . . .. . .......................................
    what is the meaning of the table?would you please explain to us?"
    This shows the number of used serializers & their direction. In your case you use serializer 2 (AXR2) as transmit (TX_MODE) & serializer 3 (AXR3) as receive (RX_MODE).

    The errors you've posted in your reply above:
    "tlv320aic3x-codec 3-0018: Failed to get supply 'IOVDD': -19
    [ 1.587707] tlv320aic3x-codec 3-0018: Failed to request supplies: -19
    [ 1.594573] tlv320aic3x-codec 3-0018: asoc: failed to probe CODEC tlv320aic3x-codec.3-0018: -19
    [ 1.603912] asoc: failed to instantiate card AM335X EVM: -19
    [ 1.609985] ALSA device list:
    [ 1.613159] No soundcards found"

    Indicate that your machine layer (board file) is not configured correctly.
    Try setting the static struct snd_platform_data am335x_evm_snd_data1 & static struct evm_dev_cfg beagleboneblack_dev_cfg[] structures accordingly (to fit your case, using MCASP0; see the AM335x EVM & AM335x Starter Kit structures as a reference).

    Hope this helps.

    Best Regards,
    Yordan