Re: [RFC PATCH 0/2] eeprom: at25: support Cypress FRAMs without device ID
From: Christian Eggers
Date: Tue Apr 01 2025 - 09:45:39 EST
Hi Markus,
I use the following FRAM device: Fujitsu mb85rs1mt.
This FRAM is also not able to report its size (at least I didn't
try). I can use this FRAM with the following (Eeeprom) settings:
compatible = "fujitsu,mb85rs1mt", "atmel,at25";
reg = <0>;
spi-max-frequency = <30000000>;
/* mode0, uncomment for mode3 */
/*spi-cpha;
spi-cpol;*/
/* from the datasheet it seems that there is no page size for FRAM */
pagesize = <131072>;
size = <131072>;
address-width = <24>;
Is this what you are looking for? Of course, the "type" attribute
reports "EEPROM" with this configuration, but my application don't care
about this.
regards,
Christian
On Tuesday, 1 April 2025, 15:30:46 CEST, Markus Heidelberg wrote:
> Hello,
>
> this patch series is marked as RFC because I'm unsure if it
> should rather be implemented with an adaption in this binding:
>
> Documentation/devicetree/bindings/eeprom/at25.yaml
>
> Currently supported FRAMs use compatible="cypress,fm25","atmel,at25" in
> Devicetree, the memory size is read from its device ID.
> For FRAMs without device ID this is not possible, so the "size" property
> has to be set manually as it is done for EEPROMs.
>
> I had a few solutions for implementation in mind, but opted for the
> simplest one as base for discussion:
>
> - Use the existing "compatible" string and additionally set "size". Only
> read the device ID if "size" is not set.
>
> But this way there is already the problem that "size" is required for
> FRAMs without device ID, but I cannot specify that in the binding
> because of the reused "compatible" string.
>
> Other ideas that came to mind:
>
> - Add "cypress,fm25l16b" (chip is named FM25L16B) and define "size" as
> required property. Use that instead of "cypress,fm25".
>
> According to Documentation/devicetree/bindings/writing-bindings.rst
> this might even be necessary regarding this statement:
>
> "DO add new compatibles in case there are new features or bugs."
>
> The existing "cypress,fm25" ("FM25" is not the real name of a chip,
> but the common prefix) also doesn't seem chosen right regarding this
> statement:
>
> "DO make ‘compatible’ properties specific. DON'T use wildcards in
> compatible strings."
>
> - Add a boolean property "no-device-id" to the existing "compatible"
> string and in case this boolean is set, define "size" as required.
>
> This seems a bit awkward at first sight. Also, would this really solve
> the above mentioned problem with specification of the binding?
>
> Bye!
>
> Markus Heidelberg (2):
> eeprom: at25: support Cypress FRAMs without device ID
> eeprom: at25: make FRAM device ID error message more precise
>
> drivers/misc/eeprom/at25.c | 42 ++++++++++++++++++++++----------------
> 1 file changed, 24 insertions(+), 18 deletions(-)
>
>