// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Google Pompom board device tree source
 *
 * Copyright 2020 Google LLC.
 */

#include "sc7180-trogdor.dtsi"
/* Must come after sc7180-trogdor.dtsi to modify cros_ec */
#include <arm/cros-ec-keyboard.dtsi>
#include "sc7180-trogdor-ti-sn65dsi86.dtsi"

/ {
	thermal-zones {
		5v-choke-thermal {
			polling-delay-passive = <0>;
			polling-delay = <250>;

			thermal-sensors = <&pm6150_adc_tm 1>;

			trips {
				5v-choke-crit {
					temperature = <125000>;
					hysteresis = <1000>;
					type = "critical";
				};
			};
		};
	};
};

&alc5682 {
	realtek,dmic-clk-driving-high;
};

&ap_tp_i2c {
	status = "okay";
};

&cpu6_alert0 {
	temperature = <60000>;
};

&cpu6_alert1 {
	temperature = <65000>;
};

&cpu6_thermal {
	sustainable-power = <1124>;
};

&cpu7_alert0 {
	temperature = <60000>;
};

&cpu7_alert1 {
	temperature = <65000>;
};

&cpu7_thermal {
	sustainable-power = <1124>;
};

&cpu8_alert0 {
	temperature = <60000>;
};

&cpu8_alert1 {
	temperature = <65000>;
};

&cpu8_thermal {
	sustainable-power = <1124>;
};

&cpu9_alert0 {
	temperature = <60000>;
};

&cpu9_alert1 {
	temperature = <65000>;
};

&cpu9_thermal {
	sustainable-power = <1124>;
};

&gpio_keys {
	status = "okay";
};

ap_ts_pen_1v8: &i2c4 {
	status = "okay";
	clock-frequency = <400000>;

	ap_ts: touchscreen@10 {
		compatible = "hid-over-i2c";
		reg = <0x10>;
		pinctrl-names = "default";
		pinctrl-0 = <&ts_int_l>, <&ts_reset_l>;

		interrupt-parent = <&tlmm>;
		interrupts = <9 IRQ_TYPE_LEVEL_LOW>;

		post-power-on-delay-ms = <20>;
		hid-descr-addr = <0x0001>;

		vdd-supply = <&pp3300_ts>;
	};
};

&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_ZOOM)
		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
	>;
};

&panel {
	compatible = "kingdisplay,kd116n21-30nv-a010";
};

&pen_insert {
	/* Insert = high, eject = low */
	gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>;
};

&pm6150_adc {
	channel@4e {
		reg = <ADC5_AMUX_THM2_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time = <200>;
		label = "5v_choke_therm";
	};
};

&pm6150_adc_tm {
	status = "okay";

	5v-choke-thermistor@1 {
		reg = <1>;
		io-channels = <&pm6150_adc ADC5_AMUX_THM2_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time-us = <200>;
	};
};

&sdhc_2 {
	status = "okay";
};

&sound {
	model = "sc7180-rt5682-max98357a-2mic";
	pinctrl-names = "default";
	pinctrl-0 = <&dmic_sel>;
	dmic-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
};

&usb_c1 {
	status = "disabled";
};

&wifi {
	qcom,ath10k-calibration-variant = "GO_POMPOM";
};

/* PINCTRL - board-specific pinctrl */

&tlmm {
	gpio-line-names = "TP_INT_ODL",
			  "AP_RAM_ID0",
			  "AP_SKU_ID2",
			  "AP_RAM_ID1",
			  "",
			  "AP_RAM_ID2",
			  "AP_TP_I2C_SDA",
			  "AP_TP_I2C_SCL",
			  "TS_RESET_L",
			  "TS_INT_L",
			  "",
			  "EDP_BRIJ_IRQ",
			  "AP_EDP_BKLTEN",
			  "",
			  "",
			  "EDP_BRIJ_I2C_SDA",
			  "EDP_BRIJ_I2C_SCL",
			  "HUB_RST_L",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "AMP_EN",
			  "P_SENSOR_INT_L",
			  "AP_SAR_SENSOR_SDA",
			  "AP_SAR_SENSOR_SCL",
			  "",
			  "HP_IRQ",
			  "",
			  "EN_PP3300_DX_EDP",
			  "AP_BRD_ID2",
			  "BRIJ_SUSPEND",
			  "AP_BRD_ID0",
			  "AP_H1_SPI_MISO",
			  "AP_H1_SPI_MOSI",
			  "AP_H1_SPI_CLK",
			  "AP_H1_SPI_CS_L",
			  "",
			  "",
			  "",
			  "",
			  "H1_AP_INT_ODL",
			  "",
			  "UART_AP_TX_DBG_RX",
			  "UART_DBG_TX_AP_RX",
			  "HP_I2C_SDA",
			  "HP_I2C_SCL",
			  "FORCED_USB_BOOT",
			  "AMP_BCLK",
			  "AMP_LRCLK",
			  "AMP_DIN",
			  "PEN_PDCT_L",
			  "HP_BCLK",
			  "HP_LRCLK",
			  "HP_DOUT",
			  "HP_DIN",
			  "HP_MCLK",
			  "AP_SKU_ID0",
			  "AP_EC_SPI_MISO",
			  "AP_EC_SPI_MOSI",
			  "AP_EC_SPI_CLK",
			  "AP_EC_SPI_CS_L",
			  "AP_SPI_CLK",
			  "AP_SPI_MOSI",
			  "AP_SPI_MISO",
			  /*
			   * AP_FLASH_WP_L is crossystem ABI. Schematics
			   * call it BIOS_FLASH_WP_L.
			   */
			  "AP_FLASH_WP_L",
			  "",
			  "AP_SPI_CS0_L",
			  "SD_CD_ODL",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "UIM2_DATA",
			  "UIM2_CLK",
			  "UIM2_RST",
			  "UIM2_PRESENT",
			  "UIM1_DATA",
			  "UIM1_CLK",
			  "UIM1_RST",
			  "",
			  "EN_PP3300_CODEC",
			  "EN_PP3300_HUB",
			  "",
			  "DMIC_SEL",
			  "",
			  "",
			  "",
			  "AP_SKU_ID1",
			  "AP_RST_REQ",
			  "",
			  "AP_BRD_ID1",
			  "AP_EC_INT_R_L",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "EDP_BRIJ_EN",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "AP_TS_PEN_I2C_SDA",
			  "AP_TS_PEN_I2C_SCL",
			  "DP_HOT_PLUG_DET",
			  "EC_IN_RW_ODL";

	dmic_sel: dmic-sel-state {
		pins = "gpio86";
		function = "gpio";
		bias-pull-down;
	};
};