All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gatien Chevallier <gatien.chevallier@foss.st.com>
To: <Oleksii_Moisieiev@epam.com>, <gregkh@linuxfoundation.org>,
	<herbert@gondor.apana.org.au>, <davem@davemloft.net>,
	<robh+dt@kernel.org>, <krzysztof.kozlowski+dt@linaro.org>,
	<conor+dt@kernel.org>, <alexandre.torgue@foss.st.com>,
	<vkoul@kernel.org>, <jic23@kernel.org>,
	<olivier.moysan@foss.st.com>, <arnaud.pouliquen@foss.st.com>,
	<mchehab@kernel.org>, <fabrice.gasnier@foss.st.com>,
	<andi.shyti@kernel.org>, <ulf.hansson@linaro.org>,
	<edumazet@google.com>, <kuba@kernel.org>, <pabeni@redhat.com>,
	<hugues.fruchet@foss.st.com>, <lee@kernel.org>, <will@kernel.org>,
	<catalin.marinas@arm.com>, <arnd@kernel.org>,
	<richardcochran@gmail.com>, Frank Rowand <frowand.list@gmail.com>,
	<peng.fan@oss.nxp.com>, <lars@metafoo.de>, <rcsekar@samsung.com>,
	<wg@grandegger.com>, <mkl@pengutronix.de>
Cc: <linux-crypto@vger.kernel.org>, <devicetree@vger.kernel.org>,
	<linux-stm32@st-md-mailman.stormreply.com>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>, <dmaengine@vger.kernel.org>,
	<linux-i2c@vger.kernel.org>, <linux-iio@vger.kernel.org>,
	<alsa-devel@alsa-project.org>, <linux-media@vger.kernel.org>,
	<linux-mmc@vger.kernel.org>, <netdev@vger.kernel.org>,
	<linux-phy@lists.infradead.org>, <linux-serial@vger.kernel.org>,
	<linux-spi@vger.kernel.org>, <linux-usb@vger.kernel.org>,
	Oleksii Moisieiev <oleksii_moisieiev@epam.com>,
	Gatien Chevallier <gatien.chevallier@foss.st.com>,
	Rob Herring <robh@kernel.org>
Subject: [PATCH v9 01/13] dt-bindings: document generic access controllers
Date: Fri, 5 Jan 2024 14:03:52 +0100	[thread overview]
Message-ID: <20240105130404.301172-2-gatien.chevallier@foss.st.com> (raw)
In-Reply-To: <20240105130404.301172-1-gatien.chevallier@foss.st.com>

From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>

Introducing of the generic access controllers bindings for the
access controller provider and consumer devices. Those bindings are
intended to allow a better handling of accesses to resources in a
hardware architecture supporting several compartments.

This patch is based on [1]. It is integrated in this patchset as it
provides a use-case for it.

Diffs with [1]:
	- Rename feature-domain* properties to access-control* to narrow
	  down the scope of the binding
	- YAML errors and typos corrected.
	- Example updated
	- Some rephrasing in the binding description

[1]: https://lore.kernel.org/lkml/0c0a82bb-18ae-d057-562b

Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Reviewed-by: Rob Herring <robh@kernel.org>
---

Changes in V9:
	- Added Rob's review tag

Changes in V6:
	- Renamed access-controller to access-controllers
	- Example updated
	- Removal of access-control-provider property

Changes in V5:
	- Diffs with [1]
	- Discarded the [IGNORE] tag as the patch is now part of the
	  patchset

 .../access-controllers.yaml                   | 84 +++++++++++++++++++
 1 file changed, 84 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/access-controllers/access-controllers.yaml

