1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* 3 * AHCI SATA platform driver 4 * 5 * Copyright 2004-2005 Red Hat, Inc. 6 * Jeff Garzik <jgarzik@pobox.com> 7 * Copyright 2010 MontaVista Software, LLC. 8 * Anton Vorontsov <avorontsov@ru.mvista.com> 9 */ 10 11 #ifndef _AHCI_PLATFORM_H 12 #define _AHCI_PLATFORM_H 13 14 #include <linux/compiler.h> 15 16 struct clk; 17 struct device; 18 struct ata_port_info; 19 struct ahci_host_priv; 20 struct platform_device; 21 struct scsi_host_template; 22 23 int ahci_platform_enable_phys(struct ahci_host_priv *hpriv); 24 void ahci_platform_disable_phys(struct ahci_host_priv *hpriv); 25 struct clk *ahci_platform_find_clk(struct ahci_host_priv *hpriv, 26 const char *con_id); 27 int ahci_platform_enable_clks(struct ahci_host_priv *hpriv); 28 void ahci_platform_disable_clks(struct ahci_host_priv *hpriv); 29 int ahci_platform_deassert_rsts(struct ahci_host_priv *hpriv); 30 int ahci_platform_assert_rsts(struct ahci_host_priv *hpriv); 31 int ahci_platform_enable_regulators(struct ahci_host_priv *hpriv); 32 void ahci_platform_disable_regulators(struct ahci_host_priv *hpriv); 33 int ahci_platform_enable_resources(struct ahci_host_priv *hpriv); 34 void ahci_platform_disable_resources(struct ahci_host_priv *hpriv); 35 struct ahci_host_priv *ahci_platform_get_resources( 36 struct platform_device *pdev, unsigned int flags); 37 int ahci_platform_init_host(struct platform_device *pdev, 38 struct ahci_host_priv *hpriv, 39 const struct ata_port_info *pi_template, 40 const struct scsi_host_template *sht); 41 42 void ahci_platform_shutdown(struct platform_device *pdev); 43 44 int ahci_platform_suspend_host(struct device *dev); 45 int ahci_platform_resume_host(struct device *dev); 46 int ahci_platform_suspend(struct device *dev); 47 int ahci_platform_resume(struct device *dev); 48 49 #define AHCI_PLATFORM_GET_RESETS BIT(0) 50 #define AHCI_PLATFORM_RST_TRIGGER BIT(1) 51 52 #endif /* _AHCI_PLATFORM_H */ 53