diff mbox

[v2,2/3] Documentation: of: Document audio graph bindings

Message ID 963571538ba210b4f2099949e03943ae1e9a8541.1421868426.git.moinejf@free.fr
State Needs Review / ACK, archived
Headers show

Checks

Context Check Description
robh/checkpatch warning total: 1 errors, 0 warnings, 0 lines checked
robh/patch-applied success

Commit Message

Jean-Francois Moine Jan. 21, 2015, 7:10 p.m. UTC
This patch adds a document describing common OF bindings for audio devices.

Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
---
 .../devicetree/bindings/sound/audio-interfaces.txt | 101 +++++++++++++++++++++
 1 file changed, 101 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/sound/audio-interfaces.txt
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/sound/audio-interfaces.txt b/Documentation/devicetree/bindings/sound/audio-interfaces.txt
new file mode 100644
index 0000000..4eddb3f
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/audio-interfaces.txt
@@ -0,0 +1,101 @@ 
+Common bindings for audio device graphs
+
+The graph of the audio ports follows the common binding for device graphs
+defined in Documentation/devicetree/bindings/graph.txt.
+
+Here are described only the audio specific properties.
+
+Port required properties:
+
+- port-type: "i2s" or "spdif"
+
+Port optional property:
+
+- reg: numeric value which defines how the port is wired to the device.
+	This value depends on the device. Usually, it is the content
+	of the device register which controls the audio pins.
+
+Port required nodes:
+
+- at least one 'endpoint' node must be specified.
+
+
+Example:
+
+The board contains an audio controller with two outputs:
+- the S/PDIF output is connected to two devices:
+	- a S/PDIF optical output
+	- a HDMI transmitter.
+- the I2S output is connected to an other audio input of the HDMI transmitter.
+
+	/* audio controller */
+	&audio1 {
+		status = "okay";
+		...
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* S/PDIF output */
+		port@0 {
+			port-type = "spdif";
+			audio1_spdif0: endpoint@0 {
+				remote-endpoint = <&spdif_out>;
+			};
+			audio1_spdif1: endpoint@1 {
+				remote-endpoint = <&tda998x_spdif>;
+			};
+		};
+
+		/* I2S output */
+		port@1 {
+			port-type = "i2s";
+			audio1_i2s: endpoint {
+				remote-endpoint = <&tda998x_i2s>;
+			};
+		};
+	};
+
+	/* optical output */
+	spdif_codec: spdif-codec {
+		...
+		port {
+			port-type = "spdif";
+			spdif_out: endpoint {
+				remote-endpoint = <&audio1_spdif0>;
+			};
+		};
+	};
+
+	/* HDMI transmitter */
+	hdmi: hdmi-encoder {
+		...
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* video input */
+		port@230145 {
+			port-type = "rgb";
+			reg = <0x230145>;
+			hdmi_0: endpoint {
+				remote-endpoint = <&lcd0_0>;
+			};
+		};
+
+		/* audio input I2S on AP1 */
+		port@3 {
+			port-type = "i2s";
+			reg = <0x03>;
+			tda998x_i2s: endpoint {
+				remote-endpoint = <&audio1_i2s>;
+			};
+		};
+
+		/* audio input S/PDIF on AP2 */
+		port@4 {
+			port-type = "spdif";
+			reg = <0x04>;
+			tda998x_spdif: endpoint {
+				remote-endpoint = <&audio1_spdif1>;
+			};
+		};
+	};