Hello,
I have ported over the TLV320ADC6140 device driver from beagle board to Pocket Beagle. I am currently using a U-Boot overlay to define the pinmux and configuration. I am testing with the TLV320ADC6140 EVM eval module.
Currently, I am able to do arecord to record from channel 1, but if I move the microphone to channel 2-4, no audio is recorded.
I'm thinking the device should load with 4 submodules for each of the channels. Is this correct? Or, should there be multiple instances of the driver?
From looking at the driver code, all 4 channels are enabled by default, register wise.
debian@arm:~$ arecord -f S32_LE -V mono -r 48000 -d 10 -c 1 --dump-hw-params /home/debian/audio_test/tes
t-mic.wav
Recording WAVE '/home/debian/audio_test/test-mic.wav' : Signed 32 bit Little Endian, Rate 48000 Hz, Mono
HW Params of device "default":
--------------------
ACCESS: MMAP_INTERLEAVED MMAP_NONINTERLEAVED MMAP_COMPLEX RW_INTERLEAVED RW_NONINTERLEAVED
FORMAT: S8 U8 S16_LE S16_BE U16_LE U16_BE S24_LE S24_BE U24_LE U24_BE S32_LE S32_BE U32_LE U32_BE FLOAT_LE FLOAT_BE FLOAT64_LE FLOAT64_BE MU_LAW A_LAW IMA_ADPCM S20_LE S20_BE U20_LE U20_BE S24_3LE S24_3BE U24_3LE U24_3BE S20_3LE S20_3BE U20_3LE U20_3BE S18_3LE S18_3BE U18_3LE U18_3BE
SUBFORMAT: STD
SAMPLE_BITS: [4 64]
FRAME_BITS: [4 640000]
CHANNELS: [1 10000]
RATE: [4000 4294967295)
PERIOD_TIME: (1333 341334)
PERIOD_SIZE: (5 1466018367)
PERIOD_BYTES: (2 4294967295)
PERIODS: (0 586406202)
BUFFER_TIME: [1 4294967295]
BUFFER_SIZE: [10 2932031006]
BUFFER_BYTES: [5 4294967295]
TICK_TIME: ALL
--------------------
debian@arm:~$ cat /proc/asound/card0/pcm0c/sub0/info
card: 0
device: 0
subdevice: 0
stream: CAPTURE
id: davinci-mcasp.0-tlv320adcx140-codec tlv320adcx140-codec-0
name: davinci-mcasp.0-tlv320adcx140-codec tlv320adcx140-codec-0
subname: subdevice #0
class: 0
subclass: 0
subdevices_count: 1
subdevices_avail: 1