xref: /openbmc/u-boot/drivers/scsi/scsi-uclass.c (revision baefb63a)
1 /*
2  * Copyright (c) 2015 Google, Inc
3  * Written by Simon Glass <sjg@chromium.org>
4  * Copyright (c) 2016 Xilinx, Inc
5  * Written by Michal Simek
6  *
7  * Based on ahci-uclass.c
8  *
9  * SPDX-License-Identifier:	GPL-2.0+
10  */
11 
12 #include <common.h>
13 #include <dm.h>
14 #include <scsi.h>
15 
16 int scsi_exec(struct udevice *dev, struct scsi_cmd *pccb)
17 {
18 	struct scsi_ops *ops = scsi_get_ops(dev);
19 
20 	if (!ops->exec)
21 		return -ENOSYS;
22 
23 	return ops->exec(dev, pccb);
24 }
25 
26 int scsi_bus_reset(struct udevice *dev)
27 {
28 	struct scsi_ops *ops = scsi_get_ops(dev);
29 
30 	if (!ops->bus_reset)
31 		return -ENOSYS;
32 
33 	return ops->bus_reset(dev);
34 }
35 
36 UCLASS_DRIVER(scsi) = {
37 	.id		= UCLASS_SCSI,
38 	.name		= "scsi",
39 	.per_device_platdata_auto_alloc_size = sizeof(struct scsi_platdata),
40 };
41