#include <linux/module.h>
#include <linux/clk.h>
#include <linux/io.h>
#include <linux/of_address.h>
#include <linux/of.h>
#include <linux/of_platform.h>
#include <linux/platform_device.h>
#include <linux/property.h>
#include <linux/mfd/syscon.h>
#include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
#include <linux/regmap.h>
struct imx_weim_devtype { … };
static const struct imx_weim_devtype imx1_weim_devtype = …;
static const struct imx_weim_devtype imx27_weim_devtype = …;
static const struct imx_weim_devtype imx50_weim_devtype = …;
static const struct imx_weim_devtype imx51_weim_devtype = …;
#define MAX_CS_REGS_COUNT …
#define MAX_CS_COUNT …
#define OF_REG_SIZE …
struct cs_timing { … };
struct cs_timing_state { … };
struct weim_priv { … };
static const struct of_device_id weim_id_table[] = …;
MODULE_DEVICE_TABLE(of, weim_id_table);
static int imx_weim_gpr_setup(struct platform_device *pdev)
{ … }
static int weim_timing_setup(struct device *dev, struct device_node *np,
const struct imx_weim_devtype *devtype)
{ … }
static int weim_parse_dt(struct platform_device *pdev)
{ … }
static int weim_probe(struct platform_device *pdev)
{ … }
#if IS_ENABLED(CONFIG_OF_DYNAMIC)
static int of_weim_notify(struct notifier_block *nb, unsigned long action,
void *arg)
{ … }
static struct notifier_block weim_of_notifier = …;
#endif
static struct platform_driver weim_driver = …;
static int __init weim_init(void)
{ … }
module_init(…) …;
static void __exit weim_exit(void)
{ … }
module_exit(weim_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;