Hi Marek On 3/26/20 10:40 PM, Marek Vasut wrote: > Use DT /aliases node to establish a stable phandle to the configuration > EEPROM. This permits the configuration EEPROM to be moved e.g. to a > different address or a different bus. Adjust the board code to handle > new phandle lookup. > > Signed-off-by: Marek Vasut <ma...@denx.de> > Cc: Patrick Delaunay <patrick.delau...@st.com> > Cc: Patrice Chotard <patrice.chot...@st.com> > --- > arch/arm/dts/stm32mp15xx-dhcom.dtsi | 6 +++++- > board/dhelectronics/dh_stm32mp1/board.c | 15 +++++++-------- > 2 files changed, 12 insertions(+), 9 deletions(-) > > diff --git a/arch/arm/dts/stm32mp15xx-dhcom.dtsi > b/arch/arm/dts/stm32mp15xx-dhcom.dtsi > index bed69c97b6..e5be0a79ac 100644 > --- a/arch/arm/dts/stm32mp15xx-dhcom.dtsi > +++ b/arch/arm/dts/stm32mp15xx-dhcom.dtsi > @@ -10,6 +10,10 @@ > #include <dt-bindings/mfd/st,stpmic1.h> > > / { > + aliases { > + eeprom0 = &eeprom0; > + }; > + > memory@c0000000 { > device_type = "memory"; > reg = <0xC0000000 0x40000000>; > @@ -187,7 +191,7 @@ > }; > }; > > - eeprom@50 { > + eeprom0: eeprom@50 { > compatible = "atmel,24c02"; > reg = <0x50>; > pagesize = <16>; > diff --git a/board/dhelectronics/dh_stm32mp1/board.c > b/board/dhelectronics/dh_stm32mp1/board.c > index be55242799..0096046050 100644 > --- a/board/dhelectronics/dh_stm32mp1/board.c > +++ b/board/dhelectronics/dh_stm32mp1/board.c > @@ -78,22 +78,21 @@ DECLARE_GLOBAL_DATA_PTR; > > int setup_mac_address(void) > { > - struct udevice *dev; > - ofnode eeprom; > unsigned char enetaddr[6]; > - int ret; > + struct udevice *dev; > + int off, ret; > > ret = eth_env_get_enetaddr("ethaddr", enetaddr); > if (ret) /* ethaddr is already set */ > return 0; > > - eeprom = ofnode_path("/soc/i2c@5c002000/eeprom@50"); > - if (!ofnode_valid(eeprom)) { > - printf("Invalid hardware path to EEPROM!\n"); > - return -ENODEV; > + off = fdt_path_offset(gd->fdt_blob, "eeprom0"); > + if (off < 0) { > + printf("%s: No eeprom0 path offset\n", __func__); > + return off; > } > > - ret = uclass_get_device_by_ofnode(UCLASS_I2C_EEPROM, eeprom, &dev); > + ret = uclass_get_device_by_of_offset(UCLASS_I2C_EEPROM, off, &dev); > if (ret) { > printf("Cannot find EEPROM!\n"); > return ret;
Reviewed-by: Patrice Chotard <patrice.chot...@st.com> Thanks