Re: [PATCH v1 04/11] dt-bindings: soc: microchip: document the two simple-mfd syscons on PolarFire SoC
From: Rob Herring
Date: Wed Oct 02 2024 - 19:28:11 EST
On Wed, Oct 02, 2024 at 11:48:02AM +0100, Conor Dooley wrote:
> From: Conor Dooley <conor.dooley@xxxxxxxxxxxxx>
>
> There are two syscons on PolarFire SoC that provide various functionality of
> use to the OS.
>
> The first of these is the "control-scb" region, that contains the "tvs"
> temperature and voltage sensors and the control/status registers for the
> system controller's mailbox. The mailbox has a dedicated node, so
> there's no need for a child node describing it, looking the syscon up by
> compatible is sufficient.
>
> The second, "mss-top-sysreg", contains clocks, pinctrl, resets, and
> interrupt controller and more. At this point, only the reset controller
> child is described as that's all that is described by the existing
> bindings. The clock controller already has a dedicated node, and will
> retain it as there are other clock regions, so like the mailbox,
> a compatible-based lookup of the syscon is sufficient to keep the clock
> driver working as before so no child is needed. There's also an
> interrupt multiplexing service provided by this syscon, for which there
> is work in progress at [1].
>
> Link: https://lore.kernel.org/linux-gpio/20240723-uncouple-enforcer-7c48e4a4fefe@wendy/ [1]
> Signed-off-by: Conor Dooley <conor.dooley@xxxxxxxxxxxxx>
> ---
> .../microchip/microchip,mpfs-control-scb.yaml | 44 +++++++++++++++
> .../microchip,mpfs-mss-top-sysreg.yaml | 54 +++++++++++++++++++
> 2 files changed, 98 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-control-scb.yaml
> create mode 100644 Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-mss-top-sysreg.yaml
>
> diff --git a/Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-control-scb.yaml b/Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-control-scb.yaml
> new file mode 100644
> index 0000000000000..4f9168320243c
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-control-scb.yaml
> @@ -0,0 +1,44 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/soc/microchip/microchip,mpfs-control-scb.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Microchip PolarFire SoC System Controller Bus (SCB) Control Register region
> +
> +maintainers:
> + - Conor Dooley <conor.dooley@xxxxxxxxxxxxx>
> +
> +description:
> + An assortment of system controller related registers, including voltage and
> + temperature sensors and the status/control registers for the system
> + controller's mailbox.
> +
> +properties:
> + compatible:
> + items:
> + - const: microchip,mpfs-control-scb
> + - const: syscon
> + - const: simple-mfd
Where's the child nodes?
> +
> + reg:
> + maxItems: 1
> +
> +required:
> + - compatible
> + - reg
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + soc {
> + #address-cells = <1>;
> + #size-cells = <1>;
Don't need the soc node.
> +
> + syscon@37020000 {
> + compatible = "microchip,mpfs-control-scb", "syscon", "simple-mfd";
> + reg = <0x37020000 0x100>;
> + };
> + };
> +
> diff --git a/Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-mss-top-sysreg.yaml b/Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-mss-top-sysreg.yaml
> new file mode 100644
> index 0000000000000..98ccec3caad51
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-mss-top-sysreg.yaml
> @@ -0,0 +1,54 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/soc/microchip/microchip,mpfs-mss-top-sysreg.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Microchip PolarFire SoC Microprocessor Subsystem (MSS) sysreg Register region
> +
> +maintainers:
> + - Conor Dooley <conor.dooley@xxxxxxxxxxxxx>
> +
> +description:
> + An wide assortment of registers that control elements of the MSS on PolarFire
> + SoC, including pinmuxing, resets and clocks among others.
> +
> +properties:
> + compatible:
> + items:
> + - const: microchip,mpfs-mss-top-sysreg
> + - const: syscon
> + - const: simple-mfd
> +
> + reg:
> + maxItems: 1
> +
> + '#reset-cells':
> + description: |
Don't need '|'.
> + The AHB/AXI peripherals on the PolarFire SoC have reset support, so
> + from CLK_ENVM to CLK_CFM. The reset consumer should specify the
> + desired peripheral via the clock ID in its "resets" phandle cell.
> + See include/dt-bindings/clock/microchip,mpfs-clock.h for the full list
> + of PolarFire clock/reset IDs.
> + const: 1
> +
> +required:
> + - compatible
> + - reg
> + - '#reset-cells'
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + soc {
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + syscon@20002000 {
> + compatible = "microchip,mpfs-mss-top-sysreg", "syscon", "simple-mfd";
> + reg = <0x20002000 0x1000>;
> + #reset-cells = <1>;
> + };
> + };
> +
> --
> 2.45.2
>