[PATCH 2/3] riscv: dts: spacemit: add 24c02 eeprom on BPI-F3

Aurelien Jarno posted 3 patches 1 week, 3 days ago
There is a newer version of this series
[PATCH 2/3] riscv: dts: spacemit: add 24c02 eeprom on BPI-F3
Posted by Aurelien Jarno 1 week, 3 days ago
The BPI-F3 contains a 24c02 eeprom, that contains among other things the
MAC addresses of the two network interfaces. For this reason, mark it as
read-only.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
 arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
index 3b6e4f52e9aad..574d10fdf9b82 100644
--- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
+++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
@@ -115,6 +115,15 @@ &i2c2 {
 	pinctrl-0 = <&i2c2_0_cfg>;
 	pinctrl-names = "default";
 	status = "okay";
+
+	eeprom@50 {
+		compatible = "atmel,24c02";
+		reg = <0x50>;
+		vcc-supply = <&vcc1v8_sys>;
+		pagesize = <16>;
+		read-only;
+		size = <256>;
+	};
 };
 
 &i2c8 {
@@ -143,7 +152,7 @@ buck2 {
 				regulator-always-on;
 			};
 
-			buck3 {
+			vcc1v8_sys: buck3 {
 				regulator-min-microvolt = <500000>;
 				regulator-max-microvolt = <1800000>;
 				regulator-ramp-delay = <5000>;
-- 
2.47.2
Re: [PATCH 2/3] riscv: dts: spacemit: add 24c02 eeprom on BPI-F3
Posted by Vivian Wang 1 week, 1 day ago
Hi Aurelien,

On 9/22/25 05:01, Aurelien Jarno wrote:
> The BPI-F3 contains a 24c02 eeprom, that contains among other things the
> MAC addresses of the two network interfaces. For this reason, mark it as
> read-only.
>
> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
> ---
>  arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> index 3b6e4f52e9aad..574d10fdf9b82 100644
> --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> @@ -115,6 +115,15 @@ &i2c2 {
>  	pinctrl-0 = <&i2c2_0_cfg>;
>  	pinctrl-names = "default";
>  	status = "okay";
> +
> +	eeprom@50 {
> +		compatible = "atmel,24c02";
> +		reg = <0x50>;
> +		vcc-supply = <&vcc1v8_sys>;
> +		pagesize = <16>;
> +		read-only;
> +		size = <256>;
> +	};
>  };
>  

I wonder if it would possibly make sense to specify a nvmem-layout here.
The BPI-F3 I have here has this in the 24c02:

00000000  54 6c 76 49 6e 66 6f 00  01 00 20 24 06 fe fe fe  |TlvInfo... $....|
00000010  XX XX XX 2a 02 00 02 23  0c XX XX XX XX XX XX XX  |...*...#.XXXXXXX|
00000020  XX XX XX XX XX fe 04 XX  XX XX XX ff ff ff ff ff  |XXXXX..XXXX.....|
00000030  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00000100

(... with variable parts replaced with X)

And, AFAICT, this is a "onie,tlv-layout" with fields:

0x24 mac-adddress
0x2a num-macs
0x23 serial-number
0xfe crc32

As you can see the mac-address assignment looks bogus with fe:fe:fe (it
is used by vendor code though, so at least it seems to be intended). It
does appear at least to have useful information.

Can you confirm on your hardware? What do you think about this: should
we add it now or add it when we have users?

Vivian "dramforever" Wang

Re: [PATCH 2/3] riscv: dts: spacemit: add 24c02 eeprom on BPI-F3
Posted by Aurelien Jarno 1 week, 1 day ago
Hi Vivian,

On 2025-09-23 14:32, Vivian Wang wrote:
> Hi Aurelien,
> 
> On 9/22/25 05:01, Aurelien Jarno wrote:
> > The BPI-F3 contains a 24c02 eeprom, that contains among other things the
> > MAC addresses of the two network interfaces. For this reason, mark it as
> > read-only.
> >
> > Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
> > ---
> >  arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts | 11 ++++++++++-
> >  1 file changed, 10 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > index 3b6e4f52e9aad..574d10fdf9b82 100644
> > --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > @@ -115,6 +115,15 @@ &i2c2 {
> >  	pinctrl-0 = <&i2c2_0_cfg>;
> >  	pinctrl-names = "default";
> >  	status = "okay";
> > +
> > +	eeprom@50 {
> > +		compatible = "atmel,24c02";
> > +		reg = <0x50>;
> > +		vcc-supply = <&vcc1v8_sys>;
> > +		pagesize = <16>;
> > +		read-only;
> > +		size = <256>;
> > +	};
> >  };
> >  
> 
> I wonder if it would possibly make sense to specify a nvmem-layout here.
> The BPI-F3 I have here has this in the 24c02:
> 
> 00000000  54 6c 76 49 6e 66 6f 00  01 00 20 24 06 fe fe fe  |TlvInfo... $....|
> 00000010  XX XX XX 2a 02 00 02 23  0c XX XX XX XX XX XX XX  |...*...#.XXXXXXX|
> 00000020  XX XX XX XX XX fe 04 XX  XX XX XX ff ff ff ff ff  |XXXXX..XXXX.....|
> 00000030  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
> *
> 00000100
> 
> (... with variable parts replaced with X)
> 
> And, AFAICT, this is a "onie,tlv-layout" with fields:
> 
> 0x24 mac-adddress
> 0x2a num-macs
> 0x23 serial-number
> 0xfe crc32
> 
> As you can see the mac-address assignment looks bogus with fe:fe:fe (it
> is used by vendor code though, so at least it seems to be intended). It
> does appear at least to have useful information.

The reason I initially tried to dump the content of the eeprom was to 
check the MAC addresses provided to the kernel by u-boot at they looked
strange to me starting with fe:fe:fe... But at least they match.

> Can you confirm on your hardware? What do you think about this: should
> we add it now or add it when we have users?

I also have the TlvInfo data on my board, but it misses the 
serial-number field.

This is a good idea to use the "onie,tlv-layout" layout, I'll do that in 
the V2.

Aurelien

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                     http://aurel32.net
Re: [PATCH 2/3] riscv: dts: spacemit: add 24c02 eeprom on BPI-F3
Posted by Troy Mitchell 1 week, 2 days ago
On Sun, Sep 21, 2025 at 11:01:42PM +0200, Aurelien Jarno wrote:
> The BPI-F3 contains a 24c02 eeprom, that contains among other things the
> MAC addresses of the two network interfaces. For this reason, mark it as
> read-only.
> 
> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
> ---
>  arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> index 3b6e4f52e9aad..574d10fdf9b82 100644
> --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> @@ -115,6 +115,15 @@ &i2c2 {
>  	pinctrl-0 = <&i2c2_0_cfg>;
>  	pinctrl-names = "default";
>  	status = "okay";
> +
> +	eeprom@50 {
> +		compatible = "atmel,24c02";
> +		reg = <0x50>;
> +		vcc-supply = <&vcc1v8_sys>;
> +		pagesize = <16>;
I'm not sure this is 16..
Could you double check it?

                - Troy
> +		read-only;
> +		size = <256>;
> +	};
>  };
>  
>  &i2c8 {
> @@ -143,7 +152,7 @@ buck2 {
>  				regulator-always-on;
>  			};
>  
> -			buck3 {
> +			vcc1v8_sys: buck3 {
>  				regulator-min-microvolt = <500000>;
>  				regulator-max-microvolt = <1800000>;
>  				regulator-ramp-delay = <5000>;
> -- 
> 2.47.2
> 
> 
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
Re: [PATCH 2/3] riscv: dts: spacemit: add 24c02 eeprom on BPI-F3
Posted by Aurelien Jarno 1 week, 1 day ago
Hi,

On 2025-09-23 10:00, Troy Mitchell wrote:
> On Sun, Sep 21, 2025 at 11:01:42PM +0200, Aurelien Jarno wrote:
> > The BPI-F3 contains a 24c02 eeprom, that contains among other things the
> > MAC addresses of the two network interfaces. For this reason, mark it as
> > read-only.
> > 
> > Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
> > ---
> >  arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts | 11 ++++++++++-
> >  1 file changed, 10 insertions(+), 1 deletion(-)
> > 
> > diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > index 3b6e4f52e9aad..574d10fdf9b82 100644
> > --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > @@ -115,6 +115,15 @@ &i2c2 {
> >  	pinctrl-0 = <&i2c2_0_cfg>;
> >  	pinctrl-names = "default";
> >  	status = "okay";
> > +
> > +	eeprom@50 {
> > +		compatible = "atmel,24c02";
> > +		reg = <0x50>;
> > +		vcc-supply = <&vcc1v8_sys>;
> > +		pagesize = <16>;
> I'm not sure this is 16..
> Could you double check it?

Yes, this matches the datasheet:
https://www.giantec-semi.com/juchen1123/uploads/pdf/GT24C02_DS_Au.pdf

It says "Page Size: 16 bytes"

Aurelien

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                     http://aurel32.net
Re: [PATCH 2/3] riscv: dts: spacemit: add 24c02 eeprom on BPI-F3
Posted by Yixun Lan 1 week, 3 days ago
Hi Aurelien,

On 23:01 Sun 21 Sep     , Aurelien Jarno wrote:
> The BPI-F3 contains a 24c02 eeprom, that contains among other things the
> MAC addresses of the two network interfaces. For this reason, mark it as
> read-only.
> 
> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
> ---
>  arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> index 3b6e4f52e9aad..574d10fdf9b82 100644
> --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> @@ -115,6 +115,15 @@ &i2c2 {
>  	pinctrl-0 = <&i2c2_0_cfg>;
>  	pinctrl-names = "default";
>  	status = "okay";
> +
> +	eeprom@50 {
> +		compatible = "atmel,24c02";
> +		reg = <0x50>;
> +		vcc-supply = <&vcc1v8_sys>;
> +		pagesize = <16>;
..
> +		read-only;
so you're sure there is no demand to write data to eeprom?
(update info at linux env)
> +		size = <256>;
> +	};
>  };
>  
>  &i2c8 {
> @@ -143,7 +152,7 @@ buck2 {
>  				regulator-always-on;
>  			};
>  
> -			buck3 {
> +			vcc1v8_sys: buck3 {
I'm not sure if adding an alias here is a good idea, it occurs buck3
serve the suppy for many devices, besides, to me it's more proper to
name it as eeprom_vcc1v8 for the eeprom according to schematics in
this case..

>  				regulator-min-microvolt = <500000>;
>  				regulator-max-microvolt = <1800000>;
>  				regulator-ramp-delay = <5000>;
> -- 
> 2.47.2
> 

-- 
Yixun Lan (dlan)
Re: [PATCH 2/3] riscv: dts: spacemit: add 24c02 eeprom on BPI-F3
Posted by Aurelien Jarno 1 week, 3 days ago
Hi,

On 2025-09-22 11:21, Yixun Lan wrote:
> Hi Aurelien,
> 
> On 23:01 Sun 21 Sep     , Aurelien Jarno wrote:
> > The BPI-F3 contains a 24c02 eeprom, that contains among other things the
> > MAC addresses of the two network interfaces. For this reason, mark it as
> > read-only.
> > 
> > Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
> > ---
> >  arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts | 11 ++++++++++-
> >  1 file changed, 10 insertions(+), 1 deletion(-)
> > 
> > diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > index 3b6e4f52e9aad..574d10fdf9b82 100644
> > --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > @@ -115,6 +115,15 @@ &i2c2 {
> >  	pinctrl-0 = <&i2c2_0_cfg>;
> >  	pinctrl-names = "default";
> >  	status = "okay";
> > +
> > +	eeprom@50 {
> > +		compatible = "atmel,24c02";
> > +		reg = <0x50>;
> > +		vcc-supply = <&vcc1v8_sys>;
> > +		pagesize = <16>;
> ..
> > +		read-only;
> so you're sure there is no demand to write data to eeprom?
> (update info at linux env)

It seems to only contains board infos (mac addresses), but if there are 
other use cases, that can indeed be dropped.

> > +		size = <256>;
> > +	};
> >  };
> >  
> >  &i2c8 {
> > @@ -143,7 +152,7 @@ buck2 {
> >  				regulator-always-on;
> >  			};
> >  
> > -			buck3 {
> > +			vcc1v8_sys: buck3 {
> I'm not sure if adding an alias here is a good idea, it occurs buck3
> serve the suppy for many devices, besides, to me it's more proper to
> name it as eeprom_vcc1v8 for the eeprom according to schematics in
> this case..

We need to add a label to be able to reference it for the eeprom 
vcc-supply, but we'll have to also reference it for other devices (e.g.  
emmc, wifi, phys, etc... It tried to choose a common name, ie the right 
most one on the schematics. Another option could be to call it buck3, 
but other name suggestions are welcome.

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                     http://aurel32.net
Re: [PATCH 2/3] riscv: dts: spacemit: add 24c02 eeprom on BPI-F3
Posted by Troy Mitchell 1 week, 2 days ago
On Mon, Sep 22, 2025 at 06:49:35AM +0200, Aurelien Jarno wrote:
> Hi,
> 
> On 2025-09-22 11:21, Yixun Lan wrote:
> > Hi Aurelien,
> > 
> > On 23:01 Sun 21 Sep     , Aurelien Jarno wrote:
> > > The BPI-F3 contains a 24c02 eeprom, that contains among other things the
> > > MAC addresses of the two network interfaces. For this reason, mark it as
> > > read-only.
> > > 
> > > Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
> > > ---
> > >  arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts | 11 ++++++++++-
> > >  1 file changed, 10 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > > index 3b6e4f52e9aad..574d10fdf9b82 100644
> > > --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > > +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > > @@ -115,6 +115,15 @@ &i2c2 {
> > >  	pinctrl-0 = <&i2c2_0_cfg>;
> > >  	pinctrl-names = "default";
> > >  	status = "okay";
> > > +
> > > +	eeprom@50 {
> > > +		compatible = "atmel,24c02";
> > > +		reg = <0x50>;
> > > +		vcc-supply = <&vcc1v8_sys>;
> > > +		pagesize = <16>;
> > ..
> > > +		read-only;
> > so you're sure there is no demand to write data to eeprom?
> > (update info at linux env)
> 
> It seems to only contains board infos (mac addresses), but if there are 
> other use cases, that can indeed be dropped.
Then you can split the EEPROM into different parts.
Each part can be described as an individual nvmem cell in the device tree.
Some of them can be marked as read-only, while others remain writable.

Documentation/devicetree/bindings/eeprom/at24.yaml +15:
```
  - $ref: /schemas/nvmem/nvmem-deprecated-cells.yaml
```

                - Troy
> 
> > > +		size = <256>;
> > > +	};
> > >  };
> > >  
> > >  &i2c8 {
> > > @@ -143,7 +152,7 @@ buck2 {
> > >  				regulator-always-on;
> > >  			};
> > >  
> > > -			buck3 {
> > > +			vcc1v8_sys: buck3 {
> > I'm not sure if adding an alias here is a good idea, it occurs buck3
> > serve the suppy for many devices, besides, to me it's more proper to
> > name it as eeprom_vcc1v8 for the eeprom according to schematics in
> > this case..
> 
> We need to add a label to be able to reference it for the eeprom 
> vcc-supply, but we'll have to also reference it for other devices (e.g.  
> emmc, wifi, phys, etc... It tried to choose a common name, ie the right 
> most one on the schematics. Another option could be to call it buck3, 
> but other name suggestions are welcome.
> 
> -- 
> Aurelien Jarno                          GPG: 4096R/1DDD8C9B
> aurelien@aurel32.net                     http://aurel32.net
> 
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
Re: [PATCH 2/3] riscv: dts: spacemit: add 24c02 eeprom on BPI-F3
Posted by Aurelien Jarno 1 week, 1 day ago
Hi Troy,

On 2025-09-23 09:42, Troy Mitchell wrote:
> On Mon, Sep 22, 2025 at 06:49:35AM +0200, Aurelien Jarno wrote:
> > On 2025-09-22 11:21, Yixun Lan wrote:
> > It seems to only contains board infos (mac addresses), but if there are 
> > other use cases, that can indeed be dropped.
> Then you can split the EEPROM into different parts.
> Each part can be described as an individual nvmem cell in the device tree.
> Some of them can be marked as read-only, while others remain writable.
> 
> Documentation/devicetree/bindings/eeprom/at24.yaml +15:
> ```
>   - $ref: /schemas/nvmem/nvmem-deprecated-cells.yaml
> ```

As pointed by Vivian the best for that is to use "onie,tlv-layout". I'll 
do that in the V2.

Aurelien

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                     http://aurel32.net
Re: [PATCH 2/3] riscv: dts: spacemit: add 24c02 eeprom on BPI-F3
Posted by Yixun Lan 1 week, 2 days ago
Hi Aurelien,

On 06:49 Mon 22 Sep     , Aurelien Jarno wrote:
> Hi,
> 
> On 2025-09-22 11:21, Yixun Lan wrote:
> > Hi Aurelien,
> > 
> > On 23:01 Sun 21 Sep     , Aurelien Jarno wrote:
> > > The BPI-F3 contains a 24c02 eeprom, that contains among other things the
> > > MAC addresses of the two network interfaces. For this reason, mark it as
> > > read-only.
> > > 
> > > Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
> > > ---
> > >  arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts | 11 ++++++++++-
> > >  1 file changed, 10 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > > index 3b6e4f52e9aad..574d10fdf9b82 100644
> > > --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > > +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > > @@ -115,6 +115,15 @@ &i2c2 {
> > >  	pinctrl-0 = <&i2c2_0_cfg>;
> > >  	pinctrl-names = "default";
> > >  	status = "okay";
> > > +
> > > +	eeprom@50 {
> > > +		compatible = "atmel,24c02";
> > > +		reg = <0x50>;
> > > +		vcc-supply = <&vcc1v8_sys>;
> > > +		pagesize = <16>;
> > ..
> > > +		read-only;
> > so you're sure there is no demand to write data to eeprom?
> > (update info at linux env)
> 
> It seems to only contains board infos (mac addresses), but if there are 
> other use cases, that can indeed be dropped.
> 
On my second thought, I'm ok with it being "read-only", as we flash these
infos during firmware burning stage, then never alter them later.

> > > +		size = <256>;
> > > +	};
> > >  };
> > >  
> > >  &i2c8 {
> > > @@ -143,7 +152,7 @@ buck2 {
> > >  				regulator-always-on;
> > >  			};
> > >  
> > > -			buck3 {
> > > +			vcc1v8_sys: buck3 {
> > I'm not sure if adding an alias here is a good idea, it occurs buck3
> > serve the suppy for many devices, besides, to me it's more proper to
> > name it as eeprom_vcc1v8 for the eeprom according to schematics in
> > this case..
> 
> We need to add a label to be able to reference it for the eeprom 
> vcc-supply, but we'll have to also reference it for other devices (e.g.  
> emmc, wifi, phys, etc... It tried to choose a common name, ie the right 
> most one on the schematics. Another option could be to call it buck3, 
> but other name suggestions are welcome.
how about simply making it "buck3_1v8", then probably add a comment
later in the eeprom node? to mapping to the shecmatics
	vcc-supply = <&buck3_1v8>; /* EEPROM_VCC1V8 */
> 
> -- 
> Aurelien Jarno                          GPG: 4096R/1DDD8C9B
> aurelien@aurel32.net                     http://aurel32.net

-- 
Yixun Lan (dlan)
Re: [PATCH 2/3] riscv: dts: spacemit: add 24c02 eeprom on BPI-F3
Posted by Aurelien Jarno 1 week, 2 days ago
On 2025-09-22 16:01, Yixun Lan wrote:
> Hi Aurelien,
> 
> On 06:49 Mon 22 Sep     , Aurelien Jarno wrote:
> > Hi,
> > 
> > On 2025-09-22 11:21, Yixun Lan wrote:
> > > Hi Aurelien,
> > > 
> > > On 23:01 Sun 21 Sep     , Aurelien Jarno wrote:
> > > > The BPI-F3 contains a 24c02 eeprom, that contains among other things the
> > > > MAC addresses of the two network interfaces. For this reason, mark it as
> > > > read-only.
> > > > 
> > > > Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
> > > > ---
> > > >  arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts | 11 ++++++++++-
> > > >  1 file changed, 10 insertions(+), 1 deletion(-)
> > > > 
> > > > diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > > > index 3b6e4f52e9aad..574d10fdf9b82 100644
> > > > --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > > > +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
> > > > @@ -115,6 +115,15 @@ &i2c2 {
> > > >  	pinctrl-0 = <&i2c2_0_cfg>;
> > > >  	pinctrl-names = "default";
> > > >  	status = "okay";
> > > > +
> > > > +	eeprom@50 {
> > > > +		compatible = "atmel,24c02";
> > > > +		reg = <0x50>;
> > > > +		vcc-supply = <&vcc1v8_sys>;
> > > > +		pagesize = <16>;
> > > ..
> > > > +		read-only;
> > > so you're sure there is no demand to write data to eeprom?
> > > (update info at linux env)
> > 
> > It seems to only contains board infos (mac addresses), but if there are 
> > other use cases, that can indeed be dropped.
> > 
> On my second thought, I'm ok with it being "read-only", as we flash these
> infos during firmware burning stage, then never alter them later.
> 
> > > > +		size = <256>;
> > > > +	};
> > > >  };
> > > >  
> > > >  &i2c8 {
> > > > @@ -143,7 +152,7 @@ buck2 {
> > > >  				regulator-always-on;
> > > >  			};
> > > >  
> > > > -			buck3 {
> > > > +			vcc1v8_sys: buck3 {
> > > I'm not sure if adding an alias here is a good idea, it occurs buck3
> > > serve the suppy for many devices, besides, to me it's more proper to
> > > name it as eeprom_vcc1v8 for the eeprom according to schematics in
> > > this case..
> > 
> > We need to add a label to be able to reference it for the eeprom 
> > vcc-supply, but we'll have to also reference it for other devices (e.g.  
> > emmc, wifi, phys, etc... It tried to choose a common name, ie the right 
> > most one on the schematics. Another option could be to call it buck3, 
> > but other name suggestions are welcome.
> how about simply making it "buck3_1v8", then probably add a comment
> later in the eeprom node? to mapping to the shecmatics
> 	vcc-supply = <&buck3_1v8>; /* EEPROM_VCC1V8 */

Thanks that sounds good. I'll send an updated patchset with that change.


-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                     http://aurel32.net