#include <linux/ahci_platform.h>
#include <linux/clk.h>
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/regulator/consumer.h>
#include "ahci.h"
#define DRV_NAME …
static bool enable_pmp;
module_param(enable_pmp, bool, 0);
MODULE_PARM_DESC(…) …;
#define AHCI_BISTAFR …
#define AHCI_BISTCR …
#define AHCI_BISTFCTR …
#define AHCI_BISTSR …
#define AHCI_BISTDECR …
#define AHCI_DIAGNR0 …
#define AHCI_DIAGNR1 …
#define AHCI_OOBR …
#define AHCI_PHYCS0R …
#define AHCI_PHYCS1R …
#define AHCI_PHYCS2R …
#define AHCI_TIMER1MS …
#define AHCI_GPARAM1R …
#define AHCI_GPARAM2R …
#define AHCI_PPARAMR …
#define AHCI_TESTR …
#define AHCI_VERSIONR …
#define AHCI_IDR …
#define AHCI_RWCR …
#define AHCI_P0DMACR …
#define AHCI_P0PHYCR …
#define AHCI_P0PHYSR …
static void sunxi_clrbits(void __iomem *reg, u32 clr_val)
{ … }
static void sunxi_setbits(void __iomem *reg, u32 set_val)
{ … }
static void sunxi_clrsetbits(void __iomem *reg, u32 clr_val, u32 set_val)
{ … }
static u32 sunxi_getbits(void __iomem *reg, u8 mask, u8 shift)
{ … }
static int ahci_sunxi_phy_init(struct device *dev, void __iomem *reg_base)
{ … }
static void ahci_sunxi_start_engine(struct ata_port *ap)
{ … }
static const struct ata_port_info ahci_sunxi_port_info = …;
static const struct scsi_host_template ahci_platform_sht = …;
static int ahci_sunxi_probe(struct platform_device *pdev)
{ … }
#ifdef CONFIG_PM_SLEEP
static int ahci_sunxi_resume(struct device *dev)
{ … }
#endif
static SIMPLE_DEV_PM_OPS(ahci_sunxi_pm_ops, ahci_platform_suspend,
ahci_sunxi_resume);
static const struct of_device_id ahci_sunxi_of_match[] = …;
MODULE_DEVICE_TABLE(of, ahci_sunxi_of_match);
static struct platform_driver ahci_sunxi_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;