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

/* This file must be included after sc7180-trogdor.dtsi */
#include <arm/cros-ec-keyboard.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>;
};

&ap_tp_i2c {
	status = "okay";
};

/*
 * 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>;

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

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

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

&pm6150_adc {
	/delete-node/ channel@4f;
};

&pm6150_adc_tm {
	status = "disabled";

	/delete-node/ charger-thermistor@0;
};

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

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

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

&trackpad_int_1v8_odl {
	pins = "gpio58";
};

&ts_reset_l {
	/* 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";
};
