xref: /rk3399_rockchip-uboot/drivers/ata/ahci-pci.c (revision 7b9c88bfca6b445e26767494a30083d3b75b5b67)
1a5c680feSBin Meng /*
2a5c680feSBin Meng  * Copyright (C) 2017, Bin Meng <bmeng.cn@gmail.com>
3a5c680feSBin Meng  *
4a5c680feSBin Meng  * SPDX-License-Identifier:	GPL-2.0+
5a5c680feSBin Meng  */
6a5c680feSBin Meng 
7a5c680feSBin Meng #include <common.h>
8a5c680feSBin Meng #include <ahci.h>
9a5c680feSBin Meng #include <dm.h>
10a5c680feSBin Meng #include <pci.h>
11a5c680feSBin Meng 
ahci_pci_bind(struct udevice * dev)12a5c680feSBin Meng static int ahci_pci_bind(struct udevice *dev)
13a5c680feSBin Meng {
14a5c680feSBin Meng 	struct udevice *scsi_dev;
15a5c680feSBin Meng 
16a5c680feSBin Meng 	return ahci_bind_scsi(dev, &scsi_dev);
17a5c680feSBin Meng }
18a5c680feSBin Meng 
ahci_pci_probe(struct udevice * dev)19a5c680feSBin Meng static int ahci_pci_probe(struct udevice *dev)
20a5c680feSBin Meng {
21*7b9c88bfSBin Meng 	return ahci_probe_scsi_pci(dev);
22a5c680feSBin Meng }
23a5c680feSBin Meng 
24a5c680feSBin Meng static const struct udevice_id ahci_pci_ids[] = {
25a5c680feSBin Meng 	{ .compatible = "ahci-pci" },
26a5c680feSBin Meng 	{ }
27a5c680feSBin Meng };
28a5c680feSBin Meng 
29a5c680feSBin Meng U_BOOT_DRIVER(ahci_pci) = {
30a5c680feSBin Meng 	.name	= "ahci_pci",
31a5c680feSBin Meng 	.id	= UCLASS_AHCI,
32a5c680feSBin Meng 	.of_match = ahci_pci_ids,
33a5c680feSBin Meng 	.bind	= ahci_pci_bind,
34a5c680feSBin Meng 	.probe = ahci_pci_probe,
35a5c680feSBin Meng };
36a5c680feSBin Meng 
37a5c680feSBin Meng static struct pci_device_id ahci_pci_supported[] = {
38a5c680feSBin Meng 	{ PCI_DEVICE_CLASS(PCI_CLASS_STORAGE_SATA_AHCI, ~0) },
39a5c680feSBin Meng 	{},
40a5c680feSBin Meng };
41a5c680feSBin Meng 
42a5c680feSBin Meng U_BOOT_PCI_DEVICE(ahci_pci, ahci_pci_supported);
43