* Ask for help. ARM:mvebu (CM-A510), add sound support using TLV320AIC23 audio-codec
@ 2015-02-23 20:27 Gabriel Dobato
2015-02-24 6:42 ` Marcin Wojtas
2015-02-24 8:41 ` Sebastian Hesselbarth
0 siblings, 2 replies; 5+ messages in thread
From: Gabriel Dobato @ 2015-02-23 20:27 UTC (permalink / raw)
To: linux-arm-kernel
Hello,
I am trying to set the sound system using "simple-audio-card" and
TLV320AIC23B audio codec in Compulab CM-510 SoM.
This is my structure in DT, according to
./KERNEL/Documentation/devicetree/bindings/sound/simple-card.txt,
/KERNEL/Documentation/devicetree/bindings/sound/widgets.txt and the
source code of the audio-codec ./KERNEL/sound/soc/codecs/tlv320aic23.c :
sound {
compatible = "simple-audio-card";
simple-audio-card,name = "OnboardTLV320AIC23B";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&dailink_master>;
simple-audio-card,frame-master = <&dailink_master>;
simple-audio-card,widgets =
"Microphone", "Mic Input",
"Line", "Line Input",
"Line", "Line Out",
"Speaker", "Speaker",
"Headphone", "Headphone Jack";
simple-audio-card,routing =
"Line Out", "LOUT",
"Line Out", "ROUT",
"Line Out", "RHPOUT",
"Line Out", "LHPOUT",
"LLINEIN","Line Input",
"RLINEIN","Line Input",
"MICIN","Mic Input";
simple-audio-card,cpu {
sound-dai = <&audio0 0>;
};
dailink_master: simple-audio-card,codec {
sound-dai = <&opt_audio>;
};
};
};
/* TLV320AIC23 */
&opt_audio {
status = "okay";
#sound-dai-cells= <0>;
};
And this is the kernel trace:
...
tlv320aic23-codec 0-001a: Control not supported for path LLINEIN ->
[NULL] -> Line Input
tlv320aic23-codec 0-001a: ASoC: no dapm match for LLINEIN --> NULL -->
Line Input
tlv320aic23-codec 0-001a: ASoC: Failed to add route LLINEIN -> NULL ->
Line Input
tlv320aic23-codec 0-001a: Control not supported for path RLINEIN ->
[NULL] -> Line Input
tlv320aic23-codec 0-001a: ASoC: no dapm match for RLINEIN --> NULL -->
Line Input
tlv320aic23-codec 0-001a: ASoC: Failed to add route RLINEIN -> NULL ->
Line Input
tlv320aic23-codec 0-001a: Control not supported for path MICIN -> [NULL]
-> Mic Input
tlv320aic23-codec 0-001a: ASoC: no dapm match for MICIN --> NULL --> Mic
Input
tlv320aic23-codec 0-001a: ASoC: Failed to add route MICIN -> NULL -> Mic
Input
usb 2-1.2: new high-speed USB device number 3 using orion-ehci
asoc-simple-card sound: tlv320aic23-hifi <-> i2s mapping ok
...
ALSA device list:
#0: OnboardTLV320AIC23B
...
[....] Setting up ALSA...amixer: Invalid command!
...
I think I have written the node according to the documentation, but
probably I miss something.
Anyone has faced a similar problem?
I would really appreciate some kind of help.
Thank you,
Gabriel
^ permalink raw reply [flat|nested] 5+ messages in thread* Ask for help. ARM:mvebu (CM-A510), add sound support using TLV320AIC23 audio-codec 2015-02-23 20:27 Ask for help. ARM:mvebu (CM-A510), add sound support using TLV320AIC23 audio-codec Gabriel Dobato @ 2015-02-24 6:42 ` Marcin Wojtas 2015-02-24 8:41 ` Sebastian Hesselbarth 1 sibling, 0 replies; 5+ messages in thread From: Marcin Wojtas @ 2015-02-24 6:42 UTC (permalink / raw) To: linux-arm-kernel Hi Gabriel, I think that the lack of space in all three input routings can make a difference. Please let know if adding it helps. Best regards, Marcin 2015-02-23 21:27 GMT+01:00 Gabriel Dobato <dobatog@gmail.com>: > Hello, > > I am trying to set the sound system using "simple-audio-card" and > TLV320AIC23B audio codec in Compulab CM-510 SoM. > > This is my structure in DT, according to > ./KERNEL/Documentation/devicetree/bindings/sound/simple-card.txt, > /KERNEL/Documentation/devicetree/bindings/sound/widgets.txt and the source > code of the audio-codec ./KERNEL/sound/soc/codecs/tlv320aic23.c : > > sound { > compatible = "simple-audio-card"; > simple-audio-card,name = "OnboardTLV320AIC23B"; > simple-audio-card,format = "i2s"; > simple-audio-card,bitclock-master = <&dailink_master>; > simple-audio-card,frame-master = <&dailink_master>; > simple-audio-card,widgets = > "Microphone", "Mic Input", > "Line", "Line Input", > "Line", "Line Out", > "Speaker", "Speaker", > "Headphone", "Headphone Jack"; > > simple-audio-card,routing = > "Line Out", "LOUT", > "Line Out", "ROUT", > "Line Out", "RHPOUT", > "Line Out", "LHPOUT", > "LLINEIN","Line Input", > "RLINEIN","Line Input", > "MICIN","Mic Input"; > simple-audio-card,cpu { > sound-dai = <&audio0 0>; > }; > dailink_master: simple-audio-card,codec { > sound-dai = <&opt_audio>; > }; > }; > }; > > > /* TLV320AIC23 */ > &opt_audio { > status = "okay"; > #sound-dai-cells= <0>; > }; > > > And this is the kernel trace: > > ... > tlv320aic23-codec 0-001a: Control not supported for path LLINEIN -> [NULL] > -> Line Input > tlv320aic23-codec 0-001a: ASoC: no dapm match for LLINEIN --> NULL --> Line > Input > tlv320aic23-codec 0-001a: ASoC: Failed to add route LLINEIN -> NULL -> Line > Input > tlv320aic23-codec 0-001a: Control not supported for path RLINEIN -> [NULL] > -> Line Input > tlv320aic23-codec 0-001a: ASoC: no dapm match for RLINEIN --> NULL --> Line > Input > tlv320aic23-codec 0-001a: ASoC: Failed to add route RLINEIN -> NULL -> Line > Input > tlv320aic23-codec 0-001a: Control not supported for path MICIN -> [NULL] -> > Mic Input > tlv320aic23-codec 0-001a: ASoC: no dapm match for MICIN --> NULL --> Mic > Input > tlv320aic23-codec 0-001a: ASoC: Failed to add route MICIN -> NULL -> Mic > Input > usb 2-1.2: new high-speed USB device number 3 using orion-ehci > asoc-simple-card sound: tlv320aic23-hifi <-> i2s mapping ok > ... > > ALSA device list: > #0: OnboardTLV320AIC23B > ... > > [....] Setting up ALSA...amixer: Invalid command! > ... > > > I think I have written the node according to the documentation, but probably > I miss something. > Anyone has faced a similar problem? > > > I would really appreciate some kind of help. > > Thank you, > > Gabriel > > > > > > > > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel at lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 5+ messages in thread
* Ask for help. ARM:mvebu (CM-A510), add sound support using TLV320AIC23 audio-codec 2015-02-23 20:27 Ask for help. ARM:mvebu (CM-A510), add sound support using TLV320AIC23 audio-codec Gabriel Dobato 2015-02-24 6:42 ` Marcin Wojtas @ 2015-02-24 8:41 ` Sebastian Hesselbarth 2015-02-24 21:16 ` Gabriel Dobato 1 sibling, 1 reply; 5+ messages in thread From: Sebastian Hesselbarth @ 2015-02-24 8:41 UTC (permalink / raw) To: linux-arm-kernel [adding alsa-devel and Jean-Francois] Gabriel, you should try to add people and lists you expect help from. On 23.02.2015 21:27, Gabriel Dobato wrote: > I am trying to set the sound system using "simple-audio-card" and > TLV320AIC23B audio codec in Compulab CM-510 SoM. > > This is my structure in DT, according to > ./KERNEL/Documentation/devicetree/bindings/sound/simple-card.txt, > /KERNEL/Documentation/devicetree/bindings/sound/widgets.txt and the > source code of the audio-codec ./KERNEL/sound/soc/codecs/tlv320aic23.c : > > sound { > compatible = "simple-audio-card"; > simple-audio-card,name = "OnboardTLV320AIC23B"; > simple-audio-card,format = "i2s"; > simple-audio-card,bitclock-master = <&dailink_master>; > simple-audio-card,frame-master = <&dailink_master>; > simple-audio-card,widgets = > "Microphone", "Mic Input", > "Line", "Line Input", > "Line", "Line Out", > "Speaker", "Speaker", > "Headphone", "Headphone Jack"; > > simple-audio-card,routing = > "Line Out", "LOUT", > "Line Out", "ROUT", > "Line Out", "RHPOUT", > "Line Out", "LHPOUT", > "LLINEIN","Line Input", > "RLINEIN","Line Input", > "MICIN","Mic Input"; > simple-audio-card,cpu { > sound-dai = <&audio0 0>; > }; > dailink_master: simple-audio-card,codec { > sound-dai = <&opt_audio>; > }; > }; > }; > > /* TLV320AIC23 */ > &opt_audio { > status = "okay"; > #sound-dai-cells= <0>; > }; The full node looks like: opt_audio: audio at 1a { compatible = "ti,tlv320aic23"; reg = <0x1a>; #sound-dai-cells= <0>; status = "okay"; }; > And this is the kernel trace: > > ... > tlv320aic23-codec 0-001a: Control not supported for path LLINEIN -> > [NULL] -> Line Input > tlv320aic23-codec 0-001a: ASoC: no dapm match for LLINEIN --> NULL --> > Line Input > tlv320aic23-codec 0-001a: ASoC: Failed to add route LLINEIN -> NULL -> > Line Input > tlv320aic23-codec 0-001a: Control not supported for path RLINEIN -> > [NULL] -> Line Input > tlv320aic23-codec 0-001a: ASoC: no dapm match for RLINEIN --> NULL --> > Line Input > tlv320aic23-codec 0-001a: ASoC: Failed to add route RLINEIN -> NULL -> > Line Input > tlv320aic23-codec 0-001a: Control not supported for path MICIN -> [NULL] > -> Mic Input > tlv320aic23-codec 0-001a: ASoC: no dapm match for MICIN --> NULL --> Mic > Input > tlv320aic23-codec 0-001a: ASoC: Failed to add route MICIN -> NULL -> Mic > Input > usb 2-1.2: new high-speed USB device number 3 using orion-ehci > asoc-simple-card sound: tlv320aic23-hifi <-> i2s mapping ok > ... > > ALSA device list: > #0: OnboardTLV320AIC23B > ... > > [....] Setting up ALSA...amixer: Invalid command! It doesn't help much without knowing what amixer is trying to do. > I think I have written the node according to the documentation, but > probably I miss something. Looking at sound/soc/codecs/tlv320aic23.c: static const struct snd_soc_dapm_route tlv320aic23_intercon[] = { /* Output Mixer */ {"Output Mixer", "Line Bypass Switch", "Line Input"}, {"Output Mixer", "Playback Switch", "DAC"}, {"Output Mixer", "Mic Sidetone Switch", "Mic Input"}, /* Outputs */ {"RHPOUT", NULL, "Output Mixer"}, {"LHPOUT", NULL, "Output Mixer"}, {"LOUT", NULL, "Output Mixer"}, {"ROUT", NULL, "Output Mixer"}, /* Inputs */ {"Line Input", "NULL", "LLINEIN"}, {"Line Input", "NULL", "RLINEIN"}, {"Mic Input", "NULL", "MICIN"}, /* input mux */ {"Capture Source", "Line", "Line Input"}, {"Capture Source", "Mic", "Mic Input"}, {"ADC", NULL, "Capture Source"}, }; The lines with the failing routes really look suspicious, i.e. there is strings "NULL" where I'd expect plain NULL. What happens if you amend the three lines and replace the "NULL" with NULL? Sebastian ^ permalink raw reply [flat|nested] 5+ messages in thread
* Ask for help. ARM:mvebu (CM-A510), add sound support using TLV320AIC23 audio-codec 2015-02-24 8:41 ` Sebastian Hesselbarth @ 2015-02-24 21:16 ` Gabriel Dobato 2015-02-24 21:54 ` Sebastian Hesselbarth 0 siblings, 1 reply; 5+ messages in thread From: Gabriel Dobato @ 2015-02-24 21:16 UTC (permalink / raw) To: linux-arm-kernel > I think that the lack of space in all three input routings can make a > difference. Please let know if adding it helps. > > Best regards, > Marcin Marcin, Thank you for your answer!. It seems that space does not matter (I have checked it), but yes, it is necessary to be careful with this kind of things.. On 24/02/15 09:41, Sebastian Hesselbarth wrote: > The full node looks like: > opt_audio: audio at 1a { > compatible = "ti,tlv320aic23"; > reg = <0x1a>; > #sound-dai-cells= <0>; > status = "okay"; > }; Yes, sorry. And regarding to audio0, the full node looks like: audio0: audio-controller at b0000 { compatible = "marvell,dove-audio"; reg = <0xb0000 0x2210>; interrupts = <19>, <20>; clocks = <&gate_clk 12>; clock-names = "internal"; #sound-dai-cells= <1>; status = "okay"; }; > Looking at sound/soc/codecs/tlv320aic23.c: > > static const struct snd_soc_dapm_route tlv320aic23_intercon[] = { > /* Output Mixer */ > {"Output Mixer", "Line Bypass Switch", "Line Input"}, > {"Output Mixer", "Playback Switch", "DAC"}, > {"Output Mixer", "Mic Sidetone Switch", "Mic Input"}, > > /* Outputs */ > {"RHPOUT", NULL, "Output Mixer"}, > {"LHPOUT", NULL, "Output Mixer"}, > {"LOUT", NULL, "Output Mixer"}, > {"ROUT", NULL, "Output Mixer"}, > > /* Inputs */ > {"Line Input", "NULL", "LLINEIN"}, > {"Line Input", "NULL", "RLINEIN"}, > > {"Mic Input", "NULL", "MICIN"}, > > /* input mux */ > {"Capture Source", "Line", "Line Input"}, > {"Capture Source", "Mic", "Mic Input"}, > {"ADC", NULL, "Capture Source"}, > > }; > > The lines with the failing routes really look suspicious, i.e. > there is strings "NULL" where I'd expect plain NULL. > > What happens if you amend the three lines and replace the "NULL" > with NULL? > > Sebastian Sebastian, You were right, as always :) , I have changed them and now errors are not reported. Now, in the boot trace I find: ... asoc-simple-card sound: tlv320aic23-hifi <-> i2s mapping ok ... ... ALSA device list: #0: OnboardTLV320AIC23B ... but after rootfs is up, this msg appears in dmesg: platform sound: Driver asoc-simple-card requests probe deferral In reference to the card, I get the following info: root at 192:~#cat /proc/asound/cards 0 [OnboardTLV320AI]: OnboardTLV320AI - OnboardTLV320AIC23B OnboardTLV320AIC23B root at 192:~# tree /proc/asound/card0/ /proc/asound/card0/ |-- id |-- pcm0c | |-- info | `-- sub0 | |-- hw_params | |-- info | |-- status | `-- sw_params `-- pcm0p |-- info `-- sub0 |-- hw_params |-- info |-- status `-- sw_params 4 directories, 11 files And if I try to reproduce some noise: root at 192:~# cat /dev/urandom | aplay Playing raw data 'stdin' : Unsigned 8 bit, Rate 8000 Hz, Mono set_sample_rate_control:Invalid rate 48000,48000 requested tlv320aic23-codec 1-001a: ASoC: can't set tlv320aic23-hifi hw params: -22 aplay: set_params:1145: Unable to install hw params: ACCESS: RW_INTERLEAVED FORMAT: U8 SUBFORMAT: STD SAMPLE_BITS: 8 FRAME_BITS: 8 CHANNELS: 1 RATE: 8000 PERIOD_TIME: (125333 125334) PERIOD_SIZE: (1002 1003) PERIOD_BYTES: (1002 1003) PERIODS: (3 4) BUFFER_TIME: 500000 BUFFER_SIZE: 4000 BUFFER_BYTES: 4000 TICK_TIME: 0 Gabriel ^ permalink raw reply [flat|nested] 5+ messages in thread
* Ask for help. ARM:mvebu (CM-A510), add sound support using TLV320AIC23 audio-codec 2015-02-24 21:16 ` Gabriel Dobato @ 2015-02-24 21:54 ` Sebastian Hesselbarth 0 siblings, 0 replies; 5+ messages in thread From: Sebastian Hesselbarth @ 2015-02-24 21:54 UTC (permalink / raw) To: linux-arm-kernel On 24.02.2015 22:16, Gabriel Dobato wrote: >> Looking at sound/soc/codecs/tlv320aic23.c: >> >> static const struct snd_soc_dapm_route tlv320aic23_intercon[] = { >> /* Output Mixer */ >> {"Output Mixer", "Line Bypass Switch", "Line Input"}, >> {"Output Mixer", "Playback Switch", "DAC"}, >> {"Output Mixer", "Mic Sidetone Switch", "Mic Input"}, >> >> /* Outputs */ >> {"RHPOUT", NULL, "Output Mixer"}, >> {"LHPOUT", NULL, "Output Mixer"}, >> {"LOUT", NULL, "Output Mixer"}, >> {"ROUT", NULL, "Output Mixer"}, >> >> /* Inputs */ >> {"Line Input", "NULL", "LLINEIN"}, >> {"Line Input", "NULL", "RLINEIN"}, >> >> {"Mic Input", "NULL", "MICIN"}, >> >> /* input mux */ >> {"Capture Source", "Line", "Line Input"}, >> {"Capture Source", "Mic", "Mic Input"}, >> {"ADC", NULL, "Capture Source"}, >> >> }; >> >> The lines with the failing routes really look suspicious, i.e. >> there is strings "NULL" where I'd expect plain NULL. >> > You were right, as always :) , I have changed them and now errors are > not reported. Now, in the boot trace I find: Mind to send a proper patch fixing the above? Make sure you run ./scripts/checkpatch.pl and ./scripts/get_maintainer.pl on the patch. It should give you an idea of proper code style and what people/lists to send it to. I am sure, google will help you with how to prepare proper kernel patches, too. > but after rootfs is up, this msg appears in dmesg: > > platform sound: Driver asoc-simple-card requests probe deferral This is, as always, a missing dependency of simple-card node. Either you are missing drivers for Dove audio (kirkwood-i2s) or one of the drivers involved in your simple-card fails. Look for errors in your dmesg output - also please name the kernel version you are working with. There have been some changes in clk handling that break a bunch of drivers in 4.0-rc1. Sebastian ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-02-24 21:54 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-02-23 20:27 Ask for help. ARM:mvebu (CM-A510), add sound support using TLV320AIC23 audio-codec Gabriel Dobato 2015-02-24 6:42 ` Marcin Wojtas 2015-02-24 8:41 ` Sebastian Hesselbarth 2015-02-24 21:16 ` Gabriel Dobato 2015-02-24 21:54 ` Sebastian Hesselbarth
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).