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)17int 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)27int 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