Re: [PATCH 2/6] dt-bindings: timer: Add schema for realtek,otto-timer

From: Chris Packham
Date: Sun Jun 23 2024 - 17:24:13 EST


(resend as plain text)

On 23/06/24 00:11, Conor Dooley wrote:
> On Fri, Jun 21, 2024 at 04:27:33PM +1200, Chris Packham wrote:
>> Add the devicetree schema for the realtek,otto-timer present on a number
>> of Realtek SoCs.
>>
>> Signed-off-by: Chris Packham<chris.packham@xxxxxxxxxxxxxxxxxxx>
>> ---
>> .../bindings/timer/realtek,otto-timer.yaml | 54 +++++++++++++++++++
>> 1 file changed, 54 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/timer/realtek,otto-timer.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/timer/realtek,otto-timer.yaml b/Documentation/devicetree/bindings/timer/realtek,otto-timer.yaml
>> new file mode 100644
>> index 000000000000..b6e85aadbc99
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/timer/realtek,otto-timer.yaml
>> @@ -0,0 +1,54 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id:http://devicetree.org/schemas/timer/realtek,otto-timer.yaml#
>> +$schema:http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Realtek Otto SoCs Timer/Counter
>> +
>> +description:
>> + Realtek SoCs support a number of timers/counters. These are used
>> + as a per CPU clock event generator and an overall CPU clocksource.
>> +
>> +maintainers:
>> + - Chris Packham<chris.packham@xxxxxxxxxxxxxxxxxxx>
>> +
>> +properties:
>> + $nodename:
>> + pattern: "^timer@[0-9a-f]+$"
>> +
>> + compatible:
>> + items:
>> + - enum:
>> + - realtek,rtl930x-timer

I'll change this to rtl9302

>> + - const: realtek,otto-timer
>> + reg:
>> + minItems: 5
>> + maxItems: 5
> Since minitems == maxitems, can you just make this a list, and define
> what they all are? Ditto interrupts.

This is where more conditions might need to be added. The rtl9302 is a
single core SoC. So technically it only needs 2 timers (the hardware
still has 5 but 3 would be unused at the moment). The rtl9312 is a dual
core SoC so needs 3 timers (I won't be looking at that platform for a
while). So I think maybe maxItems should stay at 5 but minItems should
be set based on the compatible.

> reg:
> items:
> - foo
> - bar
> - baz
>
> etc.

I can do. But they'd all be something like cpuN-event. The way the
driver is written it grabs a timer for each CPU and uses the next one
for a global timer.

>> +
>> + clocks:
>> + maxItems: 1
>> +
>> + interrupts:
>> + minItems: 5
>> + maxItems: 5
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - clocks
>> + - interrupts
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + timer0: timer@3200 {
> The label here isn't needed FYI.

Will remove.

>> + compatible = "realtek,rtl930x-timer", "realtek,otto-timer";
>> + reg = <0x3200 0x10>, <0x3210 0x10>, <0x3220 0x10>,
>> + <0x3230 0x10>, <0x3240 0x10>;
>> +
>> + interrupt-parent = <&intc>;
>> + interrupts = <7 4>, <8 4>, <9 4>, <10 4>, <11 4>;
Will switch to using proper IRQ flags.
>> + clocks = <&lx_clk>;
>> + };
>> --
>> 2.45.2
>>