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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxx>
>>> ---
>>>   .../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




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux