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