Re: [PATCH v4 1/2] dt-bindings: input: microchip,cap11xx: add advanced sensitivity settings

From: Jiri Valek - 2N
Date: Tue Jul 11 2023 - 09:22:42 EST


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