// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright 2021 Google LLC
 */
/dts-v1/;
#include "mt8192-asurada.dtsi"
#include <dt-bindings/leds/common.h>

/ {
	model = "Google Spherion (rev0 - 3)";
	chassis-type = "laptop";
	compatible = "google,spherion-rev3", "google,spherion-rev2",
		     "google,spherion-rev1", "google,spherion-rev0",
		     "google,spherion", "mediatek,mt8192";

	pwmleds {
		compatible = "pwm-leds";

		led {
			function = LED_FUNCTION_KBD_BACKLIGHT;
			color = <LED_COLOR_ID_WHITE>;
			pwms = <&cros_ec_pwm 0>;
			max-brightness = <1023>;
		};
	};
};

&cros_ec_pwm {
	status = "okay";
};

&keyboard_controller {
	function-row-physmap = <
		MATRIX_KEY(0x00, 0x02, 0)	/* T1 */
		MATRIX_KEY(0x03, 0x02, 0)	/* T2 */
		MATRIX_KEY(0x02, 0x02, 0)	/* T3 */
		MATRIX_KEY(0x01, 0x02, 0)	/* T4 */
		MATRIX_KEY(0x03, 0x04, 0)	/* T5 */
		MATRIX_KEY(0x02, 0x04, 0)	/* T6 */
		MATRIX_KEY(0x01, 0x04, 0)	/* T7 */
		MATRIX_KEY(0x02, 0x09, 0)	/* T8 */
		MATRIX_KEY(0x01, 0x09, 0)	/* T9 */
		MATRIX_KEY(0x00, 0x04, 0)	/* T10 */
	>;
	linux,keymap = <
		MATRIX_KEY(0x00, 0x02, KEY_BACK)
		MATRIX_KEY(0x03, 0x02, KEY_REFRESH)
		MATRIX_KEY(0x02, 0x02, KEY_FULL_SCREEN)
		MATRIX_KEY(0x01, 0x02, KEY_SCALE)
		MATRIX_KEY(0x03, 0x04, KEY_SYSRQ)
		MATRIX_KEY(0x02, 0x04, KEY_BRIGHTNESSDOWN)
		MATRIX_KEY(0x01, 0x04, KEY_BRIGHTNESSUP)
		MATRIX_KEY(0x02, 0x09, KEY_MUTE)
		MATRIX_KEY(0x01, 0x09, KEY_VOLUMEDOWN)
		MATRIX_KEY(0x00, 0x04, KEY_VOLUMEUP)

		CROS_STD_MAIN_KEYMAP
	>;
};

&rt5682 {
	compatible = "realtek,rt5682i";
	realtek,btndet-delay = <16>;
	VBAT-supply = <&pp3300_ldo_z>;
};

&sound {
	compatible = "mediatek,mt8192_mt6359_rt1015p_rt5682";

	speaker-codecs {
		sound-dai = <&rt1015p>;
	};

	headset-codec {
		sound-dai = <&rt5682 0>;
	};
};

&touchscreen {
	compatible = "elan,ekth3500";
};
