// SPDX-License-Identifier: GPL-2.0-only
/*
 * Google L10 touch device tree source
 *
 * Copyright 2022 Google Inc.
 *
 */

#include <dt-bindings/pinctrl/samsung.h>

&tbn {
	tbn,max_devices = <2>;
};

&spi_6 {
	status = "okay";
	dma-mode;
	dmas = <&pdma0 12 &pdma0 13>;
	swap-mode = <1> ;
};

&m_ldo25_reg {
	regulator-max-microvolt = <1800000>;
	regulator-min-microvolt = <1800000>;
	/delete-property/ regulator-always-on;
};

&m_ldo26_reg {
	regulator-min-microvolt = <3300000>;
	regulator-max-microvolt = <3300000>;
	/delete-property/ regulator-always-on;
};

&pinctrl_5 {
	ext_ts_reset: ext_ts_reset {
		samsung,pins = "gpp23-3";
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-con-pdn = <EXYNOS_PIN_PDN_PREV>;
		samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
	};
};

&pinctrl_4 {
	ext_ts_spi_bus_active: ext_ts_spi_bus_active {
		samsung,pins = "gpp12-0", "gpp12-1", "gpp12-2";
		samsung,pin-function = <3>;
		samsung,pin-pud = <0>;
		samsung,pin-drv = <GS101_PIN_DRV_5_MA>;
	};
	ext_ts_spi_cs_active: ext_ts_spi_cs_active {
		samsung,pins = "gpp12-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
		samsung,pin-pud = <0>;
		samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
	};
	ext_ts_spi_bus_sleep: ext_ts_spi_bus_sleep {
		samsung,pins = "gpp12-0", "gpp12-1";
		samsung,pin-function = <0>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
		samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
		samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
	};
	ext_ts_spi_miso_sleep: ext_ts_spi_miso_sleep {
		samsung,pins = "gpp12-2";
		samsung,pin-function = <0>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
		samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
		samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_NONE>;
	};
	ext_ts_spi_cs_sleep: ext_ts_spi_cs_sleep {
		samsung,pins = "gpp12-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
		samsung,pin-drv = <GS101_PIN_DRV_2_5_MA>;
		samsung,pin-con-pdn = <EXYNOS_PIN_PDN_INPUT>;
		samsung,pin-pud-pdn = <EXYNOS_PIN_PULL_UP>;
	};
};

&spi_6 {
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";
	pinctrl-0 = <>;
	spi6touch: touchscreen@0 {
		status = "ok";
		compatible = "st,fts";
		spi-max-frequency = <10000000>;
		pinctrl-names = "pmx_ts_active", "pmx_ts_suspend";
		pinctrl-0 = <&ext_ts_reset &ext_ts_spi_bus_active
			&ext_ts_spi_cs_active>;
		pinctrl-1 = <&ext_ts_spi_bus_sleep &ext_ts_spi_miso_sleep
			&ext_ts_spi_cs_sleep>;
		st,irq-gpio = <&gpa6 7 0>;
		st,reset-gpio = <&gpp23 3 0>;
		st,dchip_id = /bits/ 8 <0x36 0x40>;
		st,max-coords = <1079 2091>;
		st,device_name = "fts_ext"; /* device folder in /proc/ */
		st,firmware_names = "ftm5_fw_f10_ext.ftb";
		st,limits_names = "stm_fts_production_limits_f10_ext.csv";
		st,panel_map = <&samsung_ea8182_f10 0>;
		st,sensor_inverted_x;
		st,sensor_inverted_y;
		vdd-supply = <&m_ldo25_reg>;
		avdd-supply = <&m_ldo26_reg>;
		reg = <0>;
		goog,offload-device-name = "fts_ext"; /* append after "touch_offload_" */
		goog,tbn-enabled;
		goog,offload-enabled;
		goog,v4l2-enabled;
		goog,touch_offload_id = /bits/ 8 <'f''1''0''1'>; /* outer: 1; inner 0 */
		goog,display-resolution = /bits/ 16 <1079 2091>;
		goog,channel-num = /bits/ 16 <16 31>;
		goog,offload-caps-data-types = /bits/ 16 <0x1f>;
		goog,offload-caps-scan-types = /bits/ 16 <0xc0>;
		goog,default-grip-disabled;
		goog,default-palm-disabled;
		controller-data {
			cs-gpio = <&gpp12 3 0>;
			samsung,spi-feedback-delay = <1>;
			samsung,spi-chip-select-mode = <0>;
			cs-clock-delay = <2>;
		};
	};
};

