diff mbox series

[v3,1/2] dt-bindings: mailbox: Add Apple mailbox bindings

Message ID 20211017114054.67737-2-sven@svenpeter.dev (mailing list archive)
State New, archived
Headers show
Series Apple Mailbox Controller support | expand

Commit Message

Sven Peter Oct. 17, 2021, 11:40 a.m. UTC
Apple mailbox controller are found on the M1 and are used for
communication with various co-processors.

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Sven Peter <sven@svenpeter.dev>
---
 .../bindings/mailbox/apple,mailbox.yaml       | 79 +++++++++++++++++++
 MAINTAINERS                                   |  1 +
 2 files changed, 80 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml

Comments

Rob Herring (Arm) Oct. 17, 2021, 3:29 p.m. UTC | #1
On Sun, 17 Oct 2021 13:40:53 +0200, Sven Peter wrote:
> Apple mailbox controller are found on the M1 and are used for
> communication with various co-processors.
> 
> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
> Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
> Reviewed-by: Rob Herring <robh@kernel.org>
> Signed-off-by: Sven Peter <sven@svenpeter.dev>
> ---
>  .../bindings/mailbox/apple,mailbox.yaml       | 79 +++++++++++++++++++
>  MAINTAINERS                                   |  1 +
>  2 files changed, 80 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
> 

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml: properties:interrupts: 'oneOf' conditional failed, one must be fixed:
	[{'description': 'send fifo is empty interrupt'}, {'description': 'send fifo is not empty interrupt'}, {'description': 'receive fifo is empty interrupt'}, {'description': 'receive fifo is not empty interrupt'}] is too long
	[{'description': 'send fifo is empty interrupt'}, {'description': 'send fifo is not empty interrupt'}, {'description': 'receive fifo is empty interrupt'}, {'description': 'receive fifo is not empty interrupt'}] is too short
	False schema does not allow 4
	1 was expected
	4 is greater than the maximum of 2
	4 is greater than the maximum of 3
	hint: "minItems" is only needed if less than the "items" list length
	from schema $id: http://devicetree.org/meta-schemas/items.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml: properties:interrupt-names: 'oneOf' conditional failed, one must be fixed:
	[{'const': 'send-empty'}, {'const': 'send-not-empty'}, {'const': 'recv-empty'}, {'const': 'recv-not-empty'}] is too long
	[{'const': 'send-empty'}, {'const': 'send-not-empty'}, {'const': 'recv-empty'}, {'const': 'recv-not-empty'}] is too short
	False schema does not allow 4
	1 was expected
	4 is greater than the maximum of 2
	4 is greater than the maximum of 3
	hint: "minItems" is only needed if less than the "items" list length
	from schema $id: http://devicetree.org/meta-schemas/items.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml: ignoring, error in schema: properties: interrupts
warning: no schema found in file: ./Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
Documentation/devicetree/bindings/mailbox/apple,mailbox.example.dt.yaml:0:0: /example-0/mailbox@77408000: failed to match any schema with compatible: ['apple,t8103-asc-mailbox']

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/patch/1542209

