(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 >>