Commit 9070f35d authored by Viresh Kumar's avatar Viresh Kumar Committed by Jassi Brar
Browse files

dt-bindings: mailbox : arm,mhu: Convert to Json-schema



Convert the DT binding over to Json-schema.

Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
Signed-off-by: default avatarJassi Brar <jaswinder.singh@linaro.org>
parent 5b92d8e9
Loading
Loading
Loading
Loading
+87 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mailbox/arm,mhu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: ARM MHU Mailbox Controller

maintainers:
  - Jassi Brar <jaswinder.singh@linaro.org>

description: |
  The ARM's Message-Handling-Unit (MHU) is a mailbox controller that has 3
  independent channels/links to communicate with remote processor(s).  MHU links
  are hardwired on a platform. A link raises interrupt for any received data.
  However, there is no specified way of knowing if the sent data has been read
  by the remote. This driver assumes the sender polls STAT register and the
  remote clears it after having read the data.  The last channel is specified to
  be a 'Secure' resource, hence can't be used by Linux running NS.

# We need a select here so we don't match all nodes with 'arm,primecell'
select:
  properties:
    compatible:
      contains:
        const: arm,mhu
  required:
    - compatible

properties:
  compatible:
    items:
      - const: arm,mhu
      - const: arm,primecell

  reg:
    maxItems: 1

  interrupts:
    items:
      - description: low-priority non-secure
      - description: high-priority non-secure
      - description: Secure
    maxItems: 3

  clocks:
    maxItems: 1

  clock-names:
    items:
      - const: apb_pclk

  '#mbox-cells':
    description: Index of the channel.
    const: 1

required:
  - compatible
  - reg
  - interrupts
  - '#mbox-cells'

additionalProperties: false

examples:
  - |
    soc {
        #address-cells = <2>;
        #size-cells = <2>;

        mhuA: mailbox@2b1f0000 {
            #mbox-cells = <1>;
            compatible = "arm,mhu", "arm,primecell";
            reg = <0 0x2b1f0000 0 0x1000>;
            interrupts = <0 36 4>, /* LP-NonSecure */
                         <0 35 4>, /* HP-NonSecure */
                         <0 37 4>; /* Secure */
            clocks = <&clock 0 2 1>;
            clock-names = "apb_pclk";
        };

        mhu_client_scb: scb@2e000000 {
            compatible = "fujitsu,mb86s70-scb-1.0";
            reg = <0 0x2e000000 0 0x4000>;
            mboxes = <&mhuA 1>; /* HP-NonSecure */
        };
    };
+0 −43
Original line number Diff line number Diff line
ARM MHU Mailbox Driver
======================

The ARM's Message-Handling-Unit (MHU) is a mailbox controller that has
3 independent channels/links to communicate with remote processor(s).
 MHU links are hardwired on a platform. A link raises interrupt for any
received data. However, there is no specified way of knowing if the sent
data has been read by the remote. This driver assumes the sender polls
STAT register and the remote clears it after having read the data.
The last channel is specified to be a 'Secure' resource, hence can't be
used by Linux running NS.

Mailbox Device Node:
====================

Required properties:
--------------------
- compatible:		Shall be "arm,mhu" & "arm,primecell"
- reg:			Contains the mailbox register address range (base
			address and length)
- #mbox-cells		Shall be 1 - the index of the channel needed.
- interrupts:		Contains the interrupt information corresponding to
			each of the 3 links of MHU.

Example:
--------

	mhu: mailbox@2b1f0000 {
		#mbox-cells = <1>;
		compatible = "arm,mhu", "arm,primecell";
		reg = <0 0x2b1f0000 0x1000>;
		interrupts = <0 36 4>, /* LP-NonSecure */
			     <0 35 4>, /* HP-NonSecure */
			     <0 37 4>; /* Secure */
		clocks = <&clock 0 2 1>;
		clock-names = "apb_pclk";
	};

	mhu_client: scb@2e000000 {
		compatible = "fujitsu,mb86s70-scb-1.0";
		reg = <0 0x2e000000 0x4000>;
		mboxes = <&mhu 1>; /* HP-NonSecure */
	};