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.

Linux: OMAPL138 LCDK ALSA support

Other Parts Discussed in Thread: OMAPL138, OMAP-L138, DA8XX, PMP

Tool/software: Linux

I am using OMAP L138 LCDK with MCSDK, Linux version 3.3.0. The LCDK has two audio inputs. They are Line In and Mic in. I can capture audio from Line In using "arecord -vv -fdat test.wav". That means the default input is Line In.

Now I want to capture audio from microphone. I am unable to set capture channel to microphone.

Kindly help me on this issue.

Thank you in advanced.

  • Hi,

    Please post the relevant parts of your board file. Also a bootlog (dmesg) would be good.

    Best Regards,
    Yordan
  • Hi,

    Thank you very much for your reply.

    I am unable to get you "relevant parts of your board file". However I am sending the dmesg. I am using omapl138 lcdk.

    root@omapl138-lcdk:~# dmesg
    Booting Linux on physical CPU 0
    Linux version 3.3.0 (root@jagadish-pc) (gcc version 4.5.3 20110311 (prerelease) (GCC) ) #1 PREEMPT Fri Jan 20 00:01:49 IST 2017
    CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
    CPU: VIVT data cache, VIVT instruction cache
    Machine: AM18x/OMAP-L138 lcdk board
    Memory policy: ECC disabled, Data cache writeback
    BUG: mapping for 0x80000000 at 0xfffe0000 out of vmalloc space
    DaVinci da850/omap-l138/am18x variant 0x1
    On node 0 totalpages: 24576
    free_area_init_node: node 0, pgdat c04d0cfc, node_mem_map c04ef000
    DMA zone: 256 pages used for memmap
    DMA zone: 0 pages reserved
    DMA zone: 24320 pages, LIFO batch:3
    pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
    pcpu-alloc: [0] 0
    Built 1 zonelists in Zone order, mobility grouping on. Total pages: 24320
    Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait ip=off mem=32M@0xc0000000 mem=64M@0xc4000000
    PID hash table entries: 512 (order: -1, 2048 bytes)
    Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
    Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
    Memory: 32MB 64MB = 96MB total
    Memory: 92340k/92340k available, 5964k reserved, 0K highmem
    Virtual kernel memory layout:
    vector : 0xffff0000 - 0xffff1000 ( 4 kB)
    fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
    vmalloc : 0xc8800000 - 0xff000000 ( 872 MB)
    lowmem : 0xc0000000 - 0xc8000000 ( 128 MB)
    modules : 0xbf000000 - 0xc0000000 ( 16 MB)
    .text : 0xc0008000 - 0xc0475000 (4532 kB)
    .init : 0xc0475000 - 0xc04a0000 ( 172 kB)
    .data : 0xc04a0000 - 0xc04d1780 ( 198 kB)
    .bss : 0xc04d17a4 - 0xc04eeaac ( 117 kB)
    SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    NR_IRQS:245
    Console: colour dummy device 80x30
    Calibrating delay loop... 227.32 BogoMIPS (lpj=1136640)
    pid_max: default: 32768 minimum: 301
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    Setting up static identity map for 0xc0362ed0 - 0xc0362f28
    gpiochip_add: registered GPIOs 0 to 31 on device: DaVinci
    gpiochip_add: registered GPIOs 32 to 63 on device: DaVinci
    gpiochip_add: registered GPIOs 64 to 95 on device: DaVinci
    gpiochip_add: registered GPIOs 96 to 127 on device: DaVinci
    gpiochip_add: registered GPIOs 128 to 143 on device: DaVinci
    DaVinci: 144 gpio irqs
    print_constraints: dummy:
    NET: Registered protocol family 16
    EMAC: MII PHY configured
    bio: create slab <bio-0> at 0
    SCSI subsystem initialized
    libata version 3.00 loaded.
    usbcore: registered new interface driver usbfs
    usbcore: registered new interface driver hub
    usbcore: registered new device driver usb
    i2c-gpio i2c-gpio.1: using pins 20 (SDA) and 21 (SCL)
    Advanced Linux Sound Architecture Driver Version 1.0.24.
    Switching to clocksource timer0_1
    musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
    musb-hdrc musb-hdrc: dma type: dma-cppi41
    MUSB255 controller's USBSS revision = 4ea11003
    Waiting for USB PHY clock good...
    musb-hdrc: ConfigData=0x06 (UTMI-8, dyn FIFOs, SoftConn)
    musb-hdrc: MHDRC RTL version 1.800
    musb-hdrc: setup fifo_mode 2
    musb-hdrc: 7/9 max ep, 2624/4096 memory
    musb-hdrc musb-hdrc: USB OTG mode controller at fee00000 using DMA, IRQ 58
    NET: Registered protocol family 2
    IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
    TCP established hash table entries: 4096 (order: 3, 32768 bytes)
    TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
    TCP: Hash tables configured (established 4096 bind 4096)
    TCP reno registered
    UDP hash table entries: 256 (order: 0, 4096 bytes)
    UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    NET: Registered protocol family 1
    RPC: Registered named UNIX socket transport module.
    RPC: Registered udp transport module.
    RPC: Registered tcp transport module.
    RPC: Registered tcp NFSv4.1 backchannel transport module.
    JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
    msgmni has been set to 180
    io scheduler noop registered (default)
    da8xx_lcdc da8xx_lcdc.0: GLCD: Found VGA_Monitor panel
    Console: switching to colour frame buffer device 80x30
    Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
    serial8250.0: ttyS0 at MMIO 0x1c42000 (irq = 25) is a AR7
    serial8250.0: ttyS1 at MMIO 0x1d0c000 (irq = 53) is a AR7
    serial8250.0: ttyS2 at MMIO 0x1d0d000 (irq = 61) is a AR7
    console [ttyS2] enabled
    brd: module loaded
    ahci ahci: forcing PORTS_IMPL to 0x1
    ahci ahci: AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl platform mode
    ahci ahci: flags: ncq sntf pm led clo only pmp pio slum part ccc
    scsi0 : ahci_platform
    ata1: SATA max UDMA/133 mmio [mem 0x01e18000-0x01e19fff] port 0x100 irq 67
    NAND device: Manufacturer ID: 0x2c, Chip ID: 0xcc (Micron NAND 512MiB 3,3V 16-bit)
    Bad block table found at page 262080, version 0x01
    Bad block table found at page 262016, version 0x01
    Creating 4 MTD partitions on "davinci_nand.1":
    0x000000000000-0x000000020000 : "u-boot env"
    0x000000020000-0x0000000a0000 : "u-boot"
    0x0000000a0000-0x0000002a0000 : "kernel"
    0x0000002a0000-0x000020000000 : "filesystem"
    davinci_nand davinci_nand.1: controller rev. 2.5
    davinci_mdio davinci_mdio.0: davinci mdio revision 1.5
    davinci_mdio davinci_mdio.0: detected phy mask ffffff7f
    davinci_mdio.0: probed
    davinci_mdio davinci_mdio.0: phy[7]: device davinci_mdio-0:07, driver SMSC LAN8710/LAN8720
    ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
    ohci ohci.0: DA8xx OHCI
    ohci ohci.0: new USB bus registered, assigned bus number 1
    Waiting for USB PHY clock good...
    ohci ohci.0: irq 59, io mem 0x01e25000
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 1 port detected
    Initializing USB Mass Storage driver...
    usbcore: registered new interface driver usb-storage
    USB Mass Storage support registered.
    input: gpio-keys-polled as /devices/platform/gpio-keys-polled.0/input/input0
    omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0
    omap_rtc: RTC power up reset detected
    i2c /dev entries driver
    watchdog watchdog: heartbeat 60 sec
    cpuidle: using governor ladder
    cpuidle: using governor menu
    davinci_mmc davinci_mmc.0: Using DMA, 4-bit mode
    usbcore: registered new interface driver usbhid
    usbhid: USB HID core driver
    usbcore: registered new interface driver snd-usb-audio
    soc-audio soc-audio.0: ASoC: Failed to create card debugfs directory
    _regulator_get: 1-0018 supply IOVDD not found, using dummy regulator
    _regulator_get: 1-0018 supply DVDD not found, using dummy regulator
    _regulator_get: 1-0018 supply AVDD not found, using dummy regulator
    ata1: SATA link down (SStatus 0 SControl 300)
    _regulator_get: 1-0018 supply DRVDD not found, using dummy regulator
    asoc: tlv320aic3x-hifi <-> davinci-mcasp.0 mapping ok
    ALSA device list:
    #0: DA850/OMAP-L138 EVM
    TCP cubic registered
    NET: Registered protocol family 17
    console [netcon0] enabled
    netconsole: network logging started
    mmc0: new high speed SDHC card at address 0002
    davinci_emac davinci_emac.1: using random MAC addr: 16:ba:ab:f7:f1:86
    mmcblk0: mmc0:0002 N/A 7.50 GiB
    #0: DA850/OMAP-L138 EVM
    TCP cubic registered
    NET: Registered protocol family 17
    console [netcon0] enabled
    netconsole: network logging started
    mmc0: new high speed SDHC card at address 0002
    davinci_emac davinci_emac.1: using random MAC addr: 16:ba:ab:f7:f1:86
    mmcblk0: mmc0:0002 N/A 7.50 GiB
    mmcblk0: p1 p2
    omap_rtc omap_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
    kjournald starting. Commit interval 5 seconds
    EXT3-fs (mmcblk0p2): using internal journal
    EXT3-fs (mmcblk0p2): recovery complete
    EXT3-fs (mmcblk0p2): mounted filesystem with writeback data mode
    VFS: Mounted root (ext3 filesystem) on device 179:2.
    Freeing init memory: 172K
    davinci_mdio davinci_mdio.0: resetting idled controller
    net eth0: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=davinci_m
    NET: Registered protocol family 10
    ADDRCONF(NETDEV_UP): eth0: link is not ready
    PHY: davinci_mdio-0:07 - Link is Up - 100/Full
    ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    eth0: no IPv6 routers present
  • Hi Yordan,

    One more thing I should mension. Though my board is OMAPL138 LCDK the "arecord -L" shows my sound card is
    DA850/OMAP-L138 EVM.

    Thanks & regards,
    Jagadish