// SPDX-License-Identifier: (GPL-2.0 OR MIT) /* * Copyright (C) 2020 MediaTek Inc. */ /* TOUCH start */ &i2c0 { #address-cells = <1>; #size-cells = <0>; clock-frequency = <400000>; pinctrl-names = "default", "ts_int_active", "ts_reset_active", "ts_int_suspend", "ts_reset_suspend", "ts_i2c_mode", "synaptics_default", "pmx_ts_active", "pmx_ts_suspend", "pmx_ts_i2c_mode"; pinctrl-0 = <&ctp_pins_default>; pinctrl-1 = <&ctp_ts_int_active>; pinctrl-2 = <&ctp_ts_reset_active>; pinctrl-3 = <&ctp_ts_int_suspend>; pinctrl-4 = <&ctp_ts_reset_suspend>; pinctrl-5 = <&ctp_ts_i2c_mode>; pinctrl-6 = <&ctp_synaptics_pins_default>; pinctrl-7 = <&ts_active>; pinctrl-8 = <&ts_suspend>; pinctrl-9 = <&ts_i2c_mode>; gt9886@5d { compatible = "goodix,gt9886"; reg = <0x5d>; status = "ok"; interrupt-parent = <&pio>; interrupts = <8 IRQ_TYPE_EDGE_FALLING 8 0>; vtouch-supply = <&mt6373_vtp>; goodix,reset-gpio = <&pio 3 0x0>; goodix,irq-gpio = <&pio 8 0x0>; goodix,irq-flags = <2>; /* 1:rising, 2:falling;*/ goodix,panel-max-id = <10>; goodix,panel-max-x = <1080>; goodix,panel-max-y = <2340>; goodix,panel-max-w = <256>; goodix,panel-max-p = <256>; goodix,input-max-x = <1080>; goodix,input-max-y = <2340>; goodix,panel-key-map = <158 172 217>; /*BACK,HOMEPAGE,SEARCH*/ goodix,power-on-delay-us = <10000>; /*10ms*/ goodix,power-off-delay-us = <5000>; goodix,firmware-version = "6885af"; goodix,config-version = "90hz6885"; /*goodix,swap-axis;*/ /*goodix,x2x;*/ /*goodix,y2y;*/ goodix,pen-enable; goodix,key-of-pen = <331 332>;/*BTN_STYLUS, BTN_STYLUS2*/ tpd-filter-enable = <0>; tpd-filter-pixel-density = <161>; tpd-filter-custom-prameters = <0 0 0 0 0 0 0 0 0 0 0 0>; tpd-filter-custom-speed = <0 0 0>; }; synaptics_tcm@4b { compatible = "synaptics,tcm-i2c"; status = "ok"; reg = <0x4b>; interrupt-parent = <&pio>; interrupts = <8 IRQ_TYPE_EDGE_FALLING 8 0>; //synaptics,bus-reg-name = "vdd"; //vdd-supply = <&mt6373_vtp>; synaptics,pwr-reg-name = "vtouch"; vtouch-supply = <&mt6373_vtp>; synaptics,irq-gpio = <&pio 8 0x2008>; synaptics,reset-gpio = <&pio 3 0x0>; synaptics,irq-on-state = <0>; synaptics,reset-on-state = <0>; synaptics,reset-active-ms = <20>; synaptics,reset-delay-ms = <200>; synaptics,power-delay-ms = <200>; synaptics,ubl-i2c-addr = <0x4b>; /* tp-io reset is only used for specific tddi devices */ /* synaptics,tpio-reset-gpio = <&msm_gpio 102 0>; */ }; }; &spi6 { status = "okay"; #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default", "gt9896s_int_active", "gt9896s_reset_active", "gt9896s_int_suspend", "gt9896s_reset_suspend", "gt9896s_spi_mode", "pmx_ts_int_active", "pmx_ts_rst_active", "pmx_ts_int_suspend", "pmx_ts_rst_suspend", "pmx_ts_release", "ft3518u_spi_mode"; pinctrl-0 = <&ctp_gt9896s_pins_default>; pinctrl-1 = <&ctp_gt9896s_int_active>; pinctrl-2 = <&ctp_gt9896s_reset_active>; pinctrl-3 = <&ctp_gt9896s_int_suspend>; pinctrl-4 = <&ctp_gt9896s_reset_suspend>; pinctrl-5 = <&ctp_gt9896s_spi_mode>; pinctrl-6 = <&ts_int_active>; pinctrl-7 = <&ts_reset_active>; pinctrl-8 = <&ts_int_suspend>; pinctrl-9 = <&ts_reset_suspend>; pinctrl-10 = <&ts_release>; pinctrl-11 = <&ts_spi_mode>; goodix@0 { compatible = "novatek,NVT-ts-spi", "goodix,gt9896s", "goodix,nottingham", "focaltech,fts", "st,spi"; reg = <0>; //Same as CS ID spi-max-frequency = <1000000>; pinctrl-names = "pmx_ts_active", "pmx_ts_suspend", "pmx_ts_spi_mode", "pmx_ts_dvdd_enable", "pmx_ts_dvdd_disable"; pinctrl-0 = <&ts_st_reset_active &ts_st_int_active>; pinctrl-1 = <&ts_st_int_suspend &ts_st_reset_suspend>; pinctrl-2 = <&ts_st_spi_mode>; pinctrl-3 = <&ts_dvdd_enable>; pinctrl-4 = <&ts_dvdd_disable>; goodix,avdd-name = "vtouch"; vtouch-supply = <&mt6373_vtp>; goodix,reset-gpio = <&pio 3 0x0>; goodix,irq-gpio = <&pio 8 0x0>; novatek,reset-gpio = <&pio 3 0x00>; novatek,irq-gpio = <&pio 8 0x00>; // 525 //novatek,swrst-n8-addr = <0x01f01a>; // 672a, 525b, 675, 526 novatek,swrst-n8-addr = <0x03f0fe>; novatek,spi-rd-fast-addr = <0x03f310>; goodix,irq-flags = <2>; /* 1:rising, 2:falling;*/ goodix,panel-max-id = <10>; goodix,panel-max-x = <1080>; goodix,panel-max-y = <2400>; goodix,panel-max-w = <256>; goodix,panel-max-p = <256>; goodix,input-max-x = <1080>; goodix,input-max-y = <2400>; gt9895,power-voltage = <2800000>; goodix,panel-key-map = <158 172 217>; /*BACK,HOMEPAGE,SEARCH*/ goodix,power-on-delay-us = <10000>; /*10ms*/ goodix,power-off-delay-us = <5000>; gt9895,firmware-name = "gt9895_firmware_6985v01.bin"; gt9895,config-name = "gt9895_cfg_6985v01.bin"; goodix,firmware-version = "6983v04"; goodix,config-version = "6983v04"; /*goodix,swap-axis;*/ /*gt9895,x2x;*/ /*gt9895,y2y;*/ /*goodix,x2x;*/ /*goodix,y2y;*/ goodix,pen-enable; tpd-filter-enable = <0>; tpd-filter-pixel-density = <161>; tpd-filter-custom-prameters = <0 0 0 0 0 0 0 0 0 0 0 0>; tpd-filter-custom-speed = <0 0 0>; focaltech,reset-gpio = <&pio 3 0x0>; focaltech,irq-gpio = <&pio 8 0x0>; focaltech,max-touch-number = <10>; focaltech,display-coords = <0 0 1080 2400>; interrupt-parent = <&pio>; interrupts = <8 0x2008>; avdd-supply = <&mt6373_vtp>; fts,config-array-size = <1>; fts,pwr-reg-name = "avdd"; //fts,bus-reg-name = "vdd"; fts,irq-gpio = <&pio 8 0x0>; fts,irq-gpio-name = "fts_irq"; fts,reset-gpio-enable; fts,reset-gpio = <&pio 3 0x0>; fts,reset-gpio-name = "fts_rst"; fts,irq-flags = <0x2008>;/* 1:rising, 2:falling;*/ fts,x-max = <14400>;/*Super resolution*/ fts,y-max = <32000>;/*Super resolution*/ fts,screen-x = <1440>; fts,screen-y = <3200>; //fts,fod-lx = <4180>; //fts,fod-ly = <16810>; fts,support-super-resolution = <1>; //spi-max-frequency = <12000000>; fts,default-fw-name = "st_fts_L11a.ftb"; fts,old-fw-name = "st_fts_L11.ftb"; fts,thp-fw-name = "st_fts_L11a_thp.ftb"; /* fts,touch-up-threshold-min = <40>; */ /* fts,touch-up-threshold-max = <120>; */ /* fts,touch-up-threshold-def = <80>; */ /* fts,touch-tolerance-min = <5>; */ /* fts,touch-tolerance-max = <35>; */ /* fts,touch-tolerance-def = <25>;*/ fts,touch-follow-performance-def = <3>; fts,touch-tap-sensitivity-def = <4>; fts,touch-aim-sensitivity-def = <3>; fts,touch-tap-stability-def = <3>; fts,cornerfilter-area-step1 = <100>; fts,cornerfilter-area-step2 = <170>; fts,cornerfilter-area-step3 = <250>; fts,touch-deadzone-filter-ver = <2 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 2 2 0 0 0 2399 0 0 2 3 1079 0 1079 2399 0 0>; fts,touch-deadzone-filter-hor = <2 0 0 0 1079 0 0 0 2 1 0 2399 1079 2399 0 0 2 2 0 0 0 2399 0 0 2 3 1079 0 1079 2399 0 0>; fts,touch-edgezone-filter-ver = <1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 2 0 0 40 2339 0 0 1 3 1039 0 1079 2339 0 0>; fts,touch-edgezone-filter-hor = <1 0 0 0 1079 40 0 0 1 1 0 2359 1079 2399 0 0 1 2 0 0 40 2399 0 0 1 3 1039 0 1079 2399 0 0>; fts,touch-cornerzone-filter-ver = <0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 0 2099 150 2399 0 0 0 3 929 2099 1079 2399 0 0>; fts,touch-cornerzone-filter-hor1 = <0 0 0 0 170 170 0 0 0 1 0 0 0 0 0 0 0 2 0 2229 170 2399 0 0 0 3 0 0 0 0 0 0>; fts,touch-cornerzone-filter-hor2 = <0 0 0 0 0 0 0 0 0 1 909 0 1079 170 0 0 0 2 0 0 0 0 0 0 0 3 909 2229 1079 2399 0 0>; fts,touch-follow-performance = <10 15 1 8 15 1 6 15 1 4 15 1 2 15 1>; fts,touch-tap-sensitivity = <150 140 130 120 110>; fts,touch-aim-sensitivity = <8 6 5 3 2>; fts,touch-tap-stability = <8 12 15 18 25>; fts,touch-expert-array = <2 15 1 120 3 15 4 15 1 120 2 15 6 15 1 120 5 15>; fts,cfg { fts,tp-vendor = <0x38>; fts,tp-color = <0x32>; fts,fw-name = "st_fts_L11a.ftb"; fts,old-fw-name = "st_fts_L11.ftb"; fts,limit-name = "stm_fts_production_limits.csv"; }; }; }; &mt6373_vtp { regulator-boot-on; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <3300000>; }; &pio { ctp_pins_default: eint-default { }; ctp_gt9896s_pins_default: pins-default { }; ctp_ts_int_active: int-active { pins-cmd-dat { pinmux = ; input-enable; }; }; ctp_ts_reset_active: reset-active { pins-cmd-dat { pinmux = ; output-high; }; }; ctp_ts_int_suspend: int-suspend { pins-cmd-dat { pinmux = ; output-low; }; }; ctp_ts_reset_suspend: reset-suspend { pins-cmd-dat { pinmux = ; output-low; }; }; ctp_ts_i2c_mode: i2cmode-default { pins-cmd-dat { pinmux = , ; }; }; ctp_gt9896s_int_active: int1-active { pins-cmd-dat { pinmux = ; input-enable; }; }; ctp_gt9896s_reset_active: reset1-active { pins-cmd-dat { pinmux = ; output-high; }; }; ctp_gt9896s_int_suspend: int1-suspend { pins-cmd-dat { pinmux = ; output-low; }; }; ctp_gt9896s_reset_suspend: reset1-suspend { pins-cmd-dat { pinmux = ; output-low; }; }; ctp_gt9896s_spi_mode: spimode-default { pins-cmd-dat { pinmux = , , , ; drive-strength = <2>; }; }; ts_int_active: ts-int-active { pins-cmd-dat { pinmux = ; input-enable; }; }; ts_reset_active: ts-reset-active { pins-cmd-dat { pinmux = ; output-high; }; }; ts_int_suspend: ts-int-suspend { pins-cmd-dat { pinmux = ; output-low; }; }; ts_reset_suspend: ts-reset-suspend { pins-cmd-dat { pinmux = ; output-low; }; }; ts_release: ts-release { }; ts_spi_mode: spimode-ftdefault { pins-cmd-dat { pinmux = , , , ; drive-strength = <2>; }; }; ctp_synaptics_pins_default: synapins-default { }; ts_active: ts-active1 { pins-cmd-dat { pinmux = ; slew-rate = <1>; output-low; }; }; ts_suspend: ts-suspend1 { pins-cmd-dat { pinmux = ; slew-rate = <1>; output-low; }; }; ts_i2c_mode: synai2cmode-default { pins-cmd-dat { pinmux = , ; }; }; ts_st_reset_active: ts-st-reset-active { pins-cmd-dat { pinmux = ; output-high; }; }; ts_st_int_active: ts-st-int-active { pins-cmd-dat { pinmux = ; input-enable; }; }; ts_st_int_suspend: ts-st-int-suspend { pins-cmd-dat { pinmux = ; slew-rate = <1>; bias-pull-down; }; }; ts_st_reset_suspend: ts-st-reset-suspend { pins-cmd-dat { pinmux = ; slew-rate = <1>; bias-pull-down; }; }; ts_st_spi_mode: ts-spimode { pins-cmd-dat { pinmux = , , , ; drive-strength = <2>; }; }; ts_dvdd_enable: ts-dvddenable { pins-cmd-dat { pinmux = ; output-high; }; }; ts_dvdd_disable: ts-dvdddisable { pins-cmd-dat { pinmux = ; output-low; }; }; }; &odm { tc8_touch: tc8-touch { compatible = "tc8sp-touch"; status = "ok"; touch,name = "tc8sp-touch"; }; }; /* TOUCH end */