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> --- .../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 + +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': + minItems: 1 + + 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 + +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 { + 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 { + reg = <0x0 0x1000000>; + feature-domains = <&etzpc 0>; + }; + + foo2: foo@2000000 { + reg = <0x0 0x2000000>; + feature-domains = <&etzpc 0>; + }; + }; -- 2.25.1