Files
u-boot-krane/include/extension_board.h
T
Kory Maincent (TI.com)andTom Rini 2d12958ee7 boot: Remove legacy extension board support
Remove the legacy extension board implementation now that all boards
have been converted to use the new UCLASS-based framework. This
eliminates lines of legacy code while preserving functionality
through the modern driver model approach.

Update the bootstd tests, due to the removal of extension hunter.

Signed-off-by: Kory Maincent (TI.com) <kory.maincent@bootlin.com>
2025-11-03 10:02:39 -06:00

102 lines
2.6 KiB
C

/* SPDX-License-Identifier: GPL-2.0+ */
/*
* (C) Copyright 2021
* Köry Maincent, Bootlin, <kory.maincent@bootlin.com>
*/
#ifndef __EXTENSION_SUPPORT_H
#define __EXTENSION_SUPPORT_H
#include <alist.h>
#include <dm/device.h>
#include <linux/list.h>
#include <dm/platdata.h>
extern struct list_head extension_list;
/**
* extension_get_list - Get the extension list
* Return: The extension alist pointer, or NULL if no such list exists.
*
* The caller must not free the list.
*/
struct alist *extension_get_list(void);
/**
* extension_probe - Probe extension device
* @dev: Extension device that needs to be probed
* Return: Zero on success, negative on failure.
*/
int extension_probe(struct udevice *dev);
/**
* extension_remove - Remove extension device
* @dev: Extension device that needs to be removed
* Return: Zero on success, negative on failure.
*/
int extension_remove(struct udevice *dev);
/**
* extension_scan - Scan extension boards available.
* Return: Zero on success, negative on failure.
*/
int extension_scan(void);
/**
* extension_apply - Apply extension board overlay to the devicetree
* @extension_num: Extension number to be applied
* Return: Zero on success, negative on failure.
*/
int extension_apply(int extension_num);
/**
* extension_apply_all - Apply all extension board overlays to the
* devicetree
* Return: Zero on success, negative on failure.
*/
int extension_apply_all(void);
/**
* extension - Description fields of an extension board
* @name: Name of the extension
* @owner: Owner of the extension
* @version: Version of the extension
* @overlay: Devicetree overlay name to be loaded for this extension
* @other: Other information of this extension
*/
struct extension {
char name[32];
char owner[32];
char version[32];
char overlay[64];
char other[32];
};
struct extension_ops {
/**
* scan - Add system-specific function to scan extension boards.
* @dev: extension device
* @extension_list: alist of extension to expand
* Return: The number of extension or a negative value in case of
* error.
*/
int (*scan)(struct udevice *dev, struct alist *extension_list);
};
#define extension_get_ops(dev) ((struct extension_ops *)(dev)->driver->ops)
/* Currently, only one extension driver enabled at a time is supported */
#define U_BOOT_EXTENSION(_name, _scan_func) \
U_BOOT_DRIVER(_name) = { \
.name = #_name, \
.id = UCLASS_EXTENSION, \
.probe = extension_probe, \
.remove = extension_remove, \
.ops = &(struct extension_ops) { \
.scan = _scan_func, \
}, \
.priv_auto = sizeof(struct alist), \
}
#endif /* __EXTENSION_SUPPORT_H */