Hi, I am trying to use the simple-card framework on a custom i.MX28 board. There are two SAIF modules (saif0 and saif1) instantiated on the cpu. A reference for the platform driver is mxs-sgtl5000. The two cpu dais saif0 and saif1 are connected to the audio codec sgtl5000. saif0 is used to playback and saif1 is used to capture. Unfortunately, I do not have a sgtl5000 codec, but a pcm5102a, a wm8524 and wm8731 to play with. For all those codec I copied the mxs-sgtl5000 driver, e.g. mxs- pcm5102a, mxs-wm8524, mxs-wm8731. I will refer to these drivers as mxs- <codec> later. The only difference was in setting the mclk. That's why I'm interested in using the simple-card driver for this platform. With the help of Mans Rullgard I came up with these parts of the device tree node when using the wm8731 codec: sound { compatible = "simple-audio-card"; simple-audio-card,name = "hbm10-wm8731"; simple-audio-card,widgets = "Headphone", "Headphone Jack", "Microphone", "Microphone Jack", "Line", "Line Jack"; simple-audio-card,routing = "Headphone Jack", "RHPOUT", "Headphone Jack", "LHPOUT", "LLINEIN", "Line Jack", "MICIN", "Mic Bias", "Mic Bias", "Microphone Jack"; simple-audio-card,dai-link@0 { format = "i2s"; bitclock-master = <&dai0_master>; frame-master = <&dai0_master>; mclk-fs = <256>; dai0_master: cpu { sound-dai = <&saif0>; }; codec { sound-dai = <&wm8731>; clocks = <&saif0>; }; }; simple-audio-card,dai-link@1 { format = "i2s"; bitclock-master = <&dai1_master>; frame-master = <&dai1_master>; mclk-fs = <256>; dai1_master: cpu { sound-dai = <&saif1>; }; codec { sound-dai = <&wm8731>; }; }; }; &saif0 { #sound-dai-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&saif0_pins_a>; assigned-clocks = <&clks 53>; assigned-clock-rates = <12288000>; status = "okay"; }; &saif1 { #sound-dai-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&saif1_pins_a>; fsl,saif-master = <&saif0>; status = "okay"; }; &i2c0 { pinctrl-names = "default"; pinctrl-0 = <&i2c0_pins_a>; status = "okay"; wm8731: wm8731@1a { #sound-dai-cells = <0>; compatible = "wlf,wm8731"; reg = <0x1a>; }; }; >From my understanding of the simple-card framework this should connect saif0 (cpu dai) <-> wm8731 (codec) and saif1 (cpu dai) <-> wm8731 (codec) as it is done in the probe function of the mxs-<codec> driver, right? However, this gives me a warning while bringing up the board: sysfs: cannot create duplicate filename '/devices/soc0/sound/mxs-saif- wm8731-hifi'. Note, that the simple-card framework works fine for mxs-saif if using only the dai0 link (playback) and leaving the dai1 link (capture). Am I doing something wrong here? Is it possible to map the two dai links using the current simple-card framework? Is anyone using the simple-card framework on mxs-saif using both playback and capture? Best regards, Jörg Krause _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel