#include <linux/ata.h>
#include <linux/clk.h>
#include <linux/libata.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
#include <linux/platform_device.h>
#define DRV_NAME …
#define PATA_IMX_ATA_TIME_OFF …
#define PATA_IMX_ATA_TIME_ON …
#define PATA_IMX_ATA_TIME_1 …
#define PATA_IMX_ATA_TIME_2W …
#define PATA_IMX_ATA_TIME_2R …
#define PATA_IMX_ATA_TIME_AX …
#define PATA_IMX_ATA_TIME_PIO_RDX …
#define PATA_IMX_ATA_TIME_4 …
#define PATA_IMX_ATA_TIME_9 …
#define PATA_IMX_ATA_CONTROL …
#define PATA_IMX_ATA_CTRL_FIFO_RST_B …
#define PATA_IMX_ATA_CTRL_ATA_RST_B …
#define PATA_IMX_ATA_CTRL_IORDY_EN …
#define PATA_IMX_ATA_INT_EN …
#define PATA_IMX_ATA_INTR_ATA_INTRQ2 …
#define PATA_IMX_DRIVE_DATA …
#define PATA_IMX_DRIVE_CONTROL …
static u32 pio_t4[] = …;
static u32 pio_t9[] = …;
static u32 pio_tA[] = …;
struct pata_imx_priv { … };
static void pata_imx_set_timing(struct ata_device *adev,
struct pata_imx_priv *priv)
{ … }
static void pata_imx_set_piomode(struct ata_port *ap, struct ata_device *adev)
{ … }
static const struct scsi_host_template pata_imx_sht = …;
static struct ata_port_operations pata_imx_port_ops = …;
static void pata_imx_setup_port(struct ata_ioports *ioaddr)
{ … }
static int pata_imx_probe(struct platform_device *pdev)
{ … }
static void pata_imx_remove(struct platform_device *pdev)
{ … }
#ifdef CONFIG_PM_SLEEP
static int pata_imx_suspend(struct device *dev)
{ … }
static int pata_imx_resume(struct device *dev)
{ … }
#endif
static SIMPLE_DEV_PM_OPS(pata_imx_pm_ops, pata_imx_suspend, pata_imx_resume);
static const struct of_device_id imx_pata_dt_ids[] = …;
MODULE_DEVICE_TABLE(of, imx_pata_dt_ids);
static struct platform_driver pata_imx_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;