// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2019 BayLibre, SAS
 * Author: Neil Armstrong <narmstrong@baylibre.com>
 * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
 */

/dts-v1/;

#include "meson-g12b-w400.dtsi"
#include <dt-bindings/leds/common.h>
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>

/ {
	compatible = "azw,gsking-x", "amlogic,s922x", "amlogic,g12b";
	model = "Beelink GS-King X";

	aliases {
		rtc0 = &rtc;
		rtc1 = &vrtc;
	};

	gpio_fan: gpio-fan {
		compatible = "gpio-fan";
		gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
		/* Using Dummy Speed */
		gpio-fan,speed-map = <0 0>, <1 1>;
		#cooling-cells = <2>;
	};

	gpio-keys-polled {
		compatible = "gpio-keys-polled";
		poll-interval = <100>;

		power-button {
			label = "power";
			linux,code = <KEY_POWER>;
			gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
		};
	};

	sound {
		compatible = "amlogic,axg-sound-card";
		model = "GSKING-X";
		audio-aux-devs = <&tdmout_a>;
		audio-routing = "TDMOUT_A IN 0", "FRDDR_A OUT 1",
				"TDMOUT_A IN 1", "FRDDR_B OUT 1",
				"TDMOUT_A IN 2", "FRDDR_C OUT 1",
				"TDM_A Playback", "TDMOUT_A OUT";

		assigned-clocks = <&clkc CLKID_MPLL2>,
				  <&clkc CLKID_MPLL0>,
				  <&clkc CLKID_MPLL1>;
		assigned-clock-parents = <0>, <0>, <0>;
		assigned-clock-rates = <294912000>,
				       <270950400>,
				       <393216000>;
		status = "okay";

		dai-link-0 {
			sound-dai = <&frddr_a>;
		};

		dai-link-1 {
			sound-dai = <&frddr_b>;
		};

		dai-link-2 {
			sound-dai = <&frddr_c>;
		};

		/* 8ch hdmi interface */
		dai-link-3 {
			sound-dai = <&tdmif_a>;
			dai-format = "i2s";
			dai-tdm-slot-tx-mask-0 = <1 1>;
			dai-tdm-slot-tx-mask-1 = <1 1>;
			dai-tdm-slot-tx-mask-2 = <1 1>;
			dai-tdm-slot-tx-mask-3 = <1 1>;
			mclk-fs = <256>;

			codec {
				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>;
			};
		};

		dai-link-4 {
			sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;

			codec {
				sound-dai = <&hdmi_tx>;
			};
		};
	};
};

&arb {
	status = "okay";
};

&clkc_audio {
	status = "okay";
};

&cpu_thermal {
	trips {
		cpu_active: cpu-active {
			temperature = <70000>; /* millicelsius */
			hysteresis = <2000>; /* millicelsius */
			type = "active";
		};
	};

	cooling-maps {
		map {
			trip = <&cpu_active>;
			cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
		};
	};
};

&frddr_a {
	status = "okay";
};

&frddr_b {
	status = "okay";
};

&frddr_c {
	status = "okay";
};

&i2c3 {
	status = "okay";
	pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
	pinctrl-names = "default";

	rtc: rtc@51 {
		compatible = "nxp,pcf8563";
		reg = <0x51>;
		wakeup-source;
	};
};

&tdmif_a {
	status = "okay";
};

&tdmout_a {
	status = "okay";
};

&tohdmitx {
	status = "okay";
};
