board-uclass.c 1.3 KB
Newer Older
M
Mario Six 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
// SPDX-License-Identifier: GPL-2.0+
/*
 * (C) Copyright 2017
 * Mario Six,  Guntermann & Drunck GmbH, mario.six@gdsys.cc
 */

#include <common.h>
#include <dm.h>
#include <board.h>

int board_get(struct udevice **devp)
{
	return uclass_first_device_err(UCLASS_BOARD, devp);
}

int board_detect(struct udevice *dev)
{
	struct board_ops *ops = board_get_ops(dev);

	if (!ops->detect)
		return -ENOSYS;

	return ops->detect(dev);
}

26 27 28 29 30 31 32 33 34 35 36
int board_get_fit_loadable(struct udevice *dev, int index,
			   const char *type, const char **strp)
{
	struct board_ops *ops = board_get_ops(dev);

	if (!ops->get_fit_loadable)
		return -ENOSYS;

	return ops->get_fit_loadable(dev, index, type, strp);
}

M
Mario Six 已提交
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
int board_get_bool(struct udevice *dev, int id, bool *val)
{
	struct board_ops *ops = board_get_ops(dev);

	if (!ops->get_bool)
		return -ENOSYS;

	return ops->get_bool(dev, id, val);
}

int board_get_int(struct udevice *dev, int id, int *val)
{
	struct board_ops *ops = board_get_ops(dev);

	if (!ops->get_int)
		return -ENOSYS;

	return ops->get_int(dev, id, val);
}

int board_get_str(struct udevice *dev, int id, size_t size, char *val)
{
	struct board_ops *ops = board_get_ops(dev);

	if (!ops->get_str)
		return -ENOSYS;

	return ops->get_str(dev, id, size, val);
}

UCLASS_DRIVER(board) = {
	.id		= UCLASS_BOARD,
	.name		= "board",
	.post_bind	= dm_scan_fdt_dev,
};