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
next prev parent 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: linkBe 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.