Re: [PATCH 1/5] board: phytec: common: Generic "add extension" function

Teresa Remmet
2024-04-23T07:30:17Z

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.schultz@phytec.de>

Reviewed-by: Teresa Remmet <t.remmet@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