* [PATCH v3 1/2] mtd: core: add nvmem-cells compatible to parse mtd as nvmem cells
@ 2021-03-08 1:18 Ansuel Smith
2021-03-08 1:18 ` [PATCH v3 2/2] dt-bindings: mtd: Document use of nvmem-cells compatible Ansuel Smith
0 siblings, 1 reply; 3+ messages in thread
From: Ansuel Smith @ 2021-03-08 1:18 UTC (permalink / raw)
To: Vignesh Raghavendra
Cc: Ansuel Smith, Miquel Raynal, Richard Weinberger, Rob Herring,
linux-mtd, devicetree, linux-kernel
Partitions that contains the nvmem-cells compatible will register
their direct subonodes as nvmem cells and the node will be treated as a
nvmem provider.
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
---
Depends on [PATCH] mtd: parsers: ofpart: limit parsing of deprecated DT syntax
---
drivers/mtd/mtdcore.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
index 2d6423d89a17..ac1b4f176a17 100644
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -531,6 +531,7 @@ static int mtd_nvmem_reg_read(void *priv, unsigned int offset,
static int mtd_nvmem_add(struct mtd_info *mtd)
{
+ struct device_node *node = mtd_get_of_node(mtd);
struct nvmem_config config = {};
config.id = -1;
@@ -543,7 +544,7 @@ static int mtd_nvmem_add(struct mtd_info *mtd)
config.stride = 1;
config.read_only = true;
config.root_only = true;
- config.no_of_node = true;
+ config.no_of_node = !of_device_is_compatible(node, "nvmem-cells");
config.priv = mtd;
mtd->nvmem = nvmem_register(&config);
--
2.30.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH v3 2/2] dt-bindings: mtd: Document use of nvmem-cells compatible
2021-03-08 1:18 [PATCH v3 1/2] mtd: core: add nvmem-cells compatible to parse mtd as nvmem cells Ansuel Smith
@ 2021-03-08 1:18 ` Ansuel Smith
2021-03-10 2:58 ` Rob Herring
0 siblings, 1 reply; 3+ messages in thread
From: Ansuel Smith @ 2021-03-08 1:18 UTC (permalink / raw)
To: Vignesh Raghavendra
Cc: Ansuel Smith, Miquel Raynal, Richard Weinberger, Rob Herring,
linux-mtd, devicetree, linux-kernel
Document nvmem-cells compatible used to treat mtd partitions as a
nvmem provider.
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
---
.../bindings/mtd/partitions/nvmem-cells.yaml | 105 ++++++++++++++++++
1 file changed, 105 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mtd/partitions/nvmem-cells.yaml
diff --git a/Documentation/devicetree/bindings/mtd/partitions/nvmem-cells.yaml b/Documentation/devicetree/bindings/mtd/partitions/nvmem-cells.yaml
new file mode 100644
index 000000000000..4ed246b27985
--- /dev/null
+++ b/Documentation/devicetree/bindings/mtd/partitions/nvmem-cells.yaml
@@ -0,0 +1,105 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mtd/partitions/nvmem-cells.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Nvmem cells
+
+description: |
+ This binding can be used to treat the specific partition as a nvmem provider.
+ Each direct subnodes represents the nvmem cells and won't be parsed as fixed-partitions.
+ Fixed-partitions bindings described in fixed-partitions.yaml apply to the nvmem provider node.
+
+maintainers:
+ - Ansuel Smith <ansuelsmth@gmail.com>
+
+properties:
+ compatible:
+ const: nvmem-cells
+
+ "#address-cells": true
+
+ "#size-cells": true
+
+ reg:
+ description: partition offset and size within the flash
+ maxItems: 1
+
+required:
+ - compatible
+ - "#address-cells"
+ - "#size-cells"
+ - reg
+
+additionalProperties: true
+
+examples:
+ - |
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ /* ... */
+
+ };
+ art: art@1200000 {
+ compatible = "nvmem-cells";
+ reg = <0x1200000 0x0140000>;
+ label = "art";
+ read-only;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ macaddr_gmac1: macaddr_gmac1@0 {
+ reg = <0x0 0x6>;
+ };
+
+ macaddr_gmac2: macaddr_gmac2@6 {
+ reg = <0x6 0x6>;
+ };
+
+ pre_cal_24g: pre_cal_24g@1000 {
+ reg = <0x1000 0x2f20>;
+ };
+
+ pre_cal_5g: pre_cal_5g@5000{
+ reg = <0x5000 0x2f20>;
+ };
+ };
+ - |
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "bootloader";
+ reg = <0x000000 0x100000>;
+ read-only;
+ };
+
+ firmware@100000 {
+ compatible = "brcm,trx";
+ label = "firmware";
+ reg = <0x100000 0xe00000>;
+ };
+
+ calibration@f00000 {
+ compatible = "nvmem-cells";
+ label = "calibration";
+ reg = <0xf00000 0x100000>;
+ ranges = <0 0xf00000 0x100000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ wifi0@0 {
+ reg = <0x000000 0x080000>;
+ };
+
+ wifi1@80000 {
+ reg = <0x080000 0x080000>;
+ };
+ };
+ };
--
2.30.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v3 2/2] dt-bindings: mtd: Document use of nvmem-cells compatible
2021-03-08 1:18 ` [PATCH v3 2/2] dt-bindings: mtd: Document use of nvmem-cells compatible Ansuel Smith
@ 2021-03-10 2:58 ` Rob Herring
0 siblings, 0 replies; 3+ messages in thread
From: Rob Herring @ 2021-03-10 2:58 UTC (permalink / raw)
To: Ansuel Smith
Cc: Vignesh Raghavendra, Miquel Raynal, Richard Weinberger,
linux-mtd, devicetree, linux-kernel
On Mon, Mar 08, 2021 at 02:18:45AM +0100, Ansuel Smith wrote:
> Document nvmem-cells compatible used to treat mtd partitions as a
> nvmem provider.
>
> Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
> ---
> .../bindings/mtd/partitions/nvmem-cells.yaml | 105 ++++++++++++++++++
> 1 file changed, 105 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/mtd/partitions/nvmem-cells.yaml
>
> diff --git a/Documentation/devicetree/bindings/mtd/partitions/nvmem-cells.yaml b/Documentation/devicetree/bindings/mtd/partitions/nvmem-cells.yaml
> new file mode 100644
> index 000000000000..4ed246b27985
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mtd/partitions/nvmem-cells.yaml
> @@ -0,0 +1,105 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mtd/partitions/nvmem-cells.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Nvmem cells
> +
> +description: |
> + This binding can be used to treat the specific partition as a nvmem provider.
> + Each direct subnodes represents the nvmem cells and won't be parsed as fixed-partitions.
> + Fixed-partitions bindings described in fixed-partitions.yaml apply to the nvmem provider node.
> +
> +maintainers:
> + - Ansuel Smith <ansuelsmth@gmail.com>
> +
I think this should reference nvmem.yaml. We can drop the $nodename
restrictions in it.
> +properties:
> + compatible:
> + const: nvmem-cells
> +
> + "#address-cells": true
> +
> + "#size-cells": true
> +
> + reg:
> + description: partition offset and size within the flash
> + maxItems: 1
> +
> +required:
> + - compatible
> + - "#address-cells"
> + - "#size-cells"
> + - reg
> +
> +additionalProperties: true
> +
> +examples:
> + - |
> + partitions {
> + compatible = "fixed-partitions";
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + /* ... */
> +
> + };
> + art: art@1200000 {
> + compatible = "nvmem-cells";
> + reg = <0x1200000 0x0140000>;
> + label = "art";
> + read-only;
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + macaddr_gmac1: macaddr_gmac1@0 {
> + reg = <0x0 0x6>;
> + };
> +
> + macaddr_gmac2: macaddr_gmac2@6 {
> + reg = <0x6 0x6>;
> + };
> +
> + pre_cal_24g: pre_cal_24g@1000 {
> + reg = <0x1000 0x2f20>;
> + };
> +
> + pre_cal_5g: pre_cal_5g@5000{
> + reg = <0x5000 0x2f20>;
> + };
> + };
> + - |
> + partitions {
> + compatible = "fixed-partitions";
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + partition@0 {
> + label = "bootloader";
> + reg = <0x000000 0x100000>;
> + read-only;
> + };
> +
> + firmware@100000 {
> + compatible = "brcm,trx";
> + label = "firmware";
> + reg = <0x100000 0xe00000>;
> + };
> +
> + calibration@f00000 {
> + compatible = "nvmem-cells";
> + label = "calibration";
> + reg = <0xf00000 0x100000>;
> + ranges = <0 0xf00000 0x100000>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + wifi0@0 {
> + reg = <0x000000 0x080000>;
> + };
> +
> + wifi1@80000 {
> + reg = <0x080000 0x080000>;
> + };
> + };
> + };
> --
> 2.30.0
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-03-10 2:59 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-08 1:18 [PATCH v3 1/2] mtd: core: add nvmem-cells compatible to parse mtd as nvmem cells Ansuel Smith
2021-03-08 1:18 ` [PATCH v3 2/2] dt-bindings: mtd: Document use of nvmem-cells compatible Ansuel Smith
2021-03-10 2:58 ` Rob Herring
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).