1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2016 Endless Computers, Inc.
4 * Author: Carlo Caione <carlo@endlessm.com>
5 */
6
7/dts-v1/;
8
9#include "meson-gxl-s905x-p212.dtsi"
10#include <dt-bindings/sound/meson-aiu.h>
11
12/ {
13	compatible = "amlogic,p212", "amlogic,s905x", "amlogic,meson-gxl";
14	model = "Amlogic Meson GXL (S905X) P212 Development Board";
15
16	dio2133: analog-amplifier {
17		compatible = "simple-audio-amplifier";
18		sound-name-prefix = "AU2";
19		VCC-supply = <&hdmi_5v>;
20		enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
21	};
22
23	cvbs-connector {
24		compatible = "composite-video-connector";
25
26		port {
27			cvbs_connector_in: endpoint {
28				remote-endpoint = <&cvbs_vdac_out>;
29			};
30		};
31	};
32
33	hdmi-connector {
34		compatible = "hdmi-connector";
35		type = "a";
36
37		port {
38			hdmi_connector_in: endpoint {
39				remote-endpoint = <&hdmi_tx_tmds_out>;
40			};
41		};
42	};
43
44	sound {
45		compatible = "amlogic,gx-sound-card";
46		model = "S905X-P212";
47		audio-aux-devs = <&dio2133>;
48		audio-widgets = "Line", "Lineout";
49		audio-routing = "AU2 INL", "ACODEC LOLN",
50				"AU2 INR", "ACODEC LORN",
51				"Lineout", "AU2 OUTL",
52				"Lineout", "AU2 OUTR";
53		assigned-clocks = <&clkc CLKID_MPLL0>,
54				  <&clkc CLKID_MPLL1>,
55				  <&clkc CLKID_MPLL2>;
56		assigned-clock-parents = <0>, <0>, <0>;
57		assigned-clock-rates = <294912000>,
58				       <270950400>,
59				       <393216000>;
60		dai-link-0 {
61			sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
62		};
63
64		dai-link-1 {
65			sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
66			dai-format = "i2s";
67			mclk-fs = <256>;
68
69			codec-0 {
70				sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
71			};
72
73			codec-1 {
74				sound-dai = <&aiu AIU_ACODEC CTRL_I2S>;
75			};
76		};
77
78		dai-link-2 {
79			sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
80
81			codec-0 {
82				sound-dai = <&hdmi_tx>;
83			};
84		};
85
86		dai-link-3 {
87			sound-dai = <&aiu AIU_ACODEC CTRL_OUT>;
88
89			codec-0 {
90				sound-dai = <&acodec>;
91			};
92		};
93	};
94};
95
96&acodec {
97	AVDD-supply = <&vddio_ao18>;
98	status = "okay";
99};
100
101&aiu {
102	status = "okay";
103};
104
105&cec_AO {
106	status = "okay";
107	pinctrl-0 = <&ao_cec_pins>;
108	pinctrl-names = "default";
109	hdmi-phandle = <&hdmi_tx>;
110};
111
112&cvbs_vdac_port {
113	cvbs_vdac_out: endpoint {
114		remote-endpoint = <&cvbs_connector_in>;
115	};
116};
117
118&hdmi_tx {
119	status = "okay";
120	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
121	pinctrl-names = "default";
122	hdmi-supply = <&hdmi_5v>;
123};
124
125&hdmi_tx_tmds_port {
126	hdmi_tx_tmds_out: endpoint {
127		remote-endpoint = <&hdmi_connector_in>;
128	};
129};
130
131/* This UART is brought out to the DB9 connector */
132&uart_AO {
133	status = "okay";
134};
135