summaryrefslogtreecommitdiff
path: root/include/ahci.h
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2017-06-14 21:28:46 -0600
committerSimon Glass <sjg@chromium.org>2017-07-11 10:08:19 -0600
commit681357ffd9fe4528d020a878ef6ee61f519d8d85 (patch)
tree271008f521aad643de4c1fa9909920698ba13a81 /include/ahci.h
parent5c56176318c8a602fa78813ac273f16a10278a2d (diff)
dm: ahci: Add a driver for SCSI on AHCI
Some AHCI drivers use SCSI under the hood. Rather than making the AHCI driver be in the SCSI uclass it makes sense to have the AHCI device create a SCSI device as a child. That way we can handle any AHCI-specific operations rather than trying to pretend tha the device is just SCSI. To handle this we need to provide a way for AHCI drivers to bind a SCSI device as its child, and probe it. Add functions for this. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'include/ahci.h')
-rw-r--r--include/ahci.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/include/ahci.h b/include/ahci.h
index 3d61ad1fce9..818f34464e2 100644
--- a/include/ahci.h
+++ b/include/ahci.h
@@ -200,4 +200,26 @@ int achi_start_ports_dm(struct udevice *dev);
*/
int ahci_init_dm(struct udevice *dev, void __iomem *base);
+/**
+ * ahci_bind_scsi() - bind a new SCSI bus as a child
+ *
+ * Note that the SCSI bus device will itself bind block devices
+ *
+ * @ahci_dev: AHCI parent device
+ * @devp: Returns new SCSI bus device
+ * @return 0 if OK, -ve on error
+ */
+int ahci_bind_scsi(struct udevice *ahci_dev, struct udevice **devp);
+
+/**
+ * ahci_probe_scsi() - probe and scan the attached SCSI bus
+ *
+ * Note that the SCSI device will itself bind block devices for any storage
+ * devices it finds.
+ *
+ * @ahci_dev: AHCI parent device
+ * @return 0 if OK, -ve on error
+ */
+int ahci_probe_scsi(struct udevice *ahci_dev);
+
#endif