Re: [RFC PATCH 2/7] dt-bindings: bus: add STM32 System Bus

From: Krzysztof Kozlowski
Date: Thu Dec 22 2022 - 05:25:10 EST


On 21/12/2022 18:30, Gatien Chevallier wrote:
> Document STM32 System Bus. This bus is intended to control firewall
> access for the peripherals connected to it.
>
> Signed-off-by: Loic PALLARDY <loic.pallardy@xxxxxx>
> Signed-off-by: Gatien Chevallier <gatien.chevallier@xxxxxxxxxxx>

Please use scripts/get_maintainers.pl to get a list of necessary people
and lists to CC. It might happen, that command when run on an older
kernel, gives you outdated entries. Therefore please be sure you base
your patches on recent Linux kernel.

> ---
> .../devicetree/bindings/bus/st,sys-bus.yaml | 88 +++++++++++++++++++
> 1 file changed, 88 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/bus/st,sys-bus.yaml
>
> diff --git a/Documentation/devicetree/bindings/bus/st,sys-bus.yaml b/Documentation/devicetree/bindings/bus/st,sys-bus.yaml
> new file mode 100644
> index 000000000000..9c0e86612695
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/bus/st,sys-bus.yaml
> @@ -0,0 +1,88 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/bus/stm32,sys-bus.yaml
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: STM32 System Bus

Only one space.

> +
> +description: |
> + The STM32 System Bus is an internal bus to which some internal peripherals
> + are connected. STM32 System Bus integrates a firewall controlling access to each
> + device. This bus prevents non-accessible devices to be probed.
> +
> + To see which peripherals are securable, please check the SoC reference manual.
> +
> +maintainers:
> + - Gatien Chevallier <gatien.chevallier@xxxxxxxxxxx>
> +
> +allOf:
> + - $ref: /schemas/feature-controllers/feature-domain-controller.yaml#
> +
> +properties:
> + compatible:
> + enum:
> + - st,stm32mp13-sys-bus
> + - st,stm32mp15-sys-bus
> +
> + reg:
> + maxItems: 1
> +
> + "#address-cells":
> + const: 1
> +
> + "#size-cells":
> + const: 1
> +
> + '#feature-domain-cells':

Use consistent quotes, either ' or "

> + minItems: 1

No. Cells must be const. This does not match cells at all...

> +
> + ranges: true
> +
> + feature-domain-controller: true
> +
> +patternProperties:
> + "^.*@[0-9a-f]+$":
> + description: Devices attached to system bus
> + type: object
> + properties:
> + feature-domains:
> + $ref: /schemas/feature-controllers/feature-domain-controller.yaml#/properties/feature-domains

maxItems

> +
> +required:
> + - compatible
> + - reg
> + - "#address-cells"
> + - "#size-cells"
> + - feature-domain-controller
> + - '#feature-domain-cells'
> + - ranges
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + // In this example,
> + // - the foo1 device refers to etzpc as his domain controller.
> + // - same goes for foo2.
> + // Access rights are verified before creating devices.
> +
> + etzpc: etzpc@5c007000 {

Node names should be generic.
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation

> + compatible = "st,stm32mp15-sys-bus";
> + reg = <0x5c007000 0x400>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
> + feature-domain-controller;
> + #feature-domain-cells = <1>;
> +
> + foo1: foo@1000000 {

Node names should be generic.
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation

> + reg = <0x0 0x1000000>;

Missing compatible, missing proper device name. Don't use fake names,
but describe real case.

> + feature-domains = <&etzpc 0>;
> + };
> +
> + foo2: foo@2000000 {
> + reg = <0x0 0x2000000>;
> + feature-domains = <&etzpc 0>;
> + };
> + };

Best regards,
Krzysztof