Re: [PATCH v5 02/12] dt-bindings: soc/microchip: add services as children of sys ctrlr

From: Rob Herring
Date: Fri Feb 04 2022 - 17:42:23 EST


On Mon, Jan 31, 2022 at 11:47:17AM +0000, conor.dooley@xxxxxxxxxxxxx wrote:
> From: Conor Dooley <conor.dooley@xxxxxxxxxxxxx>
>
> Add mpfs-rng and mpfs-generic-services as children of the system
> controller.
>
> Signed-off-by: Conor Dooley <conor.dooley@xxxxxxxxxxxxx>
> ---
> .../microchip,mpfs-sys-controller.yaml | 41 ++++++++++++++++++-
> 1 file changed, 39 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-sys-controller.yaml b/Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-sys-controller.yaml
> index f699772fedf3..5e9977bc114e 100644
> --- a/Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-sys-controller.yaml
> +++ b/Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-sys-controller.yaml
> @@ -13,7 +13,6 @@ description: |
> The PolarFire SoC system controller is communicated with via a mailbox.
> This document describes the bindings for the client portion of that mailbox.
>
> -
> properties:
> mboxes:
> maxItems: 1
> @@ -21,6 +20,38 @@ properties:
> compatible:
> const: microchip,mpfs-sys-controller
>
> + rng:
> + type: object
> +
> + description: |
> + The hardware random number generator on the Polarfire SoC is
> + accessed via the mailbox interface provided by the system controller
> +
> + properties:
> + compatible:
> + const: microchip,mpfs-rng
> +
> + required:
> + - compatible
> +
> + sysserv:
> + type: object
> +
> + description: |
> + The PolarFire SoC system controller is communicated with via a mailbox.
> + This binding represents several of the functions provided by the system
> + controller which do not belong in a specific subsystem, such as reading
> + the fpga device certificate, all of which follow the same format:
> + - a command + optional payload sent to the sys controller
> + - a status + a payload returned to Linux
> +
> + properties:
> + compatible:
> + const: microchip,mpfs-generic-service
> +
> + required:
> + - compatible
> +
> required:
> - compatible
> - mboxes
> @@ -29,7 +60,13 @@ additionalProperties: false
>
> examples:
> - |
> - syscontroller: syscontroller {
> + syscontroller {
> compatible = "microchip,mpfs-sys-controller";
> mboxes = <&mbox 0>;
> + rng: rng {
> + compatible = "microchip,mpfs-rng";
> + };
> + sysserv: sysserv {
> + compatible = "microchip,mpfs-generic-service";
> + };

You don't have any resources for the child nodes, so they don't need to
be in DT. Just have the driver for "microchip,mpfs-sys-controller"
create the sub devices you need.

Rob