#include <linux/completion.h>
#include <linux/dma-direction.h>
#include <linux/dma-mapping.h>
#include <linux/dmaengine.h>
#include <linux/err.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/mtd/cfi.h>
#include <linux/mtd/hyperbus.h>
#include <linux/mtd/mtd.h>
#include <linux/mux/consumer.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/platform_device.h>
#include <linux/sched/task_stack.h>
#include <linux/types.h>
#define AM654_HBMC_CALIB_COUNT …
struct am654_hbmc_device_priv { … };
struct am654_hbmc_priv { … };
static int am654_hbmc_calibrate(struct hyperbus_device *hbdev)
{ … }
static void am654_hbmc_dma_callback(void *param)
{ … }
static int am654_hbmc_dma_read(struct am654_hbmc_device_priv *priv, void *to,
unsigned long from, ssize_t len)
{ … }
static void am654_hbmc_read(struct hyperbus_device *hbdev, void *to,
unsigned long from, ssize_t len)
{ … }
static const struct hyperbus_ops am654_hbmc_ops = …;
static int am654_hbmc_request_mmap_dma(struct am654_hbmc_device_priv *priv)
{ … }
static int am654_hbmc_probe(struct platform_device *pdev)
{ … }
static void am654_hbmc_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id am654_hbmc_dt_ids[] = …;
MODULE_DEVICE_TABLE(of, am654_hbmc_dt_ids);
static struct platform_driver am654_hbmc_platform_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;
MODULE_AUTHOR(…) …;