1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2019 BayLibre, SAS
4 * Author: Neil Armstrong <narmstrong@baylibre.com>
5 * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
6 */
7
8/dts-v1/;
9
10#include "meson-g12b-w400.dtsi"
11#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
12
13/ {
14	compatible = "azw,gtking", "amlogic,g12b";
15	model = "Beelink GT-King Pro";
16
17	gpio-keys-polled {
18		compatible = "gpio-keys-polled";
19		#address-cells = <1>;
20		#size-cells = <0>;
21		poll-interval = <100>;
22
23		power-button {
24			label = "power";
25			linux,code = <KEY_POWER>;
26			gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
27		};
28	};
29
30	leds {
31		compatible = "gpio-leds";
32
33		white {
34			label = "power:white";
35			gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>;
36			default-state = "on";
37		};
38	};
39
40	sound {
41		compatible = "amlogic,axg-sound-card";
42		model = "G12B-GTKING-PRO";
43		audio-aux-devs = <&tdmout_b>;
44		audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
45				"TDMOUT_B IN 1", "FRDDR_B OUT 1",
46				"TDMOUT_B IN 2", "FRDDR_C OUT 1",
47				"TDM_B Playback", "TDMOUT_B OUT";
48
49		assigned-clocks = <&clkc CLKID_MPLL2>,
50				  <&clkc CLKID_MPLL0>,
51				  <&clkc CLKID_MPLL1>;
52		assigned-clock-parents = <0>, <0>, <0>;
53		assigned-clock-rates = <294912000>,
54				       <270950400>,
55				       <393216000>;
56		status = "okay";
57
58		dai-link-0 {
59			sound-dai = <&frddr_a>;
60		};
61
62		dai-link-1 {
63			sound-dai = <&frddr_b>;
64		};
65
66		dai-link-2 {
67			sound-dai = <&frddr_c>;
68		};
69
70		/* 8ch hdmi interface */
71		dai-link-3 {
72			sound-dai = <&tdmif_b>;
73			dai-format = "i2s";
74			dai-tdm-slot-tx-mask-0 = <1 1>;
75			dai-tdm-slot-tx-mask-1 = <1 1>;
76			dai-tdm-slot-tx-mask-2 = <1 1>;
77			dai-tdm-slot-tx-mask-3 = <1 1>;
78			mclk-fs = <256>;
79
80			codec {
81				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
82			};
83		};
84
85		dai-link-4 {
86			sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
87
88			codec {
89				sound-dai = <&hdmi_tx>;
90			};
91		};
92	};
93};
94
95&arb {
96	status = "okay";
97};
98
99&clkc_audio {
100	status = "okay";
101};
102
103&frddr_a {
104	status = "okay";
105};
106
107&frddr_b {
108	status = "okay";
109};
110
111&frddr_c {
112	status = "okay";
113};
114
115&tdmif_b {
116	status = "okay";
117};
118
119&tdmout_b {
120	status = "okay";
121};
122
123&tohdmitx {
124	status = "okay";
125};
126