#include <linux/slab.h>
#include <linux/clk.h>
#include <linux/clk-provider.h>
#include <linux/module.h>
#include <linux/io.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/of_device.h>
#include <linux/platform_device.h>
#include <linux/pm.h>
#define DRV_NAME …
#define EXYNOS_CLKOUT_NR_CLKS …
#define EXYNOS_CLKOUT_PARENTS …
#define EXYNOS_PMU_DEBUG_REG …
#define EXYNOS_CLKOUT_DISABLE_SHIFT …
#define EXYNOS_CLKOUT_MUX_SHIFT …
#define EXYNOS4_CLKOUT_MUX_MASK …
#define EXYNOS5_CLKOUT_MUX_MASK …
struct exynos_clkout { … };
struct exynos_clkout_variant { … };
static const struct exynos_clkout_variant exynos_clkout_exynos4 = …;
static const struct exynos_clkout_variant exynos_clkout_exynos5 = …;
static const struct of_device_id exynos_clkout_ids[] = …;
static int exynos_clkout_match_parent_dev(struct device *dev, u32 *mux_mask)
{ … }
static int exynos_clkout_probe(struct platform_device *pdev)
{ … }
static void exynos_clkout_remove(struct platform_device *pdev)
{ … }
static int __maybe_unused exynos_clkout_suspend(struct device *dev)
{ … }
static int __maybe_unused exynos_clkout_resume(struct device *dev)
{ … }
static SIMPLE_DEV_PM_OPS(exynos_clkout_pm_ops, exynos_clkout_suspend,
exynos_clkout_resume);
static struct platform_driver exynos_clkout_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_ALIAS(…) …;
MODULE_LICENSE(…) …;