* [PATCH] ARM: dts: aspeed: anacapa: Add eeprom device node
@ 2026-03-02 4:20 Colin Huang
2026-03-05 0:12 ` Andrew Jeffery
0 siblings, 1 reply; 4+ messages in thread
From: Colin Huang @ 2026-03-02 4:20 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Joel Stanley,
Andrew Jeffery
Cc: devicetree, linux-arm-kernel, linux-aspeed, linux-kernel,
colin.huang2, Colin Huang
eeprom address changed (0x50 to 0x51) in DCSCM rev D
To support previous rev (B/C) and rev D,
add eeprom device node for DCSCM rev D.
Signed-off-by: Colin Huang <u8813345@gmail.com>
---
DCSCM rev D changed the eeprom address from 0x50 t0 0x51
To support previous rev(B/C) and rev D.
add new eeprom node for devscm rev d.
---
arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-anacapa.dts | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-anacapa.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-anacapa.dts
index 2cb7bd128d24..680108b00664 100644
--- a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-anacapa.dts
+++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-anacapa.dts
@@ -586,6 +586,11 @@ eeprom@50 {
reg = <0x50>;
};
+ eeprom@51 {
+ compatible = "atmel,24c128";
+ reg = <0x51>;
+ };
+
// BSM FRU
eeprom@56 {
compatible = "atmel,24c64";
---
base-commit: 710dbb13377c80a6e39ef049a517665841e3221e
change-id: 20260302-add-new-eeprom-node-78a20a7c4893
Best regards,
--
Colin Huang <u8813345@gmail.com>
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] ARM: dts: aspeed: anacapa: Add eeprom device node
2026-03-02 4:20 [PATCH] ARM: dts: aspeed: anacapa: Add eeprom device node Colin Huang
@ 2026-03-05 0:12 ` Andrew Jeffery
2026-03-06 6:06 ` Colin Huang
0 siblings, 1 reply; 4+ messages in thread
From: Andrew Jeffery @ 2026-03-05 0:12 UTC (permalink / raw)
To: Colin Huang, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Joel Stanley
Cc: devicetree, linux-arm-kernel, linux-aspeed, linux-kernel,
colin.huang2
On Mon, 2026-03-02 at 12:20 +0800, Colin Huang wrote:
> eeprom address changed (0x50 to 0x51) in DCSCM rev D
> To support previous rev (B/C) and rev D,
> add eeprom device node for DCSCM rev D.
>
> Signed-off-by: Colin Huang <u8813345@gmail.com>
> ---
> DCSCM rev D changed the eeprom address from 0x50 t0 0x51
> To support previous rev(B/C) and rev D.
> add new eeprom node for devscm rev d.
I feel different hardware revisions may deserved different devicetrees.
What are the trade-offs that lead you to avoiding that?
Why is it better to cause driver bind errors on both revisions?
Andrew
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] ARM: dts: aspeed: anacapa: Add eeprom device node
2026-03-05 0:12 ` Andrew Jeffery
@ 2026-03-06 6:06 ` Colin Huang
2026-03-26 6:33 ` Andrew Jeffery
0 siblings, 1 reply; 4+ messages in thread
From: Colin Huang @ 2026-03-06 6:06 UTC (permalink / raw)
To: Andrew Jeffery
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Joel Stanley,
devicetree, linux-arm-kernel, linux-aspeed, linux-kernel,
colin.huang2
Hi Andrew,
Thanks for the feedback.
In our case the only functional difference between DCSCM rev B/C and
rev D is the EEPROM I²C address change (0x50 → 0x51).
Other than this, the hardware is identical and all device-tree
described components share the same wiring and behaviour.
Maintaining two separate devicetrees for a single‑byte address shift
doesn’t scale well for us. Only side effect of listing both EEPROM
nodes is that the non‑matching node produces a harmless driver bind
error in dmesg. It does not affect functionality on either revision —
the correct node always binds, and the unused one simply fails probe
and is ignored by the driver. From a system behaviour standpoint both
board revisions operate normally.
So the trade‑off we chose is:
* One DT shared across all revisions → low maintenance cost, one
source of truth.
* A benign bind failure on the unused EEPROM → visible in logs but
functionally harmless.
If more hardware differences appear in later revisions, separating the
devicetrees would make sense. But given the current situation, keeping
a unified DT is the most maintainable choice.
Thanks,
Colin
Andrew Jeffery <andrew@codeconstruct.com.au> 於 2026年3月5日週四 上午8:12寫道:
>
> On Mon, 2026-03-02 at 12:20 +0800, Colin Huang wrote:
> > eeprom address changed (0x50 to 0x51) in DCSCM rev D
> > To support previous rev (B/C) and rev D,
> > add eeprom device node for DCSCM rev D.
> >
> > Signed-off-by: Colin Huang <u8813345@gmail.com>
> > ---
> > DCSCM rev D changed the eeprom address from 0x50 t0 0x51
> > To support previous rev(B/C) and rev D.
> > add new eeprom node for devscm rev d.
>
> I feel different hardware revisions may deserved different devicetrees.
> What are the trade-offs that lead you to avoiding that?
>
> Why is it better to cause driver bind errors on both revisions?
>
> Andrew
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] ARM: dts: aspeed: anacapa: Add eeprom device node
2026-03-06 6:06 ` Colin Huang
@ 2026-03-26 6:33 ` Andrew Jeffery
0 siblings, 0 replies; 4+ messages in thread
From: Andrew Jeffery @ 2026-03-26 6:33 UTC (permalink / raw)
To: Colin Huang
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Joel Stanley,
devicetree, linux-arm-kernel, linux-aspeed, linux-kernel,
colin.huang2
On Fri, 2026-03-06 at 14:06 +0800, Colin Huang wrote:
> Hi Andrew,
>
> Thanks for the feedback.
>
> In our case the only functional difference between DCSCM rev B/C and
> rev D is the EEPROM I²C address change (0x50 → 0x51).
> Other than this, the hardware is identical and all device-tree
> described components share the same wiring and behaviour.
>
> Maintaining two separate devicetrees for a single‑byte address shift
> doesn’t scale well for us.
I disagree that there's a problem of scale. The kernel's dts files are
processed with the C pre-processor - you can #include one file from
another. .dtsi files work this way, and as a related example, we
maintain two devicetrees for the AST2600 EVB where -A1 had some minor
differences in the regulator configuration:
* https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/aspeed/aspeed-ast2600-evb.dts?h=v7.0-rc5
* https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/aspeed/aspeed-ast2600-evb-a1.dts?h=v7.0-rc5
See also my response to Kevin Tung earlier:
https://lore.kernel.org/all/d7794f74b26bbc1ee0a70e39c5671acc018f80eb.camel@codeconstruct.com.au/
Andrew
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-03-26 6:34 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-02 4:20 [PATCH] ARM: dts: aspeed: anacapa: Add eeprom device node Colin Huang
2026-03-05 0:12 ` Andrew Jeffery
2026-03-06 6:06 ` Colin Huang
2026-03-26 6:33 ` Andrew Jeffery
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox