2021-04-16 02:31:12

by Nishanth Menon

[permalink] [raw]
Subject: [PATCH V3] dt-bindings: mailbox: ti,secure-proxy: Convert to json schema

Convert the ti,secure-proxy to yaml for better checks and documentation.
Differences being mostly in the examples:
- Dropped the example usage of mailbox client, it is better done in
tisci node definition.
- Switched reg usage for address-cells and size-cells 1 - aligned with
schema checks as well.
- included header in example for a buildable example.

While at this, lets make sure to support upto 100 rx threads even though
typically upto 1 threads is practically in use.

NOTE: The following checkpatch warning is generated since we do include the header
in the example, but this is a false positive warning.
WARNING: DT binding docs and includes should be a separate patch. See:
Documentation/devicetree/bindings/submitting-patches.rst

Signed-off-by: Nishanth Menon <[email protected]>
---

Changes since v2:
- Subject line rewording to indicate json schema rather than yaml
- Review comment: Dropped "-" in interrupt-names pattern so that it will match all
entries
- Minor commit message formatting changes

V2: https://lore.kernel.org/linux-arm-kernel/[email protected]/
V1: https://lore.kernel.org/linux-arm-kernel/[email protected]/

.../bindings/mailbox/ti,secure-proxy.txt | 50 ------------
.../bindings/mailbox/ti,secure-proxy.yaml | 79 +++++++++++++++++++
2 files changed, 79 insertions(+), 50 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/mailbox/ti,secure-proxy.txt
create mode 100644 Documentation/devicetree/bindings/mailbox/ti,secure-proxy.yaml

diff --git a/Documentation/devicetree/bindings/mailbox/ti,secure-proxy.txt b/Documentation/devicetree/bindings/mailbox/ti,secure-proxy.txt
deleted file mode 100644
index 6c9c7daf0f5c..000000000000
--- a/Documentation/devicetree/bindings/mailbox/ti,secure-proxy.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-Texas Instruments' Secure Proxy
-========================================
-
-The Texas Instruments' secure proxy is a mailbox controller that has
-configurable queues selectable at SoC(System on Chip) integration. The
-Message manager is broken up into different address regions that are
-called "threads" or "proxies" - each instance is unidirectional and is
-instantiated at SoC integration level by system controller to indicate
-receive or transmit path.
-
-Message Manager Device Node:
-===========================
-Required properties:
---------------------
-- compatible: Shall be "ti,am654-secure-proxy"
-- reg-names target_data - Map the proxy data region
- rt - Map the realtime status region
- scfg - Map the configuration region
-- reg: Contains the register map per reg-names.
-- #mbox-cells Shall be 1 and shall refer to the transfer path
- called thread.
-- interrupt-names: Contains interrupt names matching the rx transfer path
- for a given SoC. Receive interrupts shall be of the
- format: "rx_<PID>".
-- interrupts: Contains the interrupt information corresponding to
- interrupt-names property.
-
-Example(AM654):
-------------
-
- secure_proxy: mailbox@32c00000 {
- compatible = "ti,am654-secure-proxy";
- #mbox-cells = <1>;
- reg-names = "target_data", "rt", "scfg";
- reg = <0x0 0x32c00000 0x0 0x100000>,
- <0x0 0x32400000 0x0 0x100000>,
- <0x0 0x32800000 0x0 0x100000>;
- interrupt-names = "rx_011";
- interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
- };
-
- dmsc: dmsc {
- [...]
- mbox-names = "rx", "tx";
- # RX Thread ID is 11
- # TX Thread ID is 13
- mboxes= <&secure_proxy 11>,
- <&secure_proxy 13>;
- [...]
- };
diff --git a/Documentation/devicetree/bindings/mailbox/ti,secure-proxy.yaml b/Documentation/devicetree/bindings/mailbox/ti,secure-proxy.yaml
new file mode 100644
index 000000000000..eea822861804
--- /dev/null
+++ b/Documentation/devicetree/bindings/mailbox/ti,secure-proxy.yaml
@@ -0,0 +1,79 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mailbox/ti,secure-proxy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments' Secure Proxy
+
+maintainers:
+ - Nishanth Menon <[email protected]>
+
+description: |
+ The Texas Instruments' secure proxy is a mailbox controller that has
+ configurable queues selectable at SoC(System on Chip) integration. The
+ Message manager is broken up into different address regions that are
+ called "threads" or "proxies" - each instance is unidirectional and is
+ instantiated at SoC integration level by system controller to indicate
+ receive or transmit path.
+
+properties:
+ $nodename:
+ pattern: "^mailbox@[0-9a-f]+$"
+
+ compatible:
+ const: ti,am654-secure-proxy
+
+ "#mbox-cells":
+ const: 1
+ description:
+ Contains the secure proxy thread ID used for the specific transfer path.
+
+ reg-names:
+ items:
+ - const: target_data
+ - const: rt
+ - const: scfg
+
+ reg:
+ minItems: 3
+
+ interrupt-names:
+ minItems: 1
+ maxItems: 100
+ items:
+ pattern: "^rx_[0-9]{3}$"
+ description:
+ Contains the interrupt name information for the Rx interrupt path for
+ secure proxy thread in the form 'rx_<PID>'.
+
+ interrupts:
+ minItems: 1
+ maxItems: 100
+ description:
+ Contains the interrupt information for the Rx interrupt path for secure
+ proxy.
+
+required:
+ - compatible
+ - reg-names
+ - reg
+ - interrupt-names
+ - interrupts
+ - "#mbox-cells"
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ secure_proxy: mailbox@32c00000 {
+ compatible = "ti,am654-secure-proxy";
+ #mbox-cells = <1>;
+ reg-names = "target_data", "rt", "scfg";
+ reg = <0x32c00000 0x100000>,
+ <0x32400000 0x100000>,
+ <0x32800000 0x100000>;
+ interrupt-names = "rx_011";
+ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+ };
--
2.31.0


2021-04-16 19:43:54

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH V3] dt-bindings: mailbox: ti, secure-proxy: Convert to json schema

On Thu, 15 Apr 2021 19:59:53 -0500, Nishanth Menon wrote:
> Convert the ti,secure-proxy to yaml for better checks and documentation.
> Differences being mostly in the examples:
> - Dropped the example usage of mailbox client, it is better done in
> tisci node definition.
> - Switched reg usage for address-cells and size-cells 1 - aligned with
> schema checks as well.
> - included header in example for a buildable example.
>
> While at this, lets make sure to support upto 100 rx threads even though
> typically upto 1 threads is practically in use.
>
> NOTE: The following checkpatch warning is generated since we do include the header
> in the example, but this is a false positive warning.
> WARNING: DT binding docs and includes should be a separate patch. See:
> Documentation/devicetree/bindings/submitting-patches.rst
>
> Signed-off-by: Nishanth Menon <[email protected]>
> ---
>
> Changes since v2:
> - Subject line rewording to indicate json schema rather than yaml
> - Review comment: Dropped "-" in interrupt-names pattern so that it will match all
> entries
> - Minor commit message formatting changes
>
> V2: https://lore.kernel.org/linux-arm-kernel/[email protected]/
> V1: https://lore.kernel.org/linux-arm-kernel/[email protected]/
>
> .../bindings/mailbox/ti,secure-proxy.txt | 50 ------------
> .../bindings/mailbox/ti,secure-proxy.yaml | 79 +++++++++++++++++++
> 2 files changed, 79 insertions(+), 50 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/mailbox/ti,secure-proxy.txt
> create mode 100644 Documentation/devicetree/bindings/mailbox/ti,secure-proxy.yaml
>

Reviewed-by: Rob Herring <[email protected]>