lkml.org 
[lkml]   [2022]   [Nov]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v3 2/3] dt-bindings: timer: Add bindings for the RISC-V timer device
    Hey Anup,

    For the future, could you please CC me on all patches in a series that I
    have previously reviewed?

    On Fri, Nov 25, 2022 at 04:51:04PM +0530, Anup Patel wrote:
    > We add DT bindings for a separate RISC-V timer DT node which can
    > be used to describe implementation specific behaviour (such as
    > timer interrupt not triggered during non-retentive suspend).
    >
    > Signed-off-by: Anup Patel <apatel@ventanamicro.com>
    > ---
    > .../bindings/timer/riscv,timer.yaml | 52 +++++++++++++++++++
    > 1 file changed, 52 insertions(+)
    > create mode 100644 Documentation/devicetree/bindings/timer/riscv,timer.yaml
    >
    > diff --git a/Documentation/devicetree/bindings/timer/riscv,timer.yaml b/Documentation/devicetree/bindings/timer/riscv,timer.yaml
    > new file mode 100644
    > index 000000000000..cf53dfff90bc
    > --- /dev/null
    > +++ b/Documentation/devicetree/bindings/timer/riscv,timer.yaml
    > @@ -0,0 +1,52 @@
    > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
    > +%YAML 1.2
    > +---
    > +$id: http://devicetree.org/schemas/timer/riscv,timer.yaml#
    > +$schema: http://devicetree.org/meta-schemas/core.yaml#
    > +
    > +title: RISC-V timer
    > +
    > +maintainers:
    > + - Anup Patel <anup@brainfault.org>
    > +
    > +description: |+
    > + RISC-V platforms always have a RISC-V timer device for the supervisor-mode
    > + based on the time CSR defined by the RISC-V privileged specification. The
    > + timer interrupts of this device are configured using the RISC-V SBI Time
    > + extension or the RISC-V Sstc extension.
    > +
    > + The clock frequency of RISC-V timer device is specified via the
    > + "timebase-frequency" DT property of "/cpus" DT node which is described
    > + in Documentation/devicetree/bindings/riscv/cpus.yaml
    > +
    > +properties:
    > + compatible:
    > + enum:
    > + - riscv,timer
    > +
    > + interrupts-extended:
    > + minItems: 1
    > + maxItems: 4096 # Should be enough?
    > +
    > + riscv,timer-cant-wake-cpu:
    > + type: boolean
    > + description:
    > + If present, the timer interrupt can't wake up the CPU from
    > + suspend/idle state.

    I'm really not sure about this... I would be inclined to think that if
    someone does not specify then we should assume that they took the
    scroogiest view of the spec and so do not get events during suspend.

    I suppose you could then argue that their DT is wrong & it's their fault
    though. Plus the existing platforms behave this way & we avoid having to
    retrofit stuff here.

    > +
    > +additionalProperties: false
    > +
    > +required:
    > + - compatible
    > + - interrupts-extended
    > +
    > +examples:
    > + - |
    > + timer {
    > + compatible = "riscv,timer";
    > + interrupts-extended = <&cpu1intc 5>,
    > + <&cpu2intc 5>,
    > + <&cpu3intc 5>,
    > + <&cpu4intc 5>;
    > + };
    > +...
    > --
    > 2.34.1
    >

    \
     
     \ /
      Last update: 2022-11-25 14:10    [W:7.131 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site