This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit.
Sven Peter Oct. 17, 2021, 3:42 p.m. UTC | #2
On Sun, Oct 17, 2021, at 17:29, Rob Herring wrote:
> On Sun, 17 Oct 2021 13:40:53 +0200, Sven Peter wrote:
>> Apple mailbox controller are found on the M1 and are used for
>> communication with various co-processors.
>> 
>> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
>> Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
>> Reviewed-by: Rob Herring <robh@kernel.org>
>> Signed-off-by: Sven Peter <sven@svenpeter.dev>
>> ---
>>  .../bindings/mailbox/apple,mailbox.yaml       | 79 +++++++++++++++++++
>>  MAINTAINERS                                   |  1 +
>>  2 files changed, 80 insertions(+)
>>  create mode 100644 Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
>> 
>
> My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
> on your patch (DT_CHECKER_FLAGS is new in v5.13):
>
> yamllint warnings/errors:
>
> dtschema/dtc warnings/errors:
> /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml: 
> properties:interrupts: 'oneOf' conditional failed, one must be fixed:
> 	[{'description': 'send fifo is empty interrupt'}, {'description': 
> 'send fifo is not empty interrupt'}, {'description': 'receive fifo is 
> empty interrupt'}, {'description': 'receive fifo is not empty 
> interrupt'}] is too long
> 	[{'description': 'send fifo is empty interrupt'}, {'description': 
> 'send fifo is not empty interrupt'}, {'description': 'receive fifo is 
> empty interrupt'}, {'description': 'receive fifo is not empty 
> interrupt'}] is too short
> 	False schema does not allow 4
> 	1 was expected
> 	4 is greater than the maximum of 2
> 	4 is greater than the maximum of 3
> 	hint: "minItems" is only needed if less than the "items" list length
> 	from schema $id: http://devicetree.org/meta-schemas/items.yaml#
> /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml: 
> properties:interrupt-names: 'oneOf' conditional failed, one must be 
> fixed:
> 	[{'const': 'send-empty'}, {'const': 'send-not-empty'}, {'const': 
> 'recv-empty'}, {'const': 'recv-not-empty'}] is too long
> 	[{'const': 'send-empty'}, {'const': 'send-not-empty'}, {'const': 
> 'recv-empty'}, {'const': 'recv-not-empty'}] is too short
> 	False schema does not allow 4
> 	1 was expected
> 	4 is greater than the maximum of 2
> 	4 is greater than the maximum of 3
> 	hint: "minItems" is only needed if less than the "items" list length
> 	from schema $id: http://devicetree.org/meta-schemas/items.yaml#
> /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml: 
> ignoring, error in schema: properties: interrupts
> warning: no schema found in file: 
> ./Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
> Documentation/devicetree/bindings/mailbox/apple,mailbox.example.dt.yaml:0:0: 
> /example-0/mailbox@77408000: failed to match any schema with 
> compatible: ['apple,t8103-asc-mailbox']
>
> doc reference errors (make refcheckdocs):
>
> See https://patchwork.ozlabs.org/patch/1542209
>
> This check can fail if there are any dependencies. The base for a patch
> series is generally the most recent rc1.
>
> If you already ran 'make dt_binding_check' and didn't see the above
> error(s), then make sure 'yamllint' is installed and dt-schema is up to
> date:
>
> pip3 install dtschema --upgrade
>
> Please check and re-submit.


Whoops, looks like this fails some new check added since I submitted
the last version a month ago.
I'll drop the "minItems: 4" since the number of items is constant anyway.


Sven
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml b/Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
new file mode 100644
index 000000000000..d488a4173072
--- /dev/null
+++ b/Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
@@ -0,0 +1,79 @@ 
+# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mailbox/apple,mailbox.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Apple Mailbox Controller
+
+maintainers:
+  - Hector Martin <marcan@marcan.st>
+  - Sven Peter <sven@svenpeter.dev>
+
+description:
+  The Apple mailbox consists of two FIFOs used to exchange 64+32 bit
+  messages between the main CPU and a co-processor. Multiple instances
+  of this mailbox can be found on Apple SoCs.
+  One of the two FIFOs is used to send data to a co-processor while the other
+  FIFO is used for the other direction.
+  Various clients implement different IPC protocols based on these simple
+  messages and shared memory buffers.
+
+properties:
+  compatible:
+    oneOf:
+      - description:
+          ASC mailboxes are the most common variant found on the M1 used
+          for example for the display controller, the system management
+          controller and the NVMe coprocessor.
+        items:
+          - const: apple,t8103-asc-mailbox
+
+      - description:
+          M3 mailboxes are an older variant with a slightly different MMIO
+          interface still found on the M1. It is used for the Thunderbolt
+          co-processors.
+        items:
+          - const: apple,t8103-m3-mailbox
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    minItems: 4
+    items:
+      - description: send fifo is empty interrupt
+      - description: send fifo is not empty interrupt
+      - description: receive fifo is empty interrupt
+      - description: receive fifo is not empty interrupt
+
+  interrupt-names:
+    minItems: 4
+    items:
+      - const: send-empty
+      - const: send-not-empty
+      - const: recv-empty
+      - const: recv-not-empty
+
+  "#mbox-cells":
+    const: 0
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - interrupt-names
+  - "#mbox-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+        mailbox@77408000 {
+                compatible = "apple,t8103-asc-mailbox";
+                reg = <0x77408000 0x4000>;
+                interrupts = <1 583 4>, <1 584 4>, <1 585 4>, <1 586 4>;
+                interrupt-names = "send-empty", "send-not-empty",
+                 "recv-empty", "recv-not-empty";
+                #mbox-cells = <0>;
+        };
diff --git a/MAINTAINERS b/MAINTAINERS
index a4a0c2baaf27..be83d20a33ef 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1723,6 +1723,7 @@  C:	irc://irc.oftc.net/asahi-dev
 T:	git https://github.com/AsahiLinux/linux.git
 F:	Documentation/devicetree/bindings/arm/apple.yaml
 F:	Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml
+F:	Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
 F:	Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml
 F:	arch/arm64/boot/dts/apple/
 F:	drivers/irqchip/irq-apple-aic.c