From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
To: Matt Porter <mporter@konsulko.com>, Rob Herring <robherring2@gmail.com>
Cc: "linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
Arnd Bergmann <arnd@arndb.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Sascha Hauer <s.hauer@pengutronix.de>,
Stephen Boyd <sboyd@codeaurora.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Rob Herring <robh+dt@kernel.org>, Mark Brown <broonie@kernel.org>,
Kumar Gala <galak@codeaurora.org>,
Maxime Ripard <maxime.ripard@free-electrons.com>,
"linux-api@vger.kernel.org" <linux-api@vger.kernel.org>,
linux-arm-msm <linux-arm-msm@vger.kernel.org>
Subject: Re: [PATCH v4 05/10] eeprom: Add bindings for simple eeprom framework
Date: Tue, 07 Apr 2015 18:35:49 +0100 [thread overview]
Message-ID: <55241575.7040809@linaro.org> (raw)
In-Reply-To: <20150406150442.GA26319@beef>
Thanks Matt and Rob for review,
On 06/04/15 16:04, Matt Porter wrote:
> On Mon, Apr 06, 2015 at 09:11:05AM -0500, Rob Herring wrote:
>> On Mon, Apr 6, 2015 at 8:32 AM, Matt Porter <mporter@konsulko.com> wrote:
>>> On Mon, Mar 30, 2015 at 10:57:59PM +0100, Srinivas Kandagatla wrote:
>>>> This patch adds bindings for simple eeprom framework which allows eeprom
>>>> consumers to talk to eeprom providers to get access to eeprom cell data.
>>>>
>>>> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
>>>> [Maxime Ripard: intial version of eeprom framework]
>>>> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
>>>> ---
>>>> .../devicetree/bindings/eeprom/eeprom.txt | 58 ++++++++++++++++++++++
>>>> 1 file changed, 58 insertions(+)
>>>> create mode 100644 Documentation/devicetree/bindings/eeprom/eeprom.txt
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/eeprom/eeprom.txt b/Documentation/devicetree/bindings/eeprom/eeprom.txt
>>>> new file mode 100644
>>>> index 0000000..fb71d46
>>>> --- /dev/null
>>>> +++ b/Documentation/devicetree/bindings/eeprom/eeprom.txt
>>>> @@ -0,0 +1,58 @@
>>>> += EEPROM Data Device Tree Bindings =
>>>> +
>>>> +This binding is intended to represent the location of hardware
>>>> +configuration data stored in EEPROMs.
>>>> +
>>>> +On a significant proportion of boards, the manufacturer has stored
>>>> +some data on an EEPROM-like device, for the OS to be able to retrieve
>>>> +these information and act upon it. Obviously, the OS has to know
>>>> +about where to retrieve these data from, and where they are stored on
>>>> +the storage device.
>>>
>>> Since this binding (and the kernel framework supporting it) describes
>>> non-volatile memory devices other than EEPROMs (e.g. EFuses) it should
>>> be named more generically like "nvmem".
>>>
nvmem sounds sensible name, I will rename framework to nvmem in next
version.
>>>> +
>>>> +This document is here to document this.
>>>> +
>>>> += Data providers =
>>>> +Contains bindings specific to provider drivers and data cells as children
>>>> +to this node.
>>>> +
>>>> += Data cells =
>>>> +These are the child nodes of the provider which contain data cell
>>>> +information like offset and size in eeprom provider.
>>>> +
>>>> +Required properties:
>>>> +reg: specifies the offset in byte within that storage device, and the length
>>>> + in bytes of the data we care about.
>>>> + There could be more then one offset-length pairs in this property.
>>>> +
>>>> +Optional properties:
>>>> +As required by specific data parsers/interpreters.
>>>
>>> The generic binding could really use a "read-only" property here as this
>>> is a common hardware attribute for many nvmem devices. A serial EEPROM
>>> commonly has a write protect pin which may be hard-wired such that the
>>> hardware description should reflect that. An EFuse is typically blown with
>>> the required information at manufacturing time (for an end product case)
>>> and would be marked with the "read-only" flag.
>>>
>>> Having this optional flag in the generic binding would allow the
>>> framework to hint to consumers about the inability to write to the
>>> provided region.
>>
>> This could get fairly complex if you wanted to describe grouping of WP
>> regions which could have different layout than the fields here. This
>> may be better left as a device property listing addr & size pairs.
>> However, there is the notion of s/w "read-only" which means the OS
>> should not allow write access. The MTD partition binding supports this
>> with the "read-only" property.
>
> Yes, if the backing device has the capability to hw write protect
> regions the exported fields overlap those then it does get ugly.
> The MTD partition property was the inspiration here so perhaps it's
> best to term this as a property indicating how the data region is
> used in an implementation.
>
Correct me If am wrong.
Regarding write protection/read-only, regmap already has provisions to
support this feature. regmap would bail out with errors if any attempt
to write to non-writable regions. It all depends on the data providers
how they setup the regmap and the bindings for those are specific
individual data providers I think.
This would protect the user space side and kernel side consumers as well.
This should address your original query, I guess :-)
Thanks,
srini
> If it's left as a device property, then a binding with this property
> would need to be defined for the Efuse, etc. cases..or a simple-nvmem
> binding to handle the various OTP technologies.
>
>>> The framework sysfs attributes provide a userspace EEPROM consumer where
>>> it would be useful information to know that a data provider region is
>>> read only rather than having the exported writeable attribute simply
>>> fail a write cycle. This would allow the consumer to be aware that a
>>> failed write (if even attempted) is expected if the data provider
>>> advertised itself as read-only.
>>
>> You could distinguish with RW versus RO file attributes.
>
> Right, that would be preferred, based on the what the data provider
> advertises.
>
> -Matt
>
next prev parent reply other threads:[~2015-04-07 17:35 UTC|newest]
Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1425548685-12887-1-git-send-email-srinivas.kandagatla@linaro.org>
2015-03-13 9:49 ` [PATCH v2 0/7] Add simple EEPROM Framework via regmap Srinivas Kandagatla
2015-03-13 9:50 ` [PATCH v2 2/7] eeprom: Add a simple EEPROM framework for eeprom consumers Srinivas Kandagatla
2015-03-13 9:50 ` [PATCH v2 3/7] eeprom: Add bindings for simple eeprom framework Srinivas Kandagatla
2015-03-13 9:50 ` [PATCH v2 4/7] eeprom: sunxi: Move the SID driver to the " Srinivas Kandagatla
[not found] ` <1426240157-2383-1-git-send-email-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-03-13 9:50 ` [PATCH v2 1/7] eeprom: Add a simple EEPROM framework for eeprom providers Srinivas Kandagatla
[not found] ` <1426240214-2434-1-git-send-email-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-03-23 21:09 ` Mark Brown
[not found] ` <20150323210918.GS14954-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-03-23 22:05 ` Srinivas Kandagatla
[not found] ` <55108E2B.7050305-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-03-24 9:18 ` Srinivas Kandagatla
2015-03-24 17:23 ` Mark Brown
2015-03-24 18:34 ` Srinivas Kandagatla
2015-03-24 19:02 ` Mark Brown
2015-03-24 19:26 ` Srinivas Kandagatla
2015-03-24 20:55 ` Mark Brown
2015-03-13 9:50 ` [PATCH v2 5/7] eeprom: qfprom: Add Qualcomm QFPROM support Srinivas Kandagatla
2015-03-13 9:50 ` [PATCH v2 6/7] eeprom: qfprom: Add bindings for qfprom Srinivas Kandagatla
2015-03-13 9:51 ` [PATCH v2 7/7] eeprom: Add to MAINTAINERS for eeprom framework Srinivas Kandagatla
2015-03-24 22:28 ` [PATCH v3 0/9] Add simple EEPROM Framework via regmap Srinivas Kandagatla
2015-03-24 22:29 ` [PATCH v3 1/9] regmap: Introduce regmap_get_max_register Srinivas Kandagatla
2015-03-24 22:36 ` Mark Brown
2015-03-24 23:05 ` Srinivas Kandagatla
2015-03-24 23:23 ` Joe Perches
[not found] ` <1427236116-18531-1-git-send-email-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-03-24 22:30 ` [PATCH v3 2/9] regmap: Introduce regmap_get_reg_stride Srinivas Kandagatla
2015-03-24 22:37 ` Mark Brown
[not found] ` <20150324223745.GC28997-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-03-24 23:07 ` Srinivas Kandagatla
2015-03-24 22:30 ` [PATCH v3 7/9] eeprom: qfprom: Add Qualcomm QFPROM support Srinivas Kandagatla
2015-03-24 22:30 ` [PATCH v3 3/9] eeprom: Add a simple EEPROM framework for eeprom providers Srinivas Kandagatla
2015-03-24 22:53 ` Mark Brown
[not found] ` <20150324225317.GD28997-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-03-26 16:23 ` Srinivas Kandagatla
2015-03-24 22:30 ` [PATCH v3 4/9] eeprom: Add a simple EEPROM framework for eeprom consumers Srinivas Kandagatla
[not found] ` <1427236219-18709-1-git-send-email-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-03-25 7:16 ` Sascha Hauer
2015-03-25 12:29 ` Srinivas Kandagatla
2015-03-24 22:30 ` [PATCH v3 5/9] eeprom: Add bindings for simple eeprom framework Srinivas Kandagatla
2015-03-25 7:10 ` Sascha Hauer
2015-03-25 16:40 ` Maxime Ripard
2015-03-24 22:30 ` [PATCH v3 6/9] eeprom: sunxi: Move the SID driver to the " Srinivas Kandagatla
2015-03-24 22:31 ` [PATCH v3 8/9] eeprom: qfprom: Add bindings for qfprom Srinivas Kandagatla
2015-03-25 0:28 ` Bjorn Andersson
2015-03-24 22:31 ` [PATCH v3 9/9] eeprom: Add to MAINTAINERS for eeprom framework Srinivas Kandagatla
2015-03-30 21:54 ` [PATCH v4 00/10] Add simple EEPROM Framework via regmap Srinivas Kandagatla
2015-03-30 21:56 ` [PATCH v4 01/10] regmap: Introduce regmap_get_max_register Srinivas Kandagatla
2015-05-04 12:05 ` Mark Brown
2015-03-30 21:57 ` [PATCH v4 02/10] regmap: Introduce regmap_get_reg_stride Srinivas Kandagatla
2015-03-30 21:57 ` [PATCH v4 03/10] eeprom: Add a simple EEPROM framework for eeprom providers Srinivas Kandagatla
[not found] ` <1427752492-17039-1-git-send-email-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-03-30 21:57 ` [PATCH v4 04/10] eeprom: Add a simple EEPROM framework for eeprom consumers Srinivas Kandagatla
2015-04-07 18:45 ` Stephen Boyd
2015-04-07 20:09 ` Srinivas Kandagatla
2015-04-09 14:45 ` Stephen Boyd
2015-04-10 11:45 ` Maxime Ripard
[not found] ` <20150409144522.GB9663-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-05-05 11:46 ` Srinivas Kandagatla
2015-05-08 5:23 ` Sascha Hauer
2015-05-06 17:28 ` Mark Brown
2015-03-30 21:57 ` [PATCH v4 05/10] eeprom: Add bindings for simple eeprom framework Srinivas Kandagatla
[not found] ` <1427752679-17261-1-git-send-email-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-04-06 13:32 ` Matt Porter
2015-04-06 14:11 ` Rob Herring
[not found] ` <CAL_Jsq++9pyJMLXssgyz2WRU4e7ikT_6FwzWMo1fKS82FJvEyg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-06 15:04 ` Matt Porter
2015-04-07 17:35 ` Srinivas Kandagatla [this message]
2015-04-07 17:46 ` Mark Brown
2015-04-07 18:03 ` Srinivas Kandagatla
2015-04-07 19:46 ` Matt Porter
2015-04-08 9:24 ` Srinivas Kandagatla
2015-03-30 21:58 ` [PATCH v4 06/10] eeprom: Add simple eeprom-mmio consumer helper functions Srinivas Kandagatla
2015-03-30 21:58 ` [PATCH v4 07/10] eeprom: qfprom: Add Qualcomm QFPROM support Srinivas Kandagatla
2015-03-30 21:58 ` [PATCH v4 08/10] eeprom: qfprom: Add bindings for qfprom Srinivas Kandagatla
2015-03-30 21:58 ` [PATCH v4 09/10] eeprom: sunxi: Move the SID driver to the eeprom framework Srinivas Kandagatla
2015-03-30 21:58 ` [PATCH v4 10/10] eeprom: Add to MAINTAINERS for " Srinivas Kandagatla
2015-05-21 16:42 ` [PATCH v5 00/11] Add simple NVMEM Framework via regmap Srinivas Kandagatla
2015-05-21 16:42 ` [PATCH v5 01/11] regmap: Introduce regmap_get_max_register Srinivas Kandagatla
2015-05-22 11:18 ` Mark Brown
2015-05-21 16:42 ` [PATCH v5 02/11] regmap: Introduce regmap_get_reg_stride Srinivas Kandagatla
2015-05-22 11:19 ` Mark Brown
2015-05-21 16:43 ` [PATCH v5 03/11] nvmem: Add a simple NVMEM framework for nvmem providers Srinivas Kandagatla
[not found] ` <1432226583-8775-1-git-send-email-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-06-16 22:43 ` Stephen Boyd
[not found] ` <5580A678.4080304-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-06-18 12:46 ` Srinivas Kandagatla
[not found] ` <5582BDAE.5040008-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-06-24 0:24 ` Stephen Boyd
2015-06-24 10:05 ` Srinivas Kandagatla
2015-05-21 16:43 ` [PATCH v5 05/11] nvmem: Add nvmem_device based consumer apis Srinivas Kandagatla
2015-06-16 22:49 ` Stephen Boyd
[not found] ` <5580A7EA.2090909-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-06-18 12:57 ` Srinivas Kandagatla
2015-05-21 16:44 ` [PATCH v5 06/11] nvmem: Add bindings for simple nvmem framework Srinivas Kandagatla
2015-06-16 22:53 ` Stephen Boyd
[not found] ` <5580A900.9070902-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-06-18 13:01 ` Srinivas Kandagatla
[not found] ` <1432226652-8947-1-git-send-email-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-06-19 10:36 ` maitysanchayan-Re5JQEeQqe8AvxtiuMwx3w
2015-06-19 10:59 ` Srinivas Kandagatla
2015-05-21 16:44 ` [PATCH v5 08/11] nvmem: qfprom: Add Qualcomm QFPROM support Srinivas Kandagatla
2015-06-16 23:00 ` Stephen Boyd
[not found] ` <5580AA9B.7040001-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-06-18 13:22 ` Srinivas Kandagatla
[not found] ` <1432226535-8640-1-git-send-email-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-05-21 16:43 ` [PATCH v5 04/11] nvmem: Add a simple NVMEM framework for consumers Srinivas Kandagatla
2015-06-16 22:29 ` Stephen Boyd
2015-06-17 8:00 ` Sascha Hauer
2015-06-18 12:56 ` Srinivas Kandagatla
2015-05-21 16:44 ` [PATCH v5 07/11] nvmem: Add simple nvmem-mmio consumer helper functions Srinivas Kandagatla
[not found] ` <1432226665-8994-1-git-send-email-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-06-16 22:58 ` Stephen Boyd
[not found] ` <5580AA05.90709-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-06-18 13:08 ` Srinivas Kandagatla
2015-05-21 16:44 ` [PATCH v5 09/11] nvmem: qfprom: Add bindings for qfprom Srinivas Kandagatla
[not found] ` <1432226685-9081-1-git-send-email-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-06-16 23:01 ` Stephen Boyd
2015-05-21 16:45 ` [PATCH v5 11/11] nvmem: Add to MAINTAINERS for nvmem framework Srinivas Kandagatla
2015-05-21 16:45 ` [PATCH v5 10/11] nvmem: sunxi: Move the SID driver to the " Srinivas Kandagatla
[not found] ` <1432226733-9243-1-git-send-email-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-06-16 23:04 ` Stephen Boyd
2015-06-18 13:09 ` Srinivas Kandagatla
2015-05-25 16:51 ` [PATCH v5 00/11] Add simple NVMEM Framework via regmap Pantelis Antoniou
2015-05-26 9:12 ` Srinivas Kandagatla
[not found] ` <556438FF.7020105-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-05-26 17:54 ` Pantelis Antoniou
2015-05-29 1:20 ` Dan Williams
[not found] ` <CAA9_cmetqnqTQPCd8ya5AJPKQw8ary8CwsE6TUv=f57O=_MH5w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-29 7:09 ` Srinivas Kandagatla
2015-05-29 21:44 ` Dan Williams
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=55241575.7040809@linaro.org \
--to=srinivas.kandagatla@linaro.org \
--cc=arnd@arndb.de \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=galak@codeaurora.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-api@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maxime.ripard@free-electrons.com \
--cc=mporter@konsulko.com \
--cc=robh+dt@kernel.org \
--cc=robherring2@gmail.com \
--cc=s.hauer@pengutronix.de \
--cc=sboyd@codeaurora.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 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).