blob: 19a7d3edd5d58c3a3df7df3b959c197358909792 [file] [log] [blame]
Angel Ponsae593872020-04-04 18:50:57 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Marshall Dawsonaa67def2019-05-03 16:10:34 -06002
Furquan Shaikh76cedd22020-05-02 10:24:23 -07003#include <acpi/acpigen.h>
Marshall Dawsonaa67def2019-05-03 16:10:34 -06004#include <device/device.h>
5#include <device/pci.h>
6#include <device/pci_ids.h>
Marshall Dawsonaa67def2019-05-03 16:10:34 -06007#include <amdblocks/sata.h>
8
Furquan Shaikh69c04692020-04-27 15:34:47 -07009static const char *sata_acpi_name(const struct device *dev)
10{
11 return "STCR";
12}
13
Marshall Dawsonaa67def2019-05-03 16:10:34 -060014static struct device_operations sata_ops = {
Furquan Shaikhd7d22a42020-04-27 15:30:04 -070015 .read_resources = pci_dev_read_resources,
16 .set_resources = pci_dev_set_resources,
17 .enable_resources = pci_dev_enable_resources,
18 .init = soc_enable_sata_features,
Furquan Shaikh64f477b2020-04-27 17:57:03 -070019 .ops_pci = &pci_dev_ops_pci,
Furquan Shaikh69c04692020-04-27 15:34:47 -070020 .acpi_name = sata_acpi_name,
Furquan Shaikh088b9e32020-04-27 15:41:35 -070021 .acpi_fill_ssdt = acpi_device_write_pci_dev,
Marshall Dawsonaa67def2019-05-03 16:10:34 -060022};
23
24static const unsigned short pci_device_ids[] = {
Felix Singer43b7f412022-03-07 04:34:52 +010025 PCI_DID_AMD_CZ_SATA,
26 PCI_DID_AMD_CZ_SATA_AHCI,
27 PCI_DID_AMD_FAM17H_SATA_AHCI_VER0,
28 PCI_DID_AMD_FAM17H_SATA_AHCI_VER1,
29 PCI_DID_AMD_FAM17H_SATA_AHCI_RAID_VER0,
30 PCI_DID_AMD_FAM17H_SATA_AHCI_RAID_VER1,
Marshall Dawsonaa67def2019-05-03 16:10:34 -060031 0
32};
33
34static const struct pci_driver sata0_driver __pci_driver = {
Furquan Shaikhd7d22a42020-04-27 15:30:04 -070035 .ops = &sata_ops,
Felix Singer43b7f412022-03-07 04:34:52 +010036 .vendor = PCI_VID_AMD,
Furquan Shaikhd7d22a42020-04-27 15:30:04 -070037 .devices = pci_device_ids,
Marshall Dawsonaa67def2019-05-03 16:10:34 -060038};