diff --git a/Documentation/devicetree/bindings/access-controllers/access-controllers.yaml b/Documentation/devicetree/bindings/access-controllers/access-controllers.yaml
new file mode 100644
index 000000000000..99e2865f0e46
--- /dev/null
+++ b/Documentation/devicetree/bindings/access-controllers/access-controllers.yaml
@@ -0,0 +1,84 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/access-controllers/access-controllers.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Generic Domain Access Controllers
+
+maintainers:
+  - Oleksii Moisieiev <oleksii_moisieiev@epam.com>
+
+description: |+
+  Common access controllers properties
+
+  Access controllers are in charge of stating which of the hardware blocks under
+  their responsibility (their domain) can be accesssed by which compartment. A
+  compartment can be a cluster of CPUs (or coprocessors), a range of addresses
+  or a group of hardware blocks. An access controller's domain is the set of
+  resources covered by the access controller.
+
+  This device tree binding can be used to bind devices to their access
+  controller provided by access-controllers property. In this case, the device
+  is a consumer and the access controller is the provider.
+
+  An access controller can be represented 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 '#access-controller-cells'
+  property in the access controller node.
+
+  Access controllers are typically used to set/read the permissions of a
+  hardware block and grant access to it. Any of which depends on the access
+  controller. The capabilities of each access controller are defined by the
+  binding of the access controller device.
+
+  Each node can be a consumer for the several access controllers.
+
+# always select the core schema
+select: true
+
+properties:
+  "#access-controller-cells":
+    description:
+      Number of cells in an access-controllers specifier;
+      Can be any value as specified by device tree binding documentation
+      of a particular provider. The node is an access controller.
+
+  access-controller-names:
+    $ref: /schemas/types.yaml#/definitions/string-array
+    description:
+      A list of access-controllers names, sorted in the same order as
+      access-controllers entries. Consumer drivers will use
+      access-controller-names to match with existing access-controllers entries.
+
+  access-controllers:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    description:
+      A list of access controller specifiers, as defined by the
+      bindings of the access-controllers provider.
+
+additionalProperties: true
+
+examples:
+  - |
+    clock_controller: access-controllers@50000 {
+        reg = <0x50000 0x400>;
+        #access-controller-cells = <2>;
+    };
+
+    bus_controller: bus@60000 {
+        reg = <0x60000 0x10000>;
+        #address-cells = <1>;
+        #size-cells = <1>;
+        ranges;
+        #access-controller-cells = <3>;
+
+        uart4: serial@60100 {
+            reg = <0x60100 0x400>;
+            clocks = <&clk_serial>;
+            access-controllers = <&clock_controller 1 2>,
+                                 <&bus_controller 1 3 5>;
+            access-controller-names = "clock", "bus";
+        };
+    };
-- 
2.35.3


-- 
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy

WARNING: multiple messages have this Message-ID (diff)
From: Gatien Chevallier <gatien.chevallier@foss.st.com>
To: <Oleksii_Moisieiev@epam.com>, <gregkh@linuxfoundation.org>,
	<herbert@gondor.apana.org.au>, <davem@davemloft.net>,
	<robh+dt@kernel.org>, <krzysztof.kozlowski+dt@linaro.org>,
	<conor+dt@kernel.org>, <alexandre.torgue@foss.st.com>,
	<vkoul@kernel.org>, <jic23@kernel.org>,
	<olivier.moysan@foss.st.com>, <arnaud.pouliquen@foss.st.com>,
	<mchehab@kernel.org>, <fabrice.gasnier@foss.st.com>,
	<andi.shyti@kernel.org>, <ulf.hansson@linaro.org>,
	<edumazet@google.com>, <kuba@kernel.org>, <pabeni@redhat.com>,
	<hugues.fruchet@foss.st.com>, <lee@kernel.org>, <will@kernel.org>,
	<catalin.marinas@arm.com>, <arnd@kernel.org>,
	<richardcochran@gmail.com>, Frank Rowand <frowand.list@gmail.com>,
	<peng.fan@oss.nxp.com>, <lars@metafoo.de>, <rcsekar@samsung.com>,
	<wg@grandegger.com>, <mkl@pengutronix.de>
Cc: <linux-crypto@vger.kernel.org>, <devicetree@vger.kernel.org>,
	<linux-stm32@st-md-mailman.stormreply.com>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>, <dmaengine@vger.kernel.org>,
	<linux-i2c@vger.kernel.org>, <linux-iio@vger.kernel.org>,
	<alsa-devel@alsa-project.org>, <linux-media@vger.kernel.org>,
	<linux-mmc@vger.kernel.org>, <netdev@vger.kernel.org>,
	<linux-phy@lists.infradead.org>, <linux-serial@vger.kernel.org>,
	<linux-spi@vger.kernel.org>, <linux-usb@vger.kernel.org>,
	Oleksii Moisieiev <oleksii_moisieiev@epam.com>,
	Gatien Chevallier <gatien.chevallier@foss.st.com>,
	Rob Herring <robh@kernel.org>
Subject: [PATCH v9 01/13] dt-bindings: document generic access controllers
Date: Fri, 5 Jan 2024 14:03:52 +0100	[thread overview]
Message-ID: <20240105130404.301172-2-gatien.chevallier@foss.st.com> (raw)
In-Reply-To: <20240105130404.301172-1-gatien.chevallier@foss.st.com>

From: Oleksii Moisieiev <Oleksii_Moisieiev@epam.com>

Introducing of the generic access controllers bindings for the
access controller provider and consumer devices. Those bindings are
intended to allow a better handling of accesses to resources in a
hardware architecture supporting several compartments.

This patch is based on [1]. It is integrated in this patchset as it
provides a use-case for it.

Diffs with [1]:
	- Rename feature-domain* properties to access-control* to narrow
	  down the scope of the binding
	- YAML errors and typos corrected.
	- Example updated
	- Some rephrasing in the binding description

