13b44738eSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 23b44738eSKrzysztof Kozlowski%YAML 1.2 33b44738eSKrzysztof Kozlowski--- 43b44738eSKrzysztof Kozlowski$id: http://devicetree.org/schemas/input/syna,rmi4.yaml# 53b44738eSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 63b44738eSKrzysztof Kozlowski 73b44738eSKrzysztof Kozlowskititle: Synaptics RMI4 compliant devices 83b44738eSKrzysztof Kozlowski 93b44738eSKrzysztof Kozlowskimaintainers: 103b44738eSKrzysztof Kozlowski - Jason A. Donenfeld <Jason@zx2c4.com> 113b44738eSKrzysztof Kozlowski - Matthias Schiffer <matthias.schiffer@ew.tq-group.com 123b44738eSKrzysztof Kozlowski - Vincent Huang <vincent.huang@tw.synaptics.com> 133b44738eSKrzysztof Kozlowski 143b44738eSKrzysztof Kozlowskidescription: | 153b44738eSKrzysztof Kozlowski The Synaptics RMI4 (Register Mapped Interface 4) core is able to support RMI4 163b44738eSKrzysztof Kozlowski devices using different transports (I2C, SPI) and different functions (e.g. 173b44738eSKrzysztof Kozlowski Function 1, 2D sensors using Function 11 or 12). 183b44738eSKrzysztof Kozlowski 193b44738eSKrzysztof Kozlowskiproperties: 203b44738eSKrzysztof Kozlowski compatible: 213b44738eSKrzysztof Kozlowski enum: 223b44738eSKrzysztof Kozlowski - syna,rmi4-i2c 233b44738eSKrzysztof Kozlowski - syna,rmi4-spi 243b44738eSKrzysztof Kozlowski 253b44738eSKrzysztof Kozlowski reg: 263b44738eSKrzysztof Kozlowski maxItems: 1 273b44738eSKrzysztof Kozlowski 283b44738eSKrzysztof Kozlowski '#address-cells': 293b44738eSKrzysztof Kozlowski const: 1 303b44738eSKrzysztof Kozlowski 313b44738eSKrzysztof Kozlowski '#size-cells': 323b44738eSKrzysztof Kozlowski const: 0 333b44738eSKrzysztof Kozlowski 343b44738eSKrzysztof Kozlowski interrupts: 353b44738eSKrzysztof Kozlowski maxItems: 1 363b44738eSKrzysztof Kozlowski 373b44738eSKrzysztof Kozlowski reset-gpios: 383b44738eSKrzysztof Kozlowski maxItems: 1 393b44738eSKrzysztof Kozlowski description: Active low signal 403b44738eSKrzysztof Kozlowski 413b44738eSKrzysztof Kozlowski spi-cpha: true 423b44738eSKrzysztof Kozlowski spi-cpol: true 433b44738eSKrzysztof Kozlowski 443b44738eSKrzysztof Kozlowski syna,reset-delay-ms: 453b44738eSKrzysztof Kozlowski description: 463b44738eSKrzysztof Kozlowski Delay to wait after resetting the device. 473b44738eSKrzysztof Kozlowski 483b44738eSKrzysztof Kozlowski syna,startup-delay-ms: 493b44738eSKrzysztof Kozlowski description: 503b44738eSKrzysztof Kozlowski Delay to wait after powering on the device. 513b44738eSKrzysztof Kozlowski 523b44738eSKrzysztof Kozlowski vdd-supply: true 533b44738eSKrzysztof Kozlowski vio-supply: true 543b44738eSKrzysztof Kozlowski 553b44738eSKrzysztof Kozlowski rmi4-f01@1: 563b44738eSKrzysztof Kozlowski type: object 573b44738eSKrzysztof Kozlowski additionalProperties: false 583b44738eSKrzysztof Kozlowski description: 593b44738eSKrzysztof Kozlowski Function 1 603b44738eSKrzysztof Kozlowski 613b44738eSKrzysztof Kozlowski properties: 623b44738eSKrzysztof Kozlowski reg: 633b44738eSKrzysztof Kozlowski maxItems: 1 643b44738eSKrzysztof Kozlowski 653b44738eSKrzysztof Kozlowski syna,nosleep-mode: 663b44738eSKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32 673b44738eSKrzysztof Kozlowski enum: [0, 1, 2] 683b44738eSKrzysztof Kozlowski description: 693b44738eSKrzysztof Kozlowski If set the device will run at full power without sleeping. nosleep 703b44738eSKrzysztof Kozlowski has 3 modes, 0 will not change the default setting, 1 will disable 713b44738eSKrzysztof Kozlowski nosleep (allow sleeping), and 2 will enable nosleep (disabling 723b44738eSKrzysztof Kozlowski sleep). 733b44738eSKrzysztof Kozlowski 743b44738eSKrzysztof Kozlowski syna,wakeup-threshold: 753b44738eSKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32 763b44738eSKrzysztof Kozlowski description: 773b44738eSKrzysztof Kozlowski Defines the amplitude of the disturbance to the background 783b44738eSKrzysztof Kozlowski capacitance that will cause the device to wake from dozing. 793b44738eSKrzysztof Kozlowski 803b44738eSKrzysztof Kozlowski syna,doze-holdoff-ms: 813b44738eSKrzysztof Kozlowski description: 823b44738eSKrzysztof Kozlowski The delay to wait after the last finger lift and the first doze 833b44738eSKrzysztof Kozlowski cycle. 843b44738eSKrzysztof Kozlowski 853b44738eSKrzysztof Kozlowski syna,doze-interval-ms: 863b44738eSKrzysztof Kozlowski description: 873b44738eSKrzysztof Kozlowski The time period that the device sleeps between finger activity. 883b44738eSKrzysztof Kozlowski 893b44738eSKrzysztof Kozlowski required: 903b44738eSKrzysztof Kozlowski - reg 913b44738eSKrzysztof Kozlowski 92*0da89595SAndré Apitzsch rmi4-f1a@1a: 93*0da89595SAndré Apitzsch type: object 94*0da89595SAndré Apitzsch additionalProperties: false 95*0da89595SAndré Apitzsch $ref: input.yaml# 96*0da89595SAndré Apitzsch description: 97*0da89595SAndré Apitzsch RMI4 Function 1A is for capacitive keys. 98*0da89595SAndré Apitzsch 99*0da89595SAndré Apitzsch properties: 100*0da89595SAndré Apitzsch reg: 101*0da89595SAndré Apitzsch maxItems: 1 102*0da89595SAndré Apitzsch 103*0da89595SAndré Apitzsch linux,keycodes: 104*0da89595SAndré Apitzsch minItems: 1 105*0da89595SAndré Apitzsch maxItems: 4 106*0da89595SAndré Apitzsch 107*0da89595SAndré Apitzsch required: 108*0da89595SAndré Apitzsch - reg 109*0da89595SAndré Apitzsch 1103b44738eSKrzysztof KozlowskipatternProperties: 1113b44738eSKrzysztof Kozlowski "^rmi4-f1[12]@1[12]$": 1123b44738eSKrzysztof Kozlowski type: object 1133b44738eSKrzysztof Kozlowski unevaluatedProperties: false 1143b44738eSKrzysztof Kozlowski $ref: /schemas/input/touchscreen/touchscreen.yaml# 1153b44738eSKrzysztof Kozlowski description: 1163b44738eSKrzysztof Kozlowski RMI4 Function 11 and Function 12 are for 2D touch position sensing. 1173b44738eSKrzysztof Kozlowski 1183b44738eSKrzysztof Kozlowski properties: 1193b44738eSKrzysztof Kozlowski reg: 1203b44738eSKrzysztof Kozlowski maxItems: 1 1213b44738eSKrzysztof Kozlowski 1223b44738eSKrzysztof Kozlowski syna,clip-x-low: 1233b44738eSKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32 1243b44738eSKrzysztof Kozlowski description: 1253b44738eSKrzysztof Kozlowski Minimum value for X. 1263b44738eSKrzysztof Kozlowski 1273b44738eSKrzysztof Kozlowski syna,clip-y-low: 1283b44738eSKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32 1293b44738eSKrzysztof Kozlowski description: 1303b44738eSKrzysztof Kozlowski Minimum value for Y. 1313b44738eSKrzysztof Kozlowski 1323b44738eSKrzysztof Kozlowski syna,clip-x-high: 1333b44738eSKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32 1343b44738eSKrzysztof Kozlowski description: 1353b44738eSKrzysztof Kozlowski Maximum value for X. 1363b44738eSKrzysztof Kozlowski 1373b44738eSKrzysztof Kozlowski syna,clip-y-high: 1383b44738eSKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32 1393b44738eSKrzysztof Kozlowski description: 1403b44738eSKrzysztof Kozlowski Maximum value for Y. 1413b44738eSKrzysztof Kozlowski 1423b44738eSKrzysztof Kozlowski syna,offset-x: 1433b44738eSKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32 1443b44738eSKrzysztof Kozlowski description: 1453b44738eSKrzysztof Kozlowski Add an offset to X. 1463b44738eSKrzysztof Kozlowski 1473b44738eSKrzysztof Kozlowski syna,offset-y: 1483b44738eSKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32 1493b44738eSKrzysztof Kozlowski description: 1503b44738eSKrzysztof Kozlowski Add an offset to Y. 1513b44738eSKrzysztof Kozlowski 1523b44738eSKrzysztof Kozlowski syna,delta-x-threshold: 1533b44738eSKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32 1543b44738eSKrzysztof Kozlowski description: 1553b44738eSKrzysztof Kozlowski Minimum distance on the X axis required to generate an interrupt in 1563b44738eSKrzysztof Kozlowski reduced reporting mode. 1573b44738eSKrzysztof Kozlowski 1583b44738eSKrzysztof Kozlowski syna,delta-y-threshold: 1593b44738eSKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32 1603b44738eSKrzysztof Kozlowski description: 1613b44738eSKrzysztof Kozlowski Minimum distance on the Y axis required to generate an interrupt in 1623b44738eSKrzysztof Kozlowski reduced reporting mode. 1633b44738eSKrzysztof Kozlowski 1643b44738eSKrzysztof Kozlowski syna,sensor-type: 1653b44738eSKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32 1663b44738eSKrzysztof Kozlowski enum: [1, 2] 1673b44738eSKrzysztof Kozlowski description: | 1683b44738eSKrzysztof Kozlowski Sensor type: 1 for touchscreen 2 for touchpad. 1693b44738eSKrzysztof Kozlowski 1703b44738eSKrzysztof Kozlowski syna,disable-report-mask: 1713b44738eSKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/uint32 1723b44738eSKrzysztof Kozlowski description: 1733b44738eSKrzysztof Kozlowski Mask for disabling posiiton reporting. Used to disable reporing 1743b44738eSKrzysztof Kozlowski absolute position data. 1753b44738eSKrzysztof Kozlowski 1763b44738eSKrzysztof Kozlowski syna,rezero-wait-ms: 1773b44738eSKrzysztof Kozlowski description: 1783b44738eSKrzysztof Kozlowski Time to wait after issuing a rezero command. 1793b44738eSKrzysztof Kozlowski 1803b44738eSKrzysztof Kozlowski required: 1813b44738eSKrzysztof Kozlowski - reg 1823b44738eSKrzysztof Kozlowski 1833b44738eSKrzysztof Kozlowski "^rmi4-f[0-9a-f]+@[0-9a-f]+$": 1843b44738eSKrzysztof Kozlowski type: object 185a9f32acfSRob Herring additionalProperties: true 186a9f32acfSRob Herring 1873b44738eSKrzysztof Kozlowski description: 1883b44738eSKrzysztof Kozlowski Other functions, not documented yet. 1893b44738eSKrzysztof Kozlowski 1903b44738eSKrzysztof Kozlowski properties: 1913b44738eSKrzysztof Kozlowski reg: 1923b44738eSKrzysztof Kozlowski maxItems: 1 1933b44738eSKrzysztof Kozlowski 1943b44738eSKrzysztof Kozlowski required: 1953b44738eSKrzysztof Kozlowski - reg 1963b44738eSKrzysztof Kozlowski 1973b44738eSKrzysztof Kozlowskirequired: 1983b44738eSKrzysztof Kozlowski - compatible 1993b44738eSKrzysztof Kozlowski - reg 2003b44738eSKrzysztof Kozlowski 2013b44738eSKrzysztof KozlowskiunevaluatedProperties: false 2023b44738eSKrzysztof Kozlowski 2033b44738eSKrzysztof KozlowskiallOf: 2043b44738eSKrzysztof Kozlowski - $ref: /schemas/spi/spi-peripheral-props.yaml# 2053b44738eSKrzysztof Kozlowski 2063b44738eSKrzysztof Kozlowski - if: 2073b44738eSKrzysztof Kozlowski properties: 2083b44738eSKrzysztof Kozlowski compatible: 2093b44738eSKrzysztof Kozlowski contains: 2103b44738eSKrzysztof Kozlowski const: syna,rmi4-i2c 2113b44738eSKrzysztof Kozlowski then: 2123b44738eSKrzysztof Kozlowski properties: 2133b44738eSKrzysztof Kozlowski spi-rx-delay-us: false 2143b44738eSKrzysztof Kozlowski spi-tx-delay-us: false 2153b44738eSKrzysztof Kozlowski else: 2163b44738eSKrzysztof Kozlowski properties: 2173b44738eSKrzysztof Kozlowski syna,reset-delay-ms: false 2183b44738eSKrzysztof Kozlowski syna,startup-delay-ms: false 2193b44738eSKrzysztof Kozlowski 2203b44738eSKrzysztof Kozlowskiexamples: 2213b44738eSKrzysztof Kozlowski - | 222*0da89595SAndré Apitzsch #include <dt-bindings/input/linux-event-codes.h> 2233b44738eSKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/irq.h> 2243b44738eSKrzysztof Kozlowski 2253b44738eSKrzysztof Kozlowski i2c { 2263b44738eSKrzysztof Kozlowski #address-cells = <1>; 2273b44738eSKrzysztof Kozlowski #size-cells = <0>; 2283b44738eSKrzysztof Kozlowski 2293b44738eSKrzysztof Kozlowski touchscreen@20 { 2303b44738eSKrzysztof Kozlowski compatible = "syna,rmi4-i2c"; 2313b44738eSKrzysztof Kozlowski reg = <0x20>; 2323b44738eSKrzysztof Kozlowski interrupt-parent = <&gpx1>; 2333b44738eSKrzysztof Kozlowski interrupts = <6 IRQ_TYPE_EDGE_FALLING>; 2343b44738eSKrzysztof Kozlowski 2353b44738eSKrzysztof Kozlowski syna,startup-delay-ms = <100>; 2363b44738eSKrzysztof Kozlowski vdd-supply = <&tsp_vdd>; 2373b44738eSKrzysztof Kozlowski vio-supply = <&ldo32_reg>; 2383b44738eSKrzysztof Kozlowski 2393b44738eSKrzysztof Kozlowski pinctrl-0 = <&touch_irq>; 2403b44738eSKrzysztof Kozlowski pinctrl-names = "default"; 2413b44738eSKrzysztof Kozlowski #address-cells = <1>; 2423b44738eSKrzysztof Kozlowski #size-cells = <0>; 2433b44738eSKrzysztof Kozlowski 2443b44738eSKrzysztof Kozlowski rmi4-f01@1 { 2453b44738eSKrzysztof Kozlowski reg = <0x1>; 2463b44738eSKrzysztof Kozlowski syna,nosleep-mode = <1>; 2473b44738eSKrzysztof Kozlowski }; 2483b44738eSKrzysztof Kozlowski 2493b44738eSKrzysztof Kozlowski rmi4-f12@12 { 2503b44738eSKrzysztof Kozlowski reg = <0x12>; 2513b44738eSKrzysztof Kozlowski syna,sensor-type = <1>; 2523b44738eSKrzysztof Kozlowski }; 2533b44738eSKrzysztof Kozlowski 2543b44738eSKrzysztof Kozlowski rmi4-f1a@1a { 2553b44738eSKrzysztof Kozlowski reg = <0x1a>; 256*0da89595SAndré Apitzsch linux,keycodes = <KEY_BACK KEY_HOME KEY_MENU>; 2573b44738eSKrzysztof Kozlowski }; 2583b44738eSKrzysztof Kozlowski }; 2593b44738eSKrzysztof Kozlowski }; 2603b44738eSKrzysztof Kozlowski 2613b44738eSKrzysztof Kozlowski - | 2623b44738eSKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/irq.h> 2633b44738eSKrzysztof Kozlowski 2643b44738eSKrzysztof Kozlowski spi { 2653b44738eSKrzysztof Kozlowski #address-cells = <1>; 2663b44738eSKrzysztof Kozlowski #size-cells = <0>; 2673b44738eSKrzysztof Kozlowski 2683b44738eSKrzysztof Kozlowski touchscreen@0 { 2693b44738eSKrzysztof Kozlowski compatible = "syna,rmi4-spi"; 2703b44738eSKrzysztof Kozlowski reg = <0x0>; 2713b44738eSKrzysztof Kozlowski interrupt-parent = <&gpx1>; 2723b44738eSKrzysztof Kozlowski interrupts = <6 IRQ_TYPE_EDGE_FALLING>; 2733b44738eSKrzysztof Kozlowski 2743b44738eSKrzysztof Kozlowski spi-max-frequency = <4000000>; 2753b44738eSKrzysztof Kozlowski spi-rx-delay-us = <30>; 2763b44738eSKrzysztof Kozlowski spi-cpha; 2773b44738eSKrzysztof Kozlowski spi-cpol; 2783b44738eSKrzysztof Kozlowski 2793b44738eSKrzysztof Kozlowski #address-cells = <1>; 2803b44738eSKrzysztof Kozlowski #size-cells = <0>; 2813b44738eSKrzysztof Kozlowski 2823b44738eSKrzysztof Kozlowski rmi4-f01@1 { 2833b44738eSKrzysztof Kozlowski reg = <0x1>; 2843b44738eSKrzysztof Kozlowski syna,nosleep-mode = <1>; 2853b44738eSKrzysztof Kozlowski }; 2863b44738eSKrzysztof Kozlowski 2873b44738eSKrzysztof Kozlowski rmi4-f11@11 { 2883b44738eSKrzysztof Kozlowski reg = <0x11>; 2893b44738eSKrzysztof Kozlowski touchscreen-inverted-y; 2903b44738eSKrzysztof Kozlowski syna,sensor-type = <2>; 2913b44738eSKrzysztof Kozlowski }; 2923b44738eSKrzysztof Kozlowski }; 2933b44738eSKrzysztof Kozlowski }; 294