linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: 8a790966-d985-c0fc-498e-c17e69a6622e@linaro.org
Cc: devicetree@vger.kernel.org, dmitry.torokhov@gmail.com,
	jiriv@axis.com, linux-input@vger.kernel.org,
	linux-kernel@vger.kernel.org, robh+dt@kernel.org,
	u.kleine-koenig@pengutronix.de
Subject: Re: Fwd: [PATCH 1/2] dt-bindings: input: microchip,cap11xx: add advanced sensitivity settings
Date: Mon, 1 May 2023 08:37:49 +0200	[thread overview]
Message-ID: <403412d0-18b8-8d2f-e044-0e27b06a2d12@linaro.org> (raw)
In-Reply-To: <1511d33b-dab3-cddb-cbf2-7db016678362@axis.com>

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


  reply	other threads:[~2023-05-01  6:38 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [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 [this message]
2023-05-01 15:49     ` Jeff LaBundy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=403412d0-18b8-8d2f-e044-0e27b06a2d12@linaro.org \
    --to=krzysztof.kozlowski@linaro.org \
    --cc=8a790966-d985-c0fc-498e-c17e69a6622e@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=jiriv@axis.com \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=u.kleine-koenig@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).