
Implement scsi_init() api to probe driver model based sata devices.
Signed-off-by: Mugunthan V N mugunthanvnm@ti.com --- drivers/block/disk-uclass.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+)
diff --git a/drivers/block/disk-uclass.c b/drivers/block/disk-uclass.c index d665b35..4bd7b56 100644 --- a/drivers/block/disk-uclass.c +++ b/drivers/block/disk-uclass.c @@ -7,6 +7,45 @@
#include <common.h> #include <dm.h> +#include <dm/uclass-internal.h> +#include <dm/device-internal.h> +#include <scsi.h> + +int scsi_get_device(int index, struct udevice **devp) +{ + struct udevice *dev; + int ret; + + ret = uclass_find_device(UCLASS_DISK, index, &dev); + if (ret || !dev) { + printf("%d device not found\n", index); + return ret; + } + + ret = device_probe(dev); + if (ret) { + error("device probe error\n"); + return ret; + } + + *devp = dev; + + return ret; +} + +void scsi_init(void) +{ + struct udevice *dev; + int ret; + + ret = scsi_get_device(0, &dev); + if (ret || !dev) { + error("scsi device not found\n"); + return; + } + + scsi_scan(1); +}
UCLASS_DRIVER(disk) = { .id = UCLASS_DISK,