Loading Documentation/devicetree/bindings/sound/ak4104.txt +2 −2 Original line number Diff line number Diff line Loading @@ -12,7 +12,7 @@ Required properties: Optional properties: - reset-gpio : a GPIO spec for the reset pin. If specified, it will be - reset-gpios : a GPIO spec for the reset pin. If specified, it will be deasserted before communication to the device starts. Example: Loading Documentation/devicetree/bindings/sound/ak4118.txt 0 → 100644 +22 −0 Original line number Diff line number Diff line AK4118 S/PDIF transceiver This device supports I2C mode. Required properties: - compatible : "asahi-kasei,ak4118" - reg : The I2C address of the device for I2C - reset-gpios: A GPIO specifier for the reset pin - irq-gpios: A GPIO specifier for the IRQ pin Example: &i2c { ak4118: ak4118@13 { #sound-dai-cells = <0>; compatible = "asahi-kasei,ak4118"; reg = <0x13>; reset-gpios = <&gpio 0 GPIO_ACTIVE_LOW> irq-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>; }; }; Documentation/devicetree/bindings/sound/amlogic,axg-spdifin.txt 0 → 100644 +22 −0 Original line number Diff line number Diff line * Amlogic Audio SPDIF Input Required properties: - compatible: 'amlogic,axg-spdifin' - interrupts: interrupt specifier for the spdif input. - clocks: list of clock phandle, one for each entry clock-names. - clock-names: should contain the following: * "pclk" : peripheral clock. * "refclk" : spdif input reference clock - #sound-dai-cells: must be 0. Example on the A113 SoC: spdifin: audio-controller@400 { compatible = "amlogic,axg-spdifin"; reg = <0x0 0x400 0x0 0x30>; #sound-dai-cells = <0>; interrupts = <GIC_SPI 87 IRQ_TYPE_EDGE_RISING>; clocks = <&clkc_audio AUD_CLKID_SPDIFIN>, <&clkc_audio AUD_CLKID_SPDIFIN_CLK>; clock-names = "pclk", "refclk"; }; Documentation/devicetree/bindings/sound/audio-graph-card.txt +205 −0 Original line number Diff line number Diff line Loading @@ -32,7 +32,9 @@ Required properties: Optional properties: - pa-gpios: GPIO used to control external amplifier. ----------------------- Example: Single DAI case ----------------------- sound_card { compatible = "audio-graph-card"; Loading Loading @@ -61,7 +63,9 @@ Example: Single DAI case }; }; ----------------------- Example: Multi DAI case ----------------------- sound-card { compatible = "audio-graph-card"; Loading Loading @@ -130,3 +134,204 @@ Example: Multi DAI case }; }; ----------------------- Example: Sampling Rate Conversion ----------------------- sound_card { compatible = "audio-graph-card"; label = "sound-card"; prefix = "codec"; routing = "codec Playback", "DAI0 Playback", "DAI0 Capture", "codec Capture"; convert-rate = <48000>; dais = <&cpu_port>; }; audio-codec { ... port { codec_endpoint: endpoint { remote-endpoint = <&cpu_endpoint>; }; }; }; dai-controller { ... cpu_port: port { cpu_endpoint: endpoint { remote-endpoint = <&codec_endpoint>; dai-format = "left_j"; ... }; }; }; ----------------------- Example: 2 CPU 1 Codec (Mixing) ----------------------- sound_card { compatible = "audio-graph-card"; label = "sound-card"; routing = "codec Playback", "DAI0 Playback", "codec Playback", "DAI1 Playback", "DAI0 Capture", "codec Capture"; dais = <&cpu_port>; }; audio-codec { ... audio-graph-card,prefix = "codec"; audio-graph-card,convert-rate = <48000>; port { reg = <0>; codec_endpoint0: endpoint@0 { remote-endpoint = <&cpu_endpoint0>; }; codec_endpoint1: endpoint@1 { remote-endpoint = <&cpu_endpoint1>; }; }; }; dai-controller { ... cpu_port: port { cpu_endpoint0: endpoint@0 { remote-endpoint = <&codec_endpoint0>; dai-format = "left_j"; ... }; cpu_endpoint1: endpoint@1 { remote-endpoint = <&codec_endpoint1>; dai-format = "left_j"; ... }; }; }; ----------------------- Example: Multi DAI with DPCM ----------------------- CPU0 ------ ak4613 CPU1 ------ HDMI CPU2 ------ PCM3168A-p /* DPCM 1ch/2ch */ CPU3 --/ /* DPCM 3ch/4ch */ CPU4 --/ /* DPCM 5ch/6ch */ CPU5 --/ /* DPCM 7ch/8ch */ CPU6 ------ PCM3168A-c sound_card: sound { compatible = "audio-graph-card"; label = "sound-card"; routing = "pcm3168a Playback", "DAI2 Playback", "pcm3168a Playback", "DAI3 Playback", "pcm3168a Playback", "DAI4 Playback", "pcm3168a Playback", "DAI5 Playback"; dais = <&snd_port0 /* ak4613 */ &snd_port1 /* HDMI0 */ &snd_port2 /* pcm3168a playback */ &snd_port3 /* pcm3168a capture */ >; }; ak4613: codec@10 { ... port { ak4613_endpoint: endpoint { remote-endpoint = <&rsnd_endpoint0>; }; }; }; pcm3168a: audio-codec@44 { ... audio-graph-card,prefix = "pcm3168a"; audio-graph-card,convert-channels = <8>; /* TDM Split */ ports { port@0 { reg = <0>; pcm3168a_endpoint_p1: endpoint@1 { remote-endpoint = <&rsnd_endpoint2>; ... }; pcm3168a_endpoint_p2: endpoint@2 { remote-endpoint = <&rsnd_endpoint3>; ... }; pcm3168a_endpoint_p3: endpoint@3 { remote-endpoint = <&rsnd_endpoint4>; ... }; pcm3168a_endpoint_p4: endpoint@4 { remote-endpoint = <&rsnd_endpoint5>; ... }; }; port@1 { reg = <1>; pcm3168a_endpoint_c: endpoint { remote-endpoint = <&rsnd_endpoint6>; ... }; }; }; }; &sound { ports { snd_port0: port@0 { rsnd_endpoint0: endpoint { remote-endpoint = <&ak4613_endpoint>; ... }; }; snd_port1: port@1 { rsnd_endpoint1: endpoint { remote-endpoint = <&dw_hdmi0_snd_in>; ... }; }; snd_port2: port@2 { #address-cells = <1>; #size-cells = <0>; rsnd_endpoint2: endpoint@2 { remote-endpoint = <&pcm3168a_endpoint_p1>; ... }; rsnd_endpoint3: endpoint@3 { remote-endpoint = <&pcm3168a_endpoint_p2>; ... }; rsnd_endpoint4: endpoint@4 { remote-endpoint = <&pcm3168a_endpoint_p3>; ... }; rsnd_endpoint5: endpoint@5 { remote-endpoint = <&pcm3168a_endpoint_p4>; ... }; }; snd_port3: port@6 { rsnd_endpoint6: endpoint { remote-endpoint = <&pcm3168a_endpoint_c>; ... }; }; }; }; Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt +2 −2 Original line number Diff line number Diff line Loading @@ -77,11 +77,9 @@ Example 2. 2 CPU 1 Codec (Mixing) compatible = "audio-graph-scu-card"; label = "sound-card"; prefix = "codec"; routing = "codec Playback", "DAI0 Playback", "codec Playback", "DAI1 Playback", "DAI0 Capture", "codec Capture"; convert-rate = <48000>; dais = <&cpu_port0 &cpu_port1>; Loading @@ -90,6 +88,8 @@ Example 2. 2 CPU 1 Codec (Mixing) audio-codec { ... audio-graph-card,prefix = "codec"; audio-graph-card,convert-rate = <48000>; port { codec_endpoint0: endpoint { remote-endpoint = <&cpu_endpoint0>; Loading Loading
Documentation/devicetree/bindings/sound/ak4104.txt +2 −2 Original line number Diff line number Diff line Loading @@ -12,7 +12,7 @@ Required properties: Optional properties: - reset-gpio : a GPIO spec for the reset pin. If specified, it will be - reset-gpios : a GPIO spec for the reset pin. If specified, it will be deasserted before communication to the device starts. Example: Loading
Documentation/devicetree/bindings/sound/ak4118.txt 0 → 100644 +22 −0 Original line number Diff line number Diff line AK4118 S/PDIF transceiver This device supports I2C mode. Required properties: - compatible : "asahi-kasei,ak4118" - reg : The I2C address of the device for I2C - reset-gpios: A GPIO specifier for the reset pin - irq-gpios: A GPIO specifier for the IRQ pin Example: &i2c { ak4118: ak4118@13 { #sound-dai-cells = <0>; compatible = "asahi-kasei,ak4118"; reg = <0x13>; reset-gpios = <&gpio 0 GPIO_ACTIVE_LOW> irq-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>; }; };
Documentation/devicetree/bindings/sound/amlogic,axg-spdifin.txt 0 → 100644 +22 −0 Original line number Diff line number Diff line * Amlogic Audio SPDIF Input Required properties: - compatible: 'amlogic,axg-spdifin' - interrupts: interrupt specifier for the spdif input. - clocks: list of clock phandle, one for each entry clock-names. - clock-names: should contain the following: * "pclk" : peripheral clock. * "refclk" : spdif input reference clock - #sound-dai-cells: must be 0. Example on the A113 SoC: spdifin: audio-controller@400 { compatible = "amlogic,axg-spdifin"; reg = <0x0 0x400 0x0 0x30>; #sound-dai-cells = <0>; interrupts = <GIC_SPI 87 IRQ_TYPE_EDGE_RISING>; clocks = <&clkc_audio AUD_CLKID_SPDIFIN>, <&clkc_audio AUD_CLKID_SPDIFIN_CLK>; clock-names = "pclk", "refclk"; };
Documentation/devicetree/bindings/sound/audio-graph-card.txt +205 −0 Original line number Diff line number Diff line Loading @@ -32,7 +32,9 @@ Required properties: Optional properties: - pa-gpios: GPIO used to control external amplifier. ----------------------- Example: Single DAI case ----------------------- sound_card { compatible = "audio-graph-card"; Loading Loading @@ -61,7 +63,9 @@ Example: Single DAI case }; }; ----------------------- Example: Multi DAI case ----------------------- sound-card { compatible = "audio-graph-card"; Loading Loading @@ -130,3 +134,204 @@ Example: Multi DAI case }; }; ----------------------- Example: Sampling Rate Conversion ----------------------- sound_card { compatible = "audio-graph-card"; label = "sound-card"; prefix = "codec"; routing = "codec Playback", "DAI0 Playback", "DAI0 Capture", "codec Capture"; convert-rate = <48000>; dais = <&cpu_port>; }; audio-codec { ... port { codec_endpoint: endpoint { remote-endpoint = <&cpu_endpoint>; }; }; }; dai-controller { ... cpu_port: port { cpu_endpoint: endpoint { remote-endpoint = <&codec_endpoint>; dai-format = "left_j"; ... }; }; }; ----------------------- Example: 2 CPU 1 Codec (Mixing) ----------------------- sound_card { compatible = "audio-graph-card"; label = "sound-card"; routing = "codec Playback", "DAI0 Playback", "codec Playback", "DAI1 Playback", "DAI0 Capture", "codec Capture"; dais = <&cpu_port>; }; audio-codec { ... audio-graph-card,prefix = "codec"; audio-graph-card,convert-rate = <48000>; port { reg = <0>; codec_endpoint0: endpoint@0 { remote-endpoint = <&cpu_endpoint0>; }; codec_endpoint1: endpoint@1 { remote-endpoint = <&cpu_endpoint1>; }; }; }; dai-controller { ... cpu_port: port { cpu_endpoint0: endpoint@0 { remote-endpoint = <&codec_endpoint0>; dai-format = "left_j"; ... }; cpu_endpoint1: endpoint@1 { remote-endpoint = <&codec_endpoint1>; dai-format = "left_j"; ... }; }; }; ----------------------- Example: Multi DAI with DPCM ----------------------- CPU0 ------ ak4613 CPU1 ------ HDMI CPU2 ------ PCM3168A-p /* DPCM 1ch/2ch */ CPU3 --/ /* DPCM 3ch/4ch */ CPU4 --/ /* DPCM 5ch/6ch */ CPU5 --/ /* DPCM 7ch/8ch */ CPU6 ------ PCM3168A-c sound_card: sound { compatible = "audio-graph-card"; label = "sound-card"; routing = "pcm3168a Playback", "DAI2 Playback", "pcm3168a Playback", "DAI3 Playback", "pcm3168a Playback", "DAI4 Playback", "pcm3168a Playback", "DAI5 Playback"; dais = <&snd_port0 /* ak4613 */ &snd_port1 /* HDMI0 */ &snd_port2 /* pcm3168a playback */ &snd_port3 /* pcm3168a capture */ >; }; ak4613: codec@10 { ... port { ak4613_endpoint: endpoint { remote-endpoint = <&rsnd_endpoint0>; }; }; }; pcm3168a: audio-codec@44 { ... audio-graph-card,prefix = "pcm3168a"; audio-graph-card,convert-channels = <8>; /* TDM Split */ ports { port@0 { reg = <0>; pcm3168a_endpoint_p1: endpoint@1 { remote-endpoint = <&rsnd_endpoint2>; ... }; pcm3168a_endpoint_p2: endpoint@2 { remote-endpoint = <&rsnd_endpoint3>; ... }; pcm3168a_endpoint_p3: endpoint@3 { remote-endpoint = <&rsnd_endpoint4>; ... }; pcm3168a_endpoint_p4: endpoint@4 { remote-endpoint = <&rsnd_endpoint5>; ... }; }; port@1 { reg = <1>; pcm3168a_endpoint_c: endpoint { remote-endpoint = <&rsnd_endpoint6>; ... }; }; }; }; &sound { ports { snd_port0: port@0 { rsnd_endpoint0: endpoint { remote-endpoint = <&ak4613_endpoint>; ... }; }; snd_port1: port@1 { rsnd_endpoint1: endpoint { remote-endpoint = <&dw_hdmi0_snd_in>; ... }; }; snd_port2: port@2 { #address-cells = <1>; #size-cells = <0>; rsnd_endpoint2: endpoint@2 { remote-endpoint = <&pcm3168a_endpoint_p1>; ... }; rsnd_endpoint3: endpoint@3 { remote-endpoint = <&pcm3168a_endpoint_p2>; ... }; rsnd_endpoint4: endpoint@4 { remote-endpoint = <&pcm3168a_endpoint_p3>; ... }; rsnd_endpoint5: endpoint@5 { remote-endpoint = <&pcm3168a_endpoint_p4>; ... }; }; snd_port3: port@6 { rsnd_endpoint6: endpoint { remote-endpoint = <&pcm3168a_endpoint_c>; ... }; }; }; };
Documentation/devicetree/bindings/sound/audio-graph-scu-card.txt +2 −2 Original line number Diff line number Diff line Loading @@ -77,11 +77,9 @@ Example 2. 2 CPU 1 Codec (Mixing) compatible = "audio-graph-scu-card"; label = "sound-card"; prefix = "codec"; routing = "codec Playback", "DAI0 Playback", "codec Playback", "DAI1 Playback", "DAI0 Capture", "codec Capture"; convert-rate = <48000>; dais = <&cpu_port0 &cpu_port1>; Loading @@ -90,6 +88,8 @@ Example 2. 2 CPU 1 Codec (Mixing) audio-codec { ... audio-graph-card,prefix = "codec"; audio-graph-card,convert-rate = <48000>; port { codec_endpoint0: endpoint { remote-endpoint = <&cpu_endpoint0>; Loading