blob: 31e8999297196cad628d4de381b76e9f59e438fa [file] [log] [blame]
Michal Simekc886f352016-09-08 15:06:45 +02001/*
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
Simon Glassc4dfa892017-06-14 21:28:43 -060016int 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
26int 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
Michal Simekc886f352016-09-08 15:06:45 +020036UCLASS_DRIVER(scsi) = {
37 .id = UCLASS_SCSI,
38 .name = "scsi",
Simon Glassb08fbff2017-06-14 21:28:31 -060039 .per_device_platdata_auto_alloc_size = sizeof(struct scsi_platdata),
Michal Simekc886f352016-09-08 15:06:45 +020040};