[1]: https://lore.kernel.org/lkml/0c0a82bb-18ae-d057-562b

Signed-off-by: Oleksii Moisieiev <oleksii_moisieiev@epam.com>
Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Reviewed-by: Rob Herring <robh@kernel.org>
---

Changes in V9:
	- Added Rob's review tag

Changes in V6:
	- Renamed access-controller to access-controllers
	- Example updated
	- Removal of access-control-provider property

Changes in V5:
	- Diffs with [1]
	- Discarded the [IGNORE] tag as the patch is now part of the
	  patchset

 .../access-controllers.yaml                   | 84 +++++++++++++++++++
 1 file changed, 84 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/access-controllers/access-controllers.yaml

diff --git a/Documentation/devicetree/bindings/access-controllers/access-controllers.yaml b/Documentation/devicetree/bindings/access-controllers/access-controllers.yaml
new file mode 100644
index 000000000000..99e2865f0e46
--- /dev/null
+++ b/Documentation/devicetree/bindings/access-controllers/access-controllers.yaml
@@ -0,0 +1,84 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/access-controllers/access-controllers.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Generic Domain Access Controllers
+
+maintainers:
+  - Oleksii Moisieiev <oleksii_moisieiev@epam.com>
+
+description: |+
+  Common access controllers properties
+
+  Access controllers are in charge of stating which of the hardware blocks under
+  their responsibility (their domain) can be accesssed by which compartment. A
+  compartment can be a cluster of CPUs (or coprocessors), a range of addresses
+  or a group of hardware blocks. An access controller's domain is the set of
+  resources covered by the access controller.
+
+  This device tree binding can be used to bind devices to their access
+  controller provided by access-controllers property. In this case, the device
+  is a consumer and the access controller is the provider.
+
+  An access controller can be represented 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 '#access-controller-cells'
+  property in the access controller node.
+
+  Access controllers are typically used to set/read the permissions of a
+  hardware block and grant access to it. Any of which depends on the access
+  controller. The capabilities of each access controller are defined by the
+  binding of the access controller device.
+
+  Each node can be a consumer for the several access controllers.
+
+# always select the core schema
+select: true
+
+properties:
+  "#access-controller-cells":
+    description:
+      Number of cells in an access-controllers specifier;
+      Can be any value as specified by device tree binding documentation
+      of a particular provider. The node is an access controller.
+
+  access-controller-names:
+    $ref: /schemas/types.yaml#/definitions/string-array
+    description:
+      A list of access-controllers names, sorted in the same order as
+      access-controllers entries. Consumer drivers will use
+      access-controller-names to match with existing access-controllers entries.
+
+  access-controllers:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    description:
+      A list of access controller specifiers, as defined by the
+      bindings of the access-controllers provider.
+
+additionalProperties: true
+
+examples:
+  - |
+    clock_controller: access-controllers@50000 {
+        reg = <0x50000 0x400>;
+        #access-controller-cells = <2>;
+    };
+
+    bus_controller: bus@60000 {
+        reg = <0x60000 0x10000>;
+        #address-cells = <1>;
+        #size-cells = <1>;
+        ranges;
+        #access-controller-cells = <3>;
+
+        uart4: serial@60100 {
+            reg = <0x60100 0x400>;
+            clocks = <&clk_serial>;
+            access-controllers = <&clock_controller 1 2>,
+                                 <&bus_controller 1 3 5>;
+            access-controller-names = "clock", "bus";
+        };
+    };
-- 
2.35.3


  reply	other threads:[~2024-01-05 13:05 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-05 13:03 [PATCH v9 00/13] Introduce STM32 Firewall framework Gatien Chevallier
2024-01-05 13:03 ` Gatien Chevallier
2024-01-05 13:03 ` Gatien Chevallier
2024-01-05 13:03 ` Gatien Chevallier [this message]
2024-01-05 13:03   ` [PATCH v9 01/13] dt-bindings: document generic access controllers Gatien Chevallier
2024-01-05 13:03 ` [PATCH v9 02/13] dt-bindings: treewide: add access-controllers description Gatien Chevallier
2024-01-05 13:03   ` Gatien Chevallier
2024-01-05 13:03   ` Gatien Chevallier
2024-01-19 22:06   ` Rob Herring
2024-01-19 22:06     ` Rob Herring
2024-01-19 22:06     ` Rob Herring
2024-01-05 13:03 ` [PATCH v9 03/13] dt-bindings: bus: document RIFSC Gatien Chevallier
2024-01-05 13:03   ` Gatien Chevallier
2024-01-05 13:03   ` Gatien Chevallier
2024-01-05 13:03 ` [PATCH v9 04/13] dt-bindings: bus: document ETZPC Gatien Chevallier
2024-01-05 13:03   ` Gatien Chevallier
2024-01-05 13:03   ` Gatien Chevallier
2024-01-05 13:03 ` [PATCH v9 05/13] firewall: introduce stm32_firewall framework Gatien Chevallier
2024-01-05 13:03   ` Gatien Chevallier
2024-01-05 13:03   ` Gatien Chevallier
2024-01-05 13:03 ` [PATCH v9 06/13] of: property: fw_devlink: Add support for "access-controller" Gatien Chevallier
2024-01-05 13:03   ` Gatien Chevallier
2024-01-05 13:03   ` Gatien Chevallier
2024-04-24  5:57   ` Saravana Kannan
2024-04-24  5:57     ` Saravana Kannan
2024-04-24  5:57     ` Saravana Kannan
2024-04-24 12:19     ` Alexandre TORGUE
2024-04-24 12:19       ` Alexandre TORGUE
2024-04-24 12:19       ` Alexandre TORGUE
2024-01-05 13:03 ` [PATCH v9 07/13] bus: rifsc: introduce RIFSC firewall controller driver Gatien Chevallier
2024-01-05 13:03   ` Gatien Chevallier
2024-01-05 13:03   ` Gatien Chevallier
2024-01-05 13:03 ` [PATCH v9 08/13] arm64: dts: st: add RIFSC as an access controller for STM32MP25x boards Gatien Chevallier
2024-01-05 13:03   ` Gatien Chevallier
2024-01-05 13:03   ` Gatien Chevallier
2024-01-05 13:04 ` [PATCH v9 09/13] bus: etzpc: introduce ETZPC firewall controller driver Gatien Chevallier
2024-01-05 13:04   ` Gatien Chevallier
2024-01-05 13:04   ` Gatien Chevallier
2024-01-05 13:04 ` [PATCH v9 10/13] ARM: dts: stm32: add ETZPC as a system bus for STM32MP15x boards Gatien Chevallier
2024-01-05 13:04   ` Gatien Chevallier
2024-01-05 13:04   ` Gatien Chevallier
2024-01-05 13:04 ` [PATCH v9 11/13] ARM: dts: stm32: put ETZPC as an access controller " Gatien Chevallier
2024-01-05 13:04   ` Gatien Chevallier
2024-01-05 13:04   ` Gatien Chevallier
2024-01-05 13:04 ` [PATCH v9 12/13] ARM: dts: stm32: add ETZPC as a system bus for STM32MP13x boards Gatien Chevallier
2024-01-05 13:04   ` Gatien Chevallier
2024-01-05 13:04   ` Gatien Chevallier
2024-01-05 13:04 ` [PATCH v9 13/13] ARM: dts: stm32: put ETZPC as an access controller " Gatien Chevallier
2024-01-05 13:04   ` Gatien Chevallier
2024-01-05 13:04   ` Gatien Chevallier
2024-04-08  8:42 ` [PATCH v9 00/13] Introduce STM32 Firewall framework Alexandre TORGUE
2024-04-08  8:42   ` Alexandre TORGUE
2024-04-08  8:42   ` Alexandre TORGUE
2024-04-09 17:13   ` Rob Herring
2024-04-09 17:13     ` Rob Herring
2024-04-09 17:13     ` Rob Herring
2024-04-11  9:37     ` Alexandre TORGUE
2024-04-11  9:37       ` Alexandre TORGUE
2024-04-11  9:37       ` Alexandre TORGUE

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240105130404.301172-2-gatien.chevallier@foss.st.com \
    --to=gatien.chevallier@foss.st.com \
    --cc=Oleksii_Moisieiev@epam.com \
    --cc=alexandre.torgue@foss.st.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=andi.shyti@kernel.org \
    --cc=arnaud.pouliquen@foss.st.com \
    --cc=arnd@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=conor+dt@kernel.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=dmaengine@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=fabrice.gasnier@foss.st.com \
    --cc=frowand.list@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=herbert@gondor.apana.org.au \
    --cc=hugues.fruchet@foss.st.com \
    --cc=jic23@kernel.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=kuba@kernel.org \
    --cc=lars@metafoo.de \
    --cc=lee@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-phy@lists.infradead.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=linux-usb@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=mkl@pengutronix.de \
    --cc=netdev@vger.kernel.org \
    --cc=olivier.moysan@foss.st.com \
    --cc=pabeni@redhat.com \
    --cc=peng.fan@oss.nxp.com \
    --cc=rcsekar@samsung.com \
    --cc=richardcochran@gmail.com \
    --cc=robh+dt@kernel.org \
    --cc=robh@kernel.org \
    --cc=ulf.hansson@linaro.org \
    --cc=vkoul@kernel.org \
    --cc=wg@grandegger.com \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.