Skip to content

Commit c74f037

Browse files
Merge patch series "dt-bindings: interrupt-controller: riscv,cpu-intc"
Kanak Shilledar <[email protected]> says: This series of patches converts the RISC-V CPU interrupt controller to the newer dt-schema binding. Patch 1: This patch is currently at v4 as it has been previously rolled out. Contains the bindings for the interrupt controller. Patch 2: This patch is currently at v4. Contains the reference to the above interrupt controller. Thus, making all the RISC-V interrupt controller bindings in a centralized place. These patches are interdependent. Fixed the patch address mismatch error by changing DCO to @gmail.com Kanak Shilledar (3): dt-bindings: interrupt-controller: riscv,cpu-intc: convert to dtschema dt-bindings: riscv: cpus: add ref to interrupt-controller dt-bindings: serial: vt8500-uart: convert to json-schema .../interrupt-controller/riscv,cpu-intc.txt | 52 ------------- .../interrupt-controller/riscv,cpu-intc.yaml | 73 +++++++++++++++++++ .../devicetree/bindings/riscv/cpus.yaml | 21 +----- .../bindings/serial/via,vt8500-uart.yaml | 46 ++++++++++++ .../bindings/serial/vt8500-uart.txt | 27 ------- 5 files changed, 120 insertions(+), 99 deletions(-) delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/riscv,cpu-intc.txt create mode 100644 Documentation/devicetree/bindings/interrupt-controller/riscv,cpu-intc.yaml create mode 100644 Documentation/devicetree/bindings/serial/via,vt8500-uart.yaml delete mode 100644 Documentation/devicetree/bindings/serial/vt8500-uart.txt * b4-shazam-merge: dt-bindings: riscv: cpus: add ref to interrupt-controller dt-bindings: interrupt-controller: riscv,cpu-intc: convert to dtschema Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Palmer Dabbelt <[email protected]>
2 parents 6d8e604 + 1f6e218 commit c74f037

File tree

3 files changed

+74
-72
lines changed

3 files changed

+74
-72
lines changed

Documentation/devicetree/bindings/interrupt-controller/riscv,cpu-intc.txt

Lines changed: 0 additions & 52 deletions
This file was deleted.
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/interrupt-controller/riscv,cpu-intc.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: RISC-V Hart-Level Interrupt Controller (HLIC)
8+
9+
description:
10+
RISC-V cores include Control Status Registers (CSRs) which are local to
11+
each CPU core (HART in RISC-V terminology) and can be read or written by
12+
software. Some of these CSRs are used to control local interrupts connected
13+
to the core. Every interrupt is ultimately routed through a hart's HLIC
14+
before it interrupts that hart.
15+
16+
The RISC-V supervisor ISA manual specifies three interrupt sources that are
17+
attached to every HLIC namely software interrupts, the timer interrupt, and
18+
external interrupts. Software interrupts are used to send IPIs between
19+
cores. The timer interrupt comes from an architecturally mandated real-
20+
time timer that is controlled via Supervisor Binary Interface (SBI) calls
21+
and CSR reads. External interrupts connect all other device interrupts to
22+
the HLIC, which are routed via the platform-level interrupt controller
23+
(PLIC).
24+
25+
All RISC-V systems that conform to the supervisor ISA specification are
26+
required to have a HLIC with these three interrupt sources present. Since
27+
the interrupt map is defined by the ISA it's not listed in the HLIC's device
28+
tree entry, though external interrupt controllers (like the PLIC, for
29+
example) will need to define how their interrupts map to the relevant HLICs.
30+
This means a PLIC interrupt property will typically list the HLICs for all
31+
present HARTs in the system.
32+
33+
maintainers:
34+
- Palmer Dabbelt <[email protected]>
35+
- Paul Walmsley <[email protected]>
36+
37+
properties:
38+
compatible:
39+
oneOf:
40+
- items:
41+
- const: andestech,cpu-intc
42+
- const: riscv,cpu-intc
43+
- const: riscv,cpu-intc
44+
45+
interrupt-controller: true
46+
47+
'#interrupt-cells':
48+
const: 1
49+
description: |
50+
The interrupt sources are defined by the RISC-V supervisor ISA manual,
51+
with only the following three interrupts being defined for
52+
supervisor mode:
53+
- Source 1 is the supervisor software interrupt, which can be sent by
54+
an SBI call and is reserved for use by software.
55+
- Source 5 is the supervisor timer interrupt, which can be configured
56+
by SBI calls and implements a one-shot timer.
57+
- Source 9 is the supervisor external interrupt, which chains to all
58+
other device interrupts.
59+
60+
required:
61+
- compatible
62+
- '#interrupt-cells'
63+
- interrupt-controller
64+
65+
additionalProperties: false
66+
67+
examples:
68+
- |
69+
interrupt-controller {
70+
#interrupt-cells = <1>;
71+
compatible = "riscv,cpu-intc";
72+
interrupt-controller;
73+
};

Documentation/devicetree/bindings/riscv/cpus.yaml

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -102,26 +102,7 @@ properties:
102102

103103
interrupt-controller:
104104
type: object
105-
additionalProperties: false
106-
description: Describes the CPU's local interrupt controller
107-
108-
properties:
109-
'#interrupt-cells':
110-
const: 1
111-
112-
compatible:
113-
oneOf:
114-
- items:
115-
- const: andestech,cpu-intc
116-
- const: riscv,cpu-intc
117-
- const: riscv,cpu-intc
118-
119-
interrupt-controller: true
120-
121-
required:
122-
- '#interrupt-cells'
123-
- compatible
124-
- interrupt-controller
105+
$ref: /schemas/interrupt-controller/riscv,cpu-intc.yaml#
125106

126107
cpu-idle-states:
127108
$ref: /schemas/types.yaml#/definitions/phandle-array

0 commit comments

Comments
 (0)