summaryrefslogtreecommitdiff
path: root/include/ahci.h
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2017-06-15 03:28:37 (GMT)
committerSimon Glass <sjg@chromium.org>2017-07-11 16:08:19 (GMT)
commit7cf1afce7fa3fe64189020fe14b93f7326dd0758 (patch)
tree5ebfa4fe9113898c4bb7ae87df1f21ede879fbdf /include/ahci.h
parent62b4ec8e302c7d616e37f2c2c2836edfea712309 (diff)
downloadu-boot-fsl-qoriq-7cf1afce7fa3fe64189020fe14b93f7326dd0758.tar.xz
dm: ahci: Unwind the confusing init code
Two AHCI drivers use SCSI with CONFIG_DM_SCSI. The SCSI uclass calls scsi_low_level_init() which is implemented by ahci.c. If CONFIG_SCSI_AHCI_PLAT is defined it does one thing and if it is not it does something else. We don't need to call through scsi_low_level_init() to get the init completed. Instead, adjust the two drivers to call into AHCI directly. Drop the post-probe init in the SCSI uclass. This means that driver model doesn't need to use scsi_low_level_init(). It is a legacy function and driver model should use a driver's probe() method instead. While we are here, add a comment to the top of the file explaining what ahci.c does. 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.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/ahci.h b/include/ahci.h
index 4262ab7..ec5b0c7 100644
--- a/include/ahci.h
+++ b/include/ahci.h
@@ -179,4 +179,18 @@ struct ahci_uc_priv {
int ahci_init(void __iomem *base);
int ahci_reset(void __iomem *base);
+/**
+ * achi_init_one_dm() - set up a single AHCI port
+ *
+ * @dev: Controller to init
+ */
+int achi_init_one_dm(struct udevice *dev);
+
+/**
+ * achi_start_ports_dm() - start all AHCI ports for a controller
+ *
+ * @dev: Controller containing ports to start
+ */
+int achi_start_ports_dm(struct udevice *dev);
+
#endif