2022-02-09 07:43:24

by Sean Anderson

[permalink] [raw]
Subject: [PATCH v2] doc: nvmem: Remove references to regmap

Since commit 795ddd18d38f ("nvmem: core: remove regmap dependency"),
nvmem devices do not use the regmap API. Remove references to it from
the documentation. Additionally, update the example to reflect the new
API. I have chosen the brcm-nvram driver since it seems to be simpler
than the qfprom driver.

Signed-off-by: Sean Anderson <[email protected]>
---

Changes in v2:
- Replace spaces with tabs

Documentation/driver-api/nvmem.rst | 28 ++++++++++++----------------
1 file changed, 12 insertions(+), 16 deletions(-)

diff --git a/Documentation/driver-api/nvmem.rst b/Documentation/driver-api/nvmem.rst
index 287e86819640..a8a58b61709b 100644
--- a/Documentation/driver-api/nvmem.rst
+++ b/Documentation/driver-api/nvmem.rst
@@ -26,9 +26,7 @@ was a rather big abstraction leak.

This framework aims at solve these problems. It also introduces DT
representation for consumer devices to go get the data they require (MAC
-Addresses, SoC/Revision ID, part numbers, and so on) from the NVMEMs. This
-framework is based on regmap, so that most of the abstraction available in
-regmap can be reused, across multiple types of buses.
+Addresses, SoC/Revision ID, part numbers, and so on) from the NVMEMs.

NVMEM Providers
+++++++++++++++
@@ -45,24 +43,22 @@ nvmem_device pointer.

nvmem_unregister(nvmem) is used to unregister a previously registered provider.

-For example, a simple qfprom case::
+For example, a simple nvram case::

- static struct nvmem_config econfig = {
- .name = "qfprom",
- .owner = THIS_MODULE,
- };
-
- static int qfprom_probe(struct platform_device *pdev)
+ static int brcm_nvram_probe(struct platform_device *pdev)
{
+ struct nvmem_config config = {
+ .name = "brcm-nvram",
+ .reg_read = brcm_nvram_read,
+ };
...
- econfig.dev = &pdev->dev;
- nvmem = nvmem_register(&econfig);
- ...
+ config.dev = &pdev->dev;
+ config.priv = priv;
+ config.size = resource_size(res);
+
+ devm_nvmem_register(&econfig);
}

-It is mandatory that the NVMEM provider has a regmap associated with its
-struct device. Failure to do would return error code from nvmem_register().
-
Users of board files can define and register nvmem cells using the
nvmem_cell_table struct::

--
2.25.1



2022-02-14 14:23:26

by Srinivas Kandagatla

[permalink] [raw]
Subject: Re: [PATCH v2] doc: nvmem: Remove references to regmap

Hi Sean,
Thanks for the patch,

On 08/02/2022 16:26, Sean Anderson wrote:
> Since commit 795ddd18d38f ("nvmem: core: remove regmap dependency"),
> nvmem devices do not use the regmap API. Remove references to it from
> the documentation. Additionally, update the example to reflect the new
> API. I have chosen the brcm-nvram driver since it seems to be simpler
> than the qfprom driver.
>

Please split this into two patches.


--srini

> Signed-off-by: Sean Anderson <[email protected]>
> ---
>
> Changes in v2:
> - Replace spaces with tabs
>
> Documentation/driver-api/nvmem.rst | 28 ++++++++++++----------------
> 1 file changed, 12 insertions(+), 16 deletions(-)
>
> diff --git a/Documentation/driver-api/nvmem.rst b/Documentation/driver-api/nvmem.rst
> index 287e86819640..a8a58b61709b 100644
> --- a/Documentation/driver-api/nvmem.rst
> +++ b/Documentation/driver-api/nvmem.rst
> @@ -26,9 +26,7 @@ was a rather big abstraction leak.
>
> This framework aims at solve these problems. It also introduces DT
> representation for consumer devices to go get the data they require (MAC
> -Addresses, SoC/Revision ID, part numbers, and so on) from the NVMEMs. This
> -framework is based on regmap, so that most of the abstraction available in
> -regmap can be reused, across multiple types of buses.
> +Addresses, SoC/Revision ID, part numbers, and so on) from the NVMEMs.
>
> NVMEM Providers
> +++++++++++++++
> @@ -45,24 +43,22 @@ nvmem_device pointer.
>
> nvmem_unregister(nvmem) is used to unregister a previously registered provider.
>
> -For example, a simple qfprom case::
> +For example, a simple nvram case::
>
> - static struct nvmem_config econfig = {
> - .name = "qfprom",
> - .owner = THIS_MODULE,
> - };
> -
> - static int qfprom_probe(struct platform_device *pdev)
> + static int brcm_nvram_probe(struct platform_device *pdev)
> {
> + struct nvmem_config config = {
> + .name = "brcm-nvram",
> + .reg_read = brcm_nvram_read,
> + };
> ...
> - econfig.dev = &pdev->dev;
> - nvmem = nvmem_register(&econfig);
> - ...
> + config.dev = &pdev->dev;
> + config.priv = priv;
> + config.size = resource_size(res);
> +
> + devm_nvmem_register(&econfig);
> }
>
> -It is mandatory that the NVMEM provider has a regmap associated with its
> -struct device. Failure to do would return error code from nvmem_register().
> -
> Users of board files can define and register nvmem cells using the
> nvmem_cell_table struct::
>