[PATCH RFC v2 2/3] dt-bindings: mailbox: Add thead,th1520-mailbox bindings
Rob Herring
robh at kernel.org
Fri Sep 27 15:32:27 PDT 2024
On Fri, Sep 27, 2024 at 11:42:06AM +0200, Michal Wilczynski wrote:
> Add bindings for the mailbox controller. This work is based on the vendor
> kernel. [1]
>
> Link: https://github.com/revyos/thead-kernel.git [1]
>
> Signed-off-by: Michal Wilczynski <m.wilczynski at samsung.com>
> ---
> .../bindings/mailbox/thead,th1520-mbox.yaml | 84 +++++++++++++++++++
> MAINTAINERS | 1 +
> 2 files changed, 85 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/mailbox/thead,th1520-mbox.yaml
>
> diff --git a/Documentation/devicetree/bindings/mailbox/thead,th1520-mbox.yaml b/Documentation/devicetree/bindings/mailbox/thead,th1520-mbox.yaml
> new file mode 100644
> index 000000000000..b517d0c6eb12
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mailbox/thead,th1520-mbox.yaml
> @@ -0,0 +1,84 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mailbox/thead,th1520-mbox.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: T-head TH1520 Mailbox Controller
> +
> +description:
> + The T-head mailbox controller enables communication and coordination between
> + cores within the SoC by passing messages (e.g., data, status, and control)
> + through mailbox channels. It also allows one core to signal another processor
> + using interrupts via the Interrupt Controller Unit (ICU).
> +
> +maintainers:
> + - Michal Wilczynski <m.wilczynski at samsung.com>
> +
> +properties:
> + compatible:
> + const: thead,th1520-mbox
> +
> + reg:
> + items:
> + - description: Mailbox local base address
> + - description: Remote ICU 0 base address
> + - description: Remote ICU 1 base address
> + - description: Remote ICU 2 base address
> +
> + reg-names:
> + items:
> + - const: local
> + - const: remote-icu0
> + - const: remote-icu1
> + - const: remote-icu2
> +
> + interrupts:
> + maxItems: 1
> +
> + thead,icu-cpu-id:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
Don't need '|' if no formatting.
> + CPU ID associated with the Interrupt Controller Unit (ICU). This ID should
> + correspond to a valid CPU core in the system. The value must be between 0
> + and (N - 1), where N is the total number of CPU cores in the SoC.
> + minimum: 0
> + maximum: 3
The normal way we associate a node with some subset of CPUs is the
'cpus' property linking to the CPU node.
Or is this CPUs which are not part of what Linux is running on (i.e. the
SMP cores).
> +
> + '#mbox-cells':
> + const: 2
> + description: |
> + Specifies the number of cells needed to encode the mailbox specifier.
> + The mailbox specifier consists of two cells:
> + - The first cell is the destination CPU ID.
> + - The second cell is the mailbox channel ID.
> +
> +additionalProperties: false
> +
> +required:
> + - compatible
> + - reg
> + - reg-names
> + - interrupts
> + - thead,icu-cpu-id
> + - '#mbox-cells'
> +
> +examples:
> + - |
> +
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> + mailbox at ffffc38000 {
> + compatible = "thead,th1520-mbox";
> + reg = <0xff 0xffc38000 0x0 0x4000>,
> + <0xff 0xffc44000 0x0 0x1000>,
> + <0xff 0xffc4c000 0x0 0x1000>,
> + <0xff 0xffc54000 0x0 0x1000>;
> + reg-names = "local", "remote-icu0", "remote-icu1", "remote-icu2";
> + interrupts = <28>;
> + thead,icu-cpu-id = <0>;
> + #mbox-cells = <2>;
> + };
> + };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index df4d7be6cf35..a6028f850a25 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -19943,6 +19943,7 @@ L: linux-riscv at lists.infradead.org
> S: Maintained
> T: git https://github.com/pdp7/linux.git
> F: Documentation/devicetree/bindings/clock/thead,th1520-clk-ap.yaml
> +F: Documentation/devicetree/bindings/mailbox/thead,th1520-mbox.yaml
> F: arch/riscv/boot/dts/thead/
> F: drivers/clk/thead/clk-th1520-ap.c
> F: drivers/mailbox/mailbox-th1520.c
> --
> 2.34.1
>
More information about the linux-riscv
mailing list