Am Freitag, dem 19.04.2024 um 08:55 -0700 schrieb Daniel Schultz: > Add a generic function to apply overlays in our board code to not > implement the same logic in different PHYTEC products. > > Signed-off-by: Daniel Schultz <d.schu...@phytec.de>
Reviewed-by: Teresa Remmet <t.rem...@phytec.de> > --- > board/phytec/common/phytec_som_detection.c | 33 > ++++++++++++++++++++++ > board/phytec/common/phytec_som_detection.h | 5 ++++ > 2 files changed, 38 insertions(+) > > diff --git a/board/phytec/common/phytec_som_detection.c > b/board/phytec/common/phytec_som_detection.c > index a56e0f60d62..d167a77c25b 100644 > --- a/board/phytec/common/phytec_som_detection.c > +++ b/board/phytec/common/phytec_som_detection.c > @@ -9,6 +9,8 @@ > #include <dm/uclass.h> > #include <i2c.h> > #include <u-boot/crc.h> > +#include <malloc.h> > +#include <extension_board.h> > > #include "phytec_som_detection.h" > > @@ -213,6 +215,28 @@ u8 __maybe_unused phytec_get_som_type(struct > phytec_eeprom_data *data) > return data->data.data_api2.som_type; > } > > +#if IS_ENABLED(CONFIG_CMD_EXTENSION) > +struct extension *phytec_add_extension(const char *name, const char > *overlay, > + const char *other) > +{ > + struct extension *extension; > + > + if (strlen(overlay) > sizeof(extension->overlay)) { > + pr_err("Overlay name %s is longer than %lu.\n", > overlay, > + sizeof(extension->overlay)); > + return NULL; > + } > + > + extension = calloc(1, sizeof(struct extension)); > + snprintf(extension->name, sizeof(extension->name), name); > + snprintf(extension->overlay, sizeof(extension->overlay), > overlay); > + snprintf(extension->other, sizeof(extension->other), other); > + snprintf(extension->owner, sizeof(extension->owner), > "PHYTEC"); > + > + return extension; > +} > +#endif /* IS_ENABLED(CONFIG_CMD_EXTENSION) */ > + > #else > > inline int phytec_eeprom_data_setup(struct phytec_eeprom_data *data, > @@ -253,4 +277,13 @@ u8 __maybe_unused phytec_get_som_type(struct > phytec_eeprom_data *data) > return PHYTEC_EEPROM_INVAL; > } > > +#if IS_ENABLED(CONFIG_CMD_EXTENSION) > +inline struct extension *phytec_add_extension(const char *name, > + const char *overlay, > + const char *other) > +{ > + return NULL; > +} > +#endif /* IS_ENABLED(CONFIG_CMD_EXTENSION) */ > + > #endif /* IS_ENABLED(CONFIG_PHYTEC_SOM_DETECTION) */ > diff --git a/board/phytec/common/phytec_som_detection.h > b/board/phytec/common/phytec_som_detection.h > index 7edbfa3ca5c..ea99a687fee 100644 > --- a/board/phytec/common/phytec_som_detection.h > +++ b/board/phytec/common/phytec_som_detection.h > @@ -76,4 +76,9 @@ char * __maybe_unused phytec_get_opt(struct > phytec_eeprom_data *data); > u8 __maybe_unused phytec_get_rev(struct phytec_eeprom_data *data); > u8 __maybe_unused phytec_get_som_type(struct phytec_eeprom_data > *data); > > +#if IS_ENABLED(CONFIG_CMD_EXTENSION) > +struct extension *phytec_add_extension(const char *name, const char > *overlay, > + const char *other); > +#endif /* IS_ENABLED(CONFIG_CMD_EXTENSION) */ > + > #endif /* _PHYTEC_SOM_DETECTION_H */ -- PHYTEC Messtechnik GmbH | Barcelona-Allee 1 | 55129 Mainz, Germany Geschäftsführer: Dipl.-Ing. Michael Mitezki, Dipl.-Ing. Bodo Huber, Dipl.-Ing. (FH) Markus Lickes | Handelsregister Mainz HRB 4656 | Finanzamt Mainz | St.Nr. 266500608, DE 149059855