diff mbox series

[IGNORE,v4,01/11] dt-bindings: Document common device controller bindings

Message ID 20230811100731.108145-2-gatien.chevallier@foss.st.com
State New
Headers show
Series Introduce STM32 Firewall framework | expand

Commit Message

Gatien CHEVALLIER Aug. 11, 2023, 10:07 a.m. UTC
From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>

Introducing of the common device controller bindings for the controller
provider and consumer devices. Those bindings are intended to allow
divided system on chip into multiple domains, that can be used to
configure hardware permissions.

Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
[Gatien: Fix typos and YAML error]
Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
---

Changes in V4: 
	Corrected typos and YAML errors	
	
 .../feature-domain-controller.yaml            | 84 +++++++++++++++++++
 1 file changed, 84 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/feature-controllers/feature-domain-controller.yaml

Comments

Gatien CHEVALLIER Sept. 29, 2023, 1:18 p.m. UTC | #1
On 8/11/23 14:00, Gatien CHEVALLIER wrote:
> 
> 
> On 8/11/23 12:16, Greg KH wrote:
>> On Fri, Aug 11, 2023 at 12:07:21PM +0200, Gatien Chevallier wrote:
>>> From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>
>>>
>>> Introducing of the common device controller bindings for the controller
>>> provider and consumer devices. Those bindings are intended to allow
>>> divided system on chip into multiple domains, that can be used to
>>> configure hardware permissions.
>>>
>>> Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
>>> [Gatien: Fix typos and YAML error]
>>> Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
>>> ---
>>>
>>> Changes in V4:
>>>     Corrected typos and YAML errors
>>
>> Why are we supposed to ignore the first patch in this series, but pay
>> attention to the 10 after this that depend on it?
>>
>> totally confused,
>>
>> greg k-h
> 
> Hello Greg,
> 
> I'm sorry that this tag troubles your review. It was first suggested
> in [1]. The "IGNORE" means ignore review on this thread, as it is still
> under review in another thread (Link in the cover letter). It does not
> mean that the content should be ignored for the series. I will change
> this to something else as this is obviously confusing the review.
> 
> @Oleksii, can we imagine integrating this patch to this series or do
> you prefer to keep it apart?
> 

Hi,

after a discussion with Oleksii: I'll rename the binding to narrow
down its scope and integrate the patch in my series. This way, I'll drop
the [IGNORE] tag.

=> I'll stick with the generic binding for V5 (Sorry for the misleading
    information in the previous mail)

Best regards,
Gatien

> Should I consider a resend with another tag if Oleksii prefers to keep
> this patch apart?
> 
> [1] 
> https://lore.kernel.org/all/1e498b93-d3bd-bd12-e991-e3f4bedf632d@linaro.org/
> 
> Best regards,
> Gatien
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/feature-controllers/feature-domain-controller.yaml b/Documentation/devicetree/bindings/feature-controllers/feature-domain-controller.yaml
new file mode 100644
index 000000000000..57217da2d1cf
--- /dev/null
+++ b/Documentation/devicetree/bindings/feature-controllers/feature-domain-controller.yaml
@@ -0,0 +1,84 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/feature-controllers/feature-domain-controller.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Generic Domain Controller
+
+maintainers:
+  - Oleksii Moisieiev <oleksii_moisieiev@epam.com>
+
+description: |+
+  Common Feature Domains Controller properties
+
+  Domain controllers allow to divided system on chip into multiple feature
+  domains that can be used to select by who hardware blocks could be accessed.
+  A feature domain could be a cluster of CPUs (or coprocessors), a range of
+  addresses or a group of hardware blocks.
+
+  This device tree bindings can be used to bind feature domain consumer devices
+  with their feature domains provided by feature-domains controllers.
+  Feature omain controller provider can be represened by any node in the
+  device tree and can provide one or more configuration parameters, needed to
+  control parameters of the consumer device. A consumer node can refer to the
+  provider by phandle and a set of phandle arguments, specified by
+  '#feature-domain-cells' property in the device controller provider node.
+
+  Device controllers are typically used to set the permissions of the hardware
+  block. The contents of the feature-domains configuration properties are
+  defined by the binding for the individual feature-domains controller device.
+
+  Each node can be a consumer for the several providers. The first
+  configuration of 'feature-domains' or the one named 'default' is applied
+  before probing the device itself.
+
+# always select the core schema
+select: true
+
+properties:
+  '#feature-domain-cells':
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Number of cells in a feature-domains controller specifier;
+      Can be any value as specified by device tree binding documentation
+      of a particular provider.
+
+  feature-domain-controller:
+    description:
+      Indicates that the node is feature-domain-controller provider.
+
+  feature-domain-names:
+    $ref: '/schemas/types.yaml#/definitions/string-array'
+    description:
+      A list of feature-domains names, sorted in the same order as
+      feature-domains entries. Consumer drivers will use feature-domain-names
+      to match with existing feature-domains entries.
+
+  feature-domains:
+    $ref: "/schemas/types.yaml#/definitions/phandle-array"
+    description:
+      A list of feature-domains controller specifiers, as defined by the
+      bindings of the feature-domain-controller provider.
+
+additionalProperties: true
+
+examples:
+  - |
+    ctrl0: ctrl@100 {
+        feature-domain-controller;
+        reg = <0x100 0x10>;
+        #feature-domain-cells = <2>;
+    };
+
+    ctrl1: ctrl@110 {
+        feature-domain-controller;
+        reg = <0x110 0x10>;
+        #feature-domain-cells = <3>;
+    };
+
+    foo@0 {
+        reg = <0x0 0x1>;
+        feature-domains = <&ctrl0 1 2>, <&ctrl1 3 4 5>;
+        feature-domain-names = "default", "unbind";
+    };