ASoC simple SCU Sound Card Simple-Card specifies audio DAI connections of SoC <-> codec. Required properties: - compatible : "simple-scu-audio-card" "renesas,rsrc-card" Optional properties: - simple-audio-card,name : User specified audio sound card name, one string property. - simple-audio-card,cpu : CPU sub-node - simple-audio-card,codec : CODEC sub-node Optional subnode properties: - simple-audio-card,format : CPU/CODEC common audio format. "i2s", "right_j", "left_j" , "dsp_a" "dsp_b", "ac97", "pdm", "msb", "lsb" - simple-audio-card,frame-master : Indicates dai-link frame master. phandle to a cpu or codec subnode. - simple-audio-card,bitclock-master : Indicates dai-link bit clock master. phandle to a cpu or codec subnode. - simple-audio-card,bitclock-inversion : bool property. Add this if the dai-link uses bit clock inversion. - simple-audio-card,frame-inversion : bool property. Add this if the dai-link uses frame clock inversion. - simple-audio-card,convert-rate : platform specified sampling rate convert - simple-audio-card,convert-channels : platform specified converted channel size (2 - 8 ch) - simple-audio-card,prefix : see audio-routing - simple-audio-card,routing : A list of the connections between audio components. Each entry is a pair of strings, the first being the connection's sink, the second being the connection's source. Valid names for sources. use audio-prefix if some components is using same sink/sources naming. it can be used if compatible was "renesas,rsrc-card"; Required CPU/CODEC subnodes properties: - sound-dai : phandle and port of CPU/CODEC Optional CPU/CODEC subnodes properties: - clocks / system-clock-frequency : specify subnode's clock if needed. it can be specified via "clocks" if system has clock node (= common clock), or "system-clock-frequency" (if system doens't support common clock) If a clock is specified, it is enabled with clk_prepare_enable() in dai startup() and disabled with clk_disable_unprepare() in dai shutdown(). Example 1. Sampling Rate Covert sound { compatible = "simple-scu-audio-card"; simple-audio-card,name = "rsnd-ak4643"; simple-audio-card,format = "left_j"; simple-audio-card,format = "left_j"; simple-audio-card,bitclock-master = <&sndcodec>; simple-audio-card,frame-master = <&sndcodec>; simple-audio-card,convert-rate = <48000>; /* see audio_clk_a */ simple-audio-card,prefix = "ak4642"; simple-audio-card,routing = "ak4642 Playback", "DAI0 Playback", "DAI0 Capture", "ak4642 Capture"; sndcpu: simple-audio-card,cpu { sound-dai = <&rcar_sound>; }; sndcodec: simple-audio-card,codec { sound-dai = <&ak4643>; system-clock-frequency = <11289600>; }; }; Example 2. 2 CPU 1 Codec sound { compatible = "renesas,rsrc-card"; card-name = "rsnd-ak4643"; format = "left_j"; bitclock-master = <&dpcmcpu>; frame-master = <&dpcmcpu>; convert-rate = <48000>; /* see audio_clk_a */ audio-prefix = "ak4642"; audio-routing = "ak4642 Playback", "DAI0 Playback", "ak4642 Playback", "DAI1 Playback"; dpcmcpu: cpu@0 { sound-dai = <&rcar_sound 0>; }; cpu@1 { sound-dai = <&rcar_sound 1>; }; codec { sound-dai = <&ak4643>; clocks = <&audio_clock>; }; };