[PATCH 1/2] dt-bindings: input: Add Nuvoton MA35D1 keypad

Ming-Jen Chen mjchen0829 at gmail.com
Sun Oct 27 18:23:24 PDT 2024


On 2024/10/25 下午 07:42, Krzysztof Kozlowski wrote:
> On 25/10/2024 07:36, Ming-Jen Chen wrote:
>>>> +      0  = 0 clock
>>>> +      1  = 0 clock
>>>> +      2  = 0 clock
>>> Heh? So this is just 0
>>>
>>>> +      3  = 8 clocks
>>> This is 8
>>>
>>>> +      4  = 16 clocks
>>> 16, not 4
>>>
>>>> +      5  = 32 clocks
>>>> +      6  = 64 clocks
>>>> +      7  = 128 clocks
>>>> +      8  = 256 clocks
>>>> +      9  = 512 clocks
>>>> +      10 = 1024 clocks
>>>> +      11 = 2048 clocks
>>>> +      12 = 4096 clocks
>>>> +      13 = 8192 clocks
>>> Use proper enum
>> I will update the definition to specify the debounce period in terms of
>> keypad IP clock cycles, as follow:
>>
>> nuvoton,debounce-period:
>>       type: integer
>>       enum: [0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
>>       description: |
>>           Key debounce period select, specified in terms of keypad IP
>> clock cycles.
>>           This value corresponds to the register setting for the keypad
>> interface.
>>           The following values indicate the debounce time:
>>           - 0 = 0 clock cycles (no debounce)
>>           - 3 = 8 clock cycles
>>           - 4 = 16 clock cycles
>>           - 5 = 32 clock cycles
>>           - 6 = 64 clock cycles
>>           - 7 = 128 clock cycles
>>           - 8 = 256 clock cycles
>>           - 9 = 512 clock cycles
>>           - 10 = 1024 clock cycles
>>           - 11 = 2048 clock cycles
>>           - 12 = 4096 clock cycles
>>           - 13 = 8192 clock cycles
> No. 0, 8, 16, 32 , 64 etc.

I will change it to the following content:

nuvoton,debounce-period:
   type:  integer
   enum:  [0,8,16,32,64,128,256,512,1024,2048,4096,8192]
   description:  | Key debounce period select, specified in terms of keypad IP clock 
cycles. Valid values include 0 (no debounce) and specific clock cycle 
values: 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, and 8192.

>>>
>>>> +
>>>> +  per-scale:
>>>> +    $ref: /schemas/types.yaml#/definitions/uint32
>>>> +    description: Row Scan Cycle Pre-scale Value (1 to 256).
>>> Missing constraints
>>>
>>>> +
>>>> +  per-scalediv:
>>>> +    $ref: /schemas/types.yaml#/definitions/uint32
>>>> +    description: Per-scale divider (1 to 256).
>>> Missing constraints
>>>
>>> Both properties are unexpected... aren't you duplicating existing
>>> properties?
>> pre-scale:
>> This value configures the IC register for the row scan cycle
>> pre-scaling, with valid values ranging from 1 to 256
>> per-scalediv:(I will change pre-scalediv to pre-scale-div)
> Please look for matching existing properties first.

I will change it to the following content:

nuvoton,scan-time:
   type:  uint32
   description:  | Set the scan time for each key, in IP clock cycles. The valid range is 
from 1 to 256.    minimum:  1
   maximum:  256

nuvoton,scan-time-div:
   type:  uint32
   description:  | Divider for the scan-time, further adjusting the scan frequency for 
the keypad. The valid range is from 1 to 256.    minimum:  1
   maximum:  256

>> This will describe its role in setting the divisor for the row scan
>> cycle pre-scaling, allowing for finer control over the keypad scanning
>> frequency
>>
>> I will change it to the following content:
>> nuvoton,pre-scale:
>>       type: uint32
>>       description: |
>>           Row Scan Cycle Pre-scale Value, used to pre-scale the row scan
>> cycle. The valid range is from 1 to 256.
>>       minimum: 1
>>       maximum: 256
>>
>> nuvoton,pre-scale-div:
>>       type: uint32
>>       description: |
>>           Divider for the pre-scale value, further adjusting the scan
>> frequency for the keypad.
>>       minimum: 1
>>       maximum: 256
>
> Best regards,
> Krzysztof

Best regards,

Ming-Jen Chen




More information about the linux-arm-kernel mailing list