* Fwd: [PATCH 1/2] dt-bindings: input: microchip,cap11xx: add advanced sensitivity settings
[not found] <d7f77779-5d28-b78a-da4e-cc237b2a04b9@axis.com>
@ 2023-04-28 17:09 ` Jiri Valek - 2N
2023-05-01 6:37 ` Krzysztof Kozlowski
0 siblings, 1 reply; 3+ messages in thread
From: Jiri Valek - 2N @ 2023-04-28 17:09 UTC (permalink / raw)
To: krzysztof.kozlowski
Cc: devicetree, dmitry.torokhov, jiriv, linux-input, linux-kernel,
robh+dt, u.kleine-koenig
Hi Krzysztof,
and thanks for the review
On 4/15/23 11:10, Krzysztof Kozlowski wrote:
> On 15/04/2023 01:38, Jiri Valek - 2N wrote:
>> Add support for advanced sensitivity settings and signal guard feature.
>>
>> Signed-off-by: Jiri Valek - 2N <jiriv@axis.com>
>> ---
>> .../bindings/input/microchip,cap11xx.yaml | 64 ++++++++++++++++++-
>> 1 file changed, 61 insertions(+), 3 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/input/microchip,cap11xx.yaml b/Documentation/devicetree/bindings/input/microchip,cap11xx.yaml
>> index 5fa625b5c5fb..08e28226a164 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.
>>
>> microchip,sensor-gain:
>> $ref: /schemas/types.yaml#/definitions/uint32
>> @@ -70,6 +70,58 @@ 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: |
>
> Do not need '|' unless you need to preserve formatting.
OK. Will remove them.
>
>> + 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,sensitivity-base-shift:
>> + $ref: /schemas/types.yaml#/definitions/uint32
>> + default: 256
>> + enum: [1, 2, 4, 8, 16, 32, 64, 128, 256]
>> + description: |
>> + Optional parameter. Controls data scaling factor.
>> + The higher the value of these bits, the larger the range and the lower
>> + the resolution of the data presented. These settings will not affect
>> + touch detection or sensitivity.
>> +
>> + microchip,signal-guard:
>> + minItems: 3
>> + maxItems: 8
>> + enum: [0, 1]
>> + default: 0
>
> This was not really tested. Missing ref, mixing scalar and array
> properties. You want items with enum. And drop default.
Ack. I will fix it.
>
>
>> + description: |
>> + Optional parameter supported only for CAP129x.
>
> Then disallow it for others (allOf:if:then: ...
> microchip,signal-guard:false)
Ack. I will fix it.
>> + 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:
>> + minItems: 3
>> + maxItems: 8
>> + minimum: 0
>> + maximum: 127
>> + default: 64
>> + 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:
>> + minItems: 3
>> + maxItems: 8
>> + enum: [1, 2, 4]
>> + default: 1
>> + 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.
>
> Most of these properties do not look like hardware properties. Policies
> and runtime configuration should not be put into DT. Explain please why
> these are board-specific thus suitable for DT.
All these parameters are intended to set HW properties of touch buttons.
Each button can have different PCB layout and when you start without
setting these parameters in DT, then touches won't be detected or you
will get false positive readings.
E.g. 'signal-guard' change property of analog input from button to some
type of shield.
I made all of them optional for backward compatibility.
Maybe 'sensitivity-base-shift' is really not necessary to have in DT.
I will remove it if you agree.
Best regards,
Jiri Valek
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Fwd: [PATCH 1/2] dt-bindings: input: microchip,cap11xx: add advanced sensitivity settings
2023-04-28 17:09 ` Fwd: [PATCH 1/2] dt-bindings: input: microchip,cap11xx: add advanced sensitivity settings Jiri Valek - 2N
@ 2023-05-01 6:37 ` Krzysztof Kozlowski
2023-05-01 15:49 ` Jeff LaBundy
0 siblings, 1 reply; 3+ messages in thread
From: Krzysztof Kozlowski @ 2023-05-01 6:37 UTC (permalink / raw)
To: 8a790966-d985-c0fc-498e-c17e69a6622e
Cc: devicetree, dmitry.torokhov, jiriv, linux-input, linux-kernel,
robh+dt, u.kleine-koenig
On 28/04/2023 19:09, Jiri Valek - 2N wrote:
> Hi Krzysztof,
> and thanks for the review
>
> On 4/15/23 11:10, Krzysztof Kozlowski wrote:
>> On 15/04/2023 01:38, Jiri Valek - 2N wrote:
>>> Add support for advanced sensitivity settings and signal guard feature.
>>>
>>> Signed-off-by: Jiri Valek - 2N <jiriv@axis.com>
>>> ---
>>> .../bindings/input/microchip,cap11xx.yaml | 64 ++++++++++++++++++-
>>> 1 file changed, 61 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/input/microchip,cap11xx.yaml b/Documentation/devicetree/bindings/input/microchip,cap11xx.yaml
>>> index 5fa625b5c5fb..08e28226a164 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.
>>>
>>> microchip,sensor-gain:
>>> $ref: /schemas/types.yaml#/definitions/uint32
>>> @@ -70,6 +70,58 @@ 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: |
>>
>> Do not need '|' unless you need to preserve formatting.
>
> OK. Will remove them.
>
>>
>>> + 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,sensitivity-base-shift:
>>> + $ref: /schemas/types.yaml#/definitions/uint32
>>> + default: 256
>>> + enum: [1, 2, 4, 8, 16, 32, 64, 128, 256]
>>> + description: |
>>> + Optional parameter. Controls data scaling factor.
>>> + The higher the value of these bits, the larger the range and the lower
>>> + the resolution of the data presented. These settings will not affect
>>> + touch detection or sensitivity.
>>> +
>>> + microchip,signal-guard:
>>> + minItems: 3
>>> + maxItems: 8
>>> + enum: [0, 1]
>>> + default: 0
>>
>> This was not really tested. Missing ref, mixing scalar and array
>> properties. You want items with enum. And drop default.
>
> Ack. I will fix it.
>
>>
>>
>>> + description: |
>>> + Optional parameter supported only for CAP129x.
>>
>> Then disallow it for others (allOf:if:then: ...
>> microchip,signal-guard:false)
>
> Ack. I will fix it.
>
>>> + 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:
>>> + minItems: 3
>>> + maxItems: 8
>>> + minimum: 0
>>> + maximum: 127
>>> + default: 64
>>> + 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:
>>> + minItems: 3
>>> + maxItems: 8
>>> + enum: [1, 2, 4]
>>> + default: 1
>>> + 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.
>>
>> Most of these properties do not look like hardware properties. Policies
>> and runtime configuration should not be put into DT. Explain please why
>> these are board-specific thus suitable for DT.
>
> All these parameters are intended to set HW properties of touch buttons.
I know, but some HW properties are software policies. Consider the
simplest example - audio volume of a speaker. It's a hardware property,
but it is not for DT. Software should choose audio volume based on
user's decisions.
> Each button can have different PCB layout and when you start without
> setting these parameters in DT, then touches won't be detected or you
> will get false positive readings.
> E.g. 'signal-guard' change property of analog input from button to some
> type of shield.
> I made all of them optional for backward compatibility.
> Maybe 'sensitivity-base-shift' is really not necessary to have in DT.
> I will remove it if you agree.
Keep only ones which are not policies but depend on physical/electrical
characteristic of boards.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Fwd: [PATCH 1/2] dt-bindings: input: microchip,cap11xx: add advanced sensitivity settings
2023-05-01 6:37 ` Krzysztof Kozlowski
@ 2023-05-01 15:49 ` Jeff LaBundy
0 siblings, 0 replies; 3+ messages in thread
From: Jeff LaBundy @ 2023-05-01 15:49 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: 8a790966-d985-c0fc-498e-c17e69a6622e, devicetree, dmitry.torokhov,
jiriv, linux-input, linux-kernel, robh+dt, u.kleine-koenig
Hi Krzysztof and Jiri,
On Mon, May 01, 2023 at 08:37:49AM +0200, Krzysztof Kozlowski wrote:
> On 28/04/2023 19:09, Jiri Valek - 2N wrote:
> > Hi Krzysztof,
> > and thanks for the review
> >
> > On 4/15/23 11:10, Krzysztof Kozlowski wrote:
> >> On 15/04/2023 01:38, Jiri Valek - 2N wrote:
> >>> Add support for advanced sensitivity settings and signal guard feature.
> >>>
> >>> Signed-off-by: Jiri Valek - 2N <jiriv@axis.com>
> >>> ---
[...]
> >>> + microchip,input-treshold:
> >>> + minItems: 3
> >>> + maxItems: 8
> >>> + minimum: 0
> >>> + maximum: 127
> >>> + default: 64
> >>> + 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:
> >>> + minItems: 3
> >>> + maxItems: 8
> >>> + enum: [1, 2, 4]
> >>> + default: 1
> >>> + 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.
> >>
> >> Most of these properties do not look like hardware properties. Policies
> >> and runtime configuration should not be put into DT. Explain please why
> >> these are board-specific thus suitable for DT.
> >
> > All these parameters are intended to set HW properties of touch buttons.
>
> I know, but some HW properties are software policies. Consider the
> simplest example - audio volume of a speaker. It's a hardware property,
> but it is not for DT. Software should choose audio volume based on
> user's decisions.
>
> > Each button can have different PCB layout and when you start without
> > setting these parameters in DT, then touches won't be detected or you
> > will get false positive readings.
> > E.g. 'signal-guard' change property of analog input from button to some
> > type of shield.
> > I made all of them optional for backward compatibility.
> > Maybe 'sensitivity-base-shift' is really not necessary to have in DT.
> > I will remove it if you agree.
>
> Keep only ones which are not policies but depend on physical/electrical
> characteristic of boards.
For capacitive sensing devices such as this, the threshold is specified
based on the size of the electrode and properties of the physical overlay.
Unlike speaker volume, it is a static property that is often times advised
by the module vendor.
Based on a quick scan of this patch, all of the properties proposed here
seem appropriate for DT and are in line with the properties exposed for
comparable devices (e.g. azoteq,thresh).
>
> Best regards,
> Krzysztof
>
Kind regards,
Jeff LaBundy
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-05-01 15:49 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <d7f77779-5d28-b78a-da4e-cc237b2a04b9@axis.com>
2023-04-28 17:09 ` Fwd: [PATCH 1/2] dt-bindings: input: microchip,cap11xx: add advanced sensitivity settings Jiri Valek - 2N
2023-05-01 6:37 ` Krzysztof Kozlowski
2023-05-01 15:49 ` Jeff LaBundy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).