Commit | Line | Data |
---|---|---|
1c2a49f6 AV |
1 | /* |
2 | * AHCI SATA platform driver | |
3 | * | |
4 | * Copyright 2004-2005 Red Hat, Inc. | |
5 | * Jeff Garzik <jgarzik@pobox.com> | |
6 | * Copyright 2010 MontaVista Software, LLC. | |
7 | * Anton Vorontsov <avorontsov@ru.mvista.com> | |
8 | * | |
9 | * This program is free software; you can redistribute it and/or modify | |
10 | * it under the terms of the GNU General Public License as published by | |
11 | * the Free Software Foundation; either version 2, or (at your option) | |
12 | * any later version. | |
13 | */ | |
14 | ||
15 | #ifndef _AHCI_PLATFORM_H | |
16 | #define _AHCI_PLATFORM_H | |
17 | ||
08354809 JB |
18 | #include <linux/compiler.h> |
19 | ||
1c2a49f6 AV |
20 | struct device; |
21 | struct ata_port_info; | |
156c5887 | 22 | struct ahci_host_priv; |
23b07d4c | 23 | struct platform_device; |
1c2a49f6 | 24 | |
23b07d4c HG |
25 | /* |
26 | * Note ahci_platform_data is deprecated, it is only kept around for use | |
27 | * by the old da850 and spear13xx ahci code. | |
28 | * New drivers should instead declare their own platform_driver struct, and | |
29 | * use ahci_platform* functions in their own probe, suspend and resume methods. | |
30 | */ | |
1c2a49f6 | 31 | struct ahci_platform_data { |
08354809 | 32 | int (*init)(struct device *dev, void __iomem *addr); |
1c2a49f6 | 33 | void (*exit)(struct device *dev); |
17ab594f BN |
34 | int (*suspend)(struct device *dev); |
35 | int (*resume)(struct device *dev); | |
1c2a49f6 AV |
36 | }; |
37 | ||
156c5887 HG |
38 | int ahci_platform_enable_clks(struct ahci_host_priv *hpriv); |
39 | void ahci_platform_disable_clks(struct ahci_host_priv *hpriv); | |
96a01ba5 HG |
40 | int ahci_platform_enable_resources(struct ahci_host_priv *hpriv); |
41 | void ahci_platform_disable_resources(struct ahci_host_priv *hpriv); | |
23b07d4c HG |
42 | struct ahci_host_priv *ahci_platform_get_resources( |
43 | struct platform_device *pdev); | |
44 | int ahci_platform_init_host(struct platform_device *pdev, | |
45 | struct ahci_host_priv *hpriv, | |
46 | const struct ata_port_info *pi_template, | |
47 | unsigned int force_port_map, | |
48 | unsigned int mask_port_map); | |
156c5887 | 49 | |
648cb6fd HG |
50 | int ahci_platform_suspend_host(struct device *dev); |
51 | int ahci_platform_resume_host(struct device *dev); | |
52 | int ahci_platform_suspend(struct device *dev); | |
53 | int ahci_platform_resume(struct device *dev); | |
54 | ||
1c2a49f6 | 55 | #endif /* _AHCI_PLATFORM_H */ |