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

#include "sc7180.dtsi"

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

#include "sc7180-trogdor.dtsi"

&ap_sar_sensor {
	semtech,cs0-ground;
	semtech,combined-sensors = <3>;
	semtech,resolution = "fine";
	semtech,startup-sensor = <0>;
	semtech,proxraw-strength = <8>;
	semtech,avg-pos-strength = <64>;
};

/*
 * Lazor is stuffed with a 47k NTC as charger thermistor which currently is
 * not supported by the PM6150 ADC driver. Disable the charger thermal zone
 * to avoid using bogus temperature values.
 */
&charger_thermal {
	status = "disabled";
};

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>;
	};
};

&panel {
	compatible = "boe,nv133fhm-n62";
};

&trackpad {
	interrupts = <58 IRQ_TYPE_EDGE_FALLING>;
};

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

/* PINCTRL - modifications to sc7180-trogdor.dtsi */

&trackpad_int_1v8_odl {
	pinmux {
		pins = "gpio58";
	};

	pinconf {
		pins = "gpio58";
	};
};

&ts_reset_l {
	pinconf {
		/* This pin is not connected on -rev0, pull up to park. */
		/delete-property/bias-disable;
		bias-pull-up;
	};
};

/* PINCTRL - board-specific pinctrl */

&tlmm {
	gpio-line-names = "ESIM_MISO",
			  "ESIM_MOSI",
			  "ESIM_CLK",
			  "ESIM_CS_L",
			  "",
			  "",
			  "AP_TP_I2C_SDA",
			  "AP_TP_I2C_SCL",
			  "TS_RESET_L",
			  "TS_INT_L",
			  "",
			  "EDP_BRIJ_IRQ",
			  "AP_EDP_BKLTEN",
			  "AP_RAM_ID2",
			  "",
			  "EDP_BRIJ_I2C_SDA",
			  "EDP_BRIJ_I2C_SCL",
			  "HUB_RST_L",
			  "",
			  "AP_RAM_ID1",
			  "AP_SKU_ID2",
			  "",
			  "",
			  "AMP_EN",
			  "P_SENSOR_INT_L",
			  "AP_SAR_SENSOR_SDA",
			  "AP_SAR_SENSOR_SCL",
			  "",
			  "HP_IRQ",
			  "AP_RAM_ID0",
			  "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_DIN",
			  "",
			  "HP_BCLK",
			  "HP_LRCLK",
			  "HP_DOUT",
			  "HP_DIN",
			  "HP_MCLK",
			  "TRACKPAD_INT_1V8_ODL",
			  "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",
			  "DBG_SPI_HOLD_L",
			  "AP_SPI_CS0_L",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "UIM2_DATA",
			  "UIM2_CLK",
			  "UIM2_RST",
			  "UIM2_PRESENT",
			  "UIM1_DATA",
			  "UIM1_CLK",
			  "UIM1_RST",
			  "",
			  "EN_PP3300_CODEC",
			  "EN_PP3300_HUB",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "AP_SKU_ID1",
			  "AP_RST_REQ",
			  "",
			  "AP_BRD_ID1",
			  "AP_EC_INT_L",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "EDP_BRIJ_EN",
			  "AP_SKU_ID0",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "AP_TS_PEN_I2C_SDA",
			  "AP_TS_PEN_I2C_SCL",
			  "DP_HOT_PLUG_DET",
			  "EC_IN_RW_ODL";
};
