#include <linux/clk.h>
#include <linux/clocksource.h>
#include <linux/mfd/ingenic-tcu.h>
#include <linux/mfd/syscon.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pm.h>
#include <linux/regmap.h>
#include <linux/sched_clock.h>
#define TCU_OST_TCSR_MASK …
#define TCU_OST_TCSR_CNT_MD …
#define TCU_OST_CHANNEL …
#define OST_REG_CNTL …
#define OST_REG_CNTH …
struct ingenic_ost_soc_info { … };
struct ingenic_ost { … };
static struct ingenic_ost *ingenic_ost;
static u64 notrace ingenic_ost_read_cntl(void)
{ … }
static u64 notrace ingenic_ost_read_cnth(void)
{ … }
static u64 notrace ingenic_ost_clocksource_readl(struct clocksource *cs)
{ … }
static u64 notrace ingenic_ost_clocksource_readh(struct clocksource *cs)
{ … }
static int __init ingenic_ost_probe(struct platform_device *pdev)
{ … }
static int ingenic_ost_suspend(struct device *dev)
{ … }
static int ingenic_ost_resume(struct device *dev)
{ … }
static const struct dev_pm_ops ingenic_ost_pm_ops = …;
static const struct ingenic_ost_soc_info jz4725b_ost_soc_info = …;
static const struct ingenic_ost_soc_info jz4760b_ost_soc_info = …;
static const struct of_device_id ingenic_ost_of_match[] = …;
static struct platform_driver ingenic_ost_driver = …;
builtin_platform_driver_probe(…);