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

#include "sc7180.dtsi"

ap_ec_spi: &spi6 {};
ap_h1_spi: &spi0 {};

#include "sc7180-trogdor.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 = "true";
};

&cpu6_alert0 {
	temperature = <60000>;
};

&cpu6_alert1 {
	temperature = <65000>;
};

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

&cpu7_alert0 {
	temperature = <60000>;
};

&cpu7_alert1 {
	temperature = <65000>;
};

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

&cpu8_alert0 {
	temperature = <60000>;
};

&cpu8_alert1 {
	temperature = <65000>;
};

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

&cpu9_alert0 {
	temperature = <60000>;
};

&cpu9_alert1 {
	temperature = <65000>;
};

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

&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 {
	5v-choke-thermistor@4e {
		reg = <ADC5_AMUX_THM2_100K_PU>;
		qcom,ratiometric;
		qcom,hw-settle-time = <200>;
	};
};

&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 {
		pinmux {
			pins = "gpio86";
			function = "gpio";
		};

		pinconf {
			pins = "gpio86";
			bias-pull-down;
		};
	};
};
