On 6/29/23 17:16, Rob Herring wrote: > On Tue, Jun 27, 2023 at 08:53:15AM +0200, Jiri Valek - 2N wrote: >> Add support for advanced sensitivity settings and signal guard feature. >> >> Signed-off-by: Jiri Valek - 2N <jiriv@xxxxxxxx> >> --- >> .../bindings/input/microchip,cap11xx.yaml | 77 +++++++++++++++++-- >> 1 file changed, 72 insertions(+), 5 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/input/microchip,cap11xx.yaml b/Documentation/devicetree/bindings/input/microchip,cap11xx.yaml >> index 5fa625b5c5fb..b69dac1fba0e 100644 >> --- a/Documentation/devicetree/bindings/input/microchip,cap11xx.yaml >> +++ b/Documentation/devicetree/bindings/input/microchip,cap11xx.yaml >> @@ -45,13 +45,13 @@ properties: >> Enables the Linux input system's autorepeat feature on the input device. >> >> linux,keycodes: >> - minItems: 6 >> - maxItems: 6 >> + minItems: 3 >> + maxItems: 8 >> description: | >> Specifies an array of numeric keycode values to >> be used for the channels. If this property is >> omitted, KEY_A, KEY_B, etc are used as defaults. >> - The array must have exactly six entries. >> + The number of entries must correspond to the number of channels. > > This change seems unrelated? Or maybe advanced sensitivity means more > channels? If so, explain this in the commit msg. This driver is already used for more CAPxxxx types. The smallest have only 3 inputs and the biggest one have 8 inputs. So keycode definition array length can be from 3 to 8 items long. > >> >> microchip,sensor-gain: >> $ref: /schemas/types.yaml#/definitions/uint32 >> @@ -70,6 +70,55 @@ properties: >> open drain. This property allows using the active >> high push-pull output. >> >> + microchip,sensitivity-delta-sense: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + default: 32 >> + enum: [1, 2, 4, 8, 16, 32, 64, 128] >> + description: >> + Optional parameter. Controls the sensitivity multiplier of a touch detection. >> + At the more sensitive settings, touches are detected for a smaller delta >> + capacitance corresponding to a “lighter” touch. >> + >> + microchip,signal-guard: >> + $ref: /schemas/types.yaml#/definitions/uint32-array >> + minItems: 3 >> + maxItems: 8 >> + items: >> + minimum: 0 >> + maximum: 1 >> + description: | >> + Optional parameter supported only for CAP129x. >> + 0 - off >> + 1 - on >> + The signal guard isolates the signal from virtual grounds. >> + If enabled then the behavior of the channel is changed to signal guard. >> + The number of entries must correspond to the number of channels. >> + >> + microchip,input-treshold: >> + $ref: /schemas/types.yaml#/definitions/uint32-array >> + minItems: 3 >> + maxItems: 8 >> + items: >> + minimum: 0 >> + maximum: 127 >> + description: >> + Optional parameter. Specifies the delta threshold that is used to >> + determine if a touch has been detected. >> + The number of entries must correspond to the number of channels. >> + >> + microchip,calib-sensitivity: >> + $ref: /schemas/types.yaml#/definitions/uint32-array >> + minItems: 3 >> + maxItems: 8 >> + items: >> + minimum: 1 >> + maximum: 4 >> + description: >> + Optional parameter supported only for CAP129x. Specifies an array of >> + numeric values that controls the gain used by the calibration routine to >> + enable sensor inputs to be more sensitive for proximity detection. >> + The number of entries must correspond to the number of channels. >> + >> patternProperties: >> "^led@[0-7]$": >> type: object >> @@ -98,10 +147,23 @@ allOf: >> compatible: >> contains: >> enum: >> - - microchip,cap1106 >> + - microchip,cap1188 >> then: >> patternProperties: >> - "^led@[0-7]$": false >> + "^led@[0-7]$": true >> + >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - microchip,cap1293 >> + - microchip,cap1298 >> + >> + then: >> + properties: >> + microchip,signal-guard: true >> + microchip,calib-sensitivity: true > > This 'if' doesn't do anything. These properties are already allowed. You > need an if for the cases they aren't allowed. Oh, thanks for the explanation. I will fix it. > >> >> required: >> - compatible >> @@ -122,6 +184,11 @@ examples: >> reg = <0x28>; >> autorepeat; >> microchip,sensor-gain = <2>; >> + microchip,sensitivity-delta-sense = <16>; >> + >> + microchip,signal-guard = <0>, <0>, <0>, <0>, <0>, <0>; >> + microchip,input-treshold = <21>, <18>, <46>, <46>, <46>, <21>; >> + microchip,calib-sensitivity = <1>, <2>, <2>, <1>, <1>, <2>; >> >> linux,keycodes = <103>, /* KEY_UP */ >> <106>, /* KEY_RIGHT */ >> -- >> 2.25.1 >> BR Jiri