Thread (153 messages) flat view 153 messages, 15 authors, 2015-06-24

[RFC PATCH 1/3] eeprom: Add a simple EEPROM framework

From: Srinivas Kandagatla <hidden>
Date: 2015-02-26 14:56:58
Also in: linux-api, linux-devicetree, lkml


On 26/02/15 13:21, Maxime Ripard wrote:
On Thu, Feb 26, 2015 at 09:16:27AM +0000, Srinivas Kandagatla wrote:
quoted
I think we are making simple eeprom framework too smart which will
break in future.

IMHO, Anything on top of eeprom interface that interprets the data should
not go into the eeprom framework itself, it can either live some parsers/SOC
specific drivers/interfaces.
True, but that doesn't mean that this parser support can't be built
within the framework itself.
I was more of thinking parsers/interpreters as a layer on top of this 
framework. Allowing the simplest users direct access to framework. Also 
just eeprom_read() apis would not cater for all the parsers and I think 
it would be very difficult to come up with abstracted consumer apis for 
all the parsers which could be iterator or link-lists parsers or 
something very different.
quoted
As Stephen pointed out earlier lets start with something like this, which
would provide a better abstraction to the discussed use cases like
serial-number and packed data in eeprom.

    qfprom at 1000000 {
       reg = <0x1000000 0x1000>;
       ranges = <0 0x1000000 0x1000>;
       compatible = "qcom,qfprom-msm8960"

       pvs-data: pvs-data at 40 {
             compatible = "qcom,pvs-a";
             reg = <0x40 0x20>,
       };

        tsens-data: tmdata at 10 {
             reg = <0x10 40>;
       };

       serial-number: serial at 50 {
             compatible = "qcom,serial-msm8960";
             reg = <0x50 4>, <0x60 4>;
       };

    };
And I'm sorry, but I still don't get why the compatibles are needed
here.
This is an optional property, only purpose of this would be to serve as 
parser/soc-specific identifier.
quoted
and then on the consumer side:

	device {
		eeproms = <&serial-number>;
		eeprom-names = "soc-rev-id";
	};
	
driver side:

	eeprom_get_cell()
	eeprom_read();
Looks good otherwise.
thanks
--srini
Maxime
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help