#include <linux/clk.h>
#include <linux/clk-provider.h>
#include <linux/device.h>
#include <linux/init.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/pm.h>
#include <linux/pm_runtime.h>
#include <linux/reset.h>
#include <linux/slab.h>
#define USB20_CLKSET0 …
#define CLKSET0_INTCLK_EN …
#define CLKSET0_PRIVATE …
#define CLKSET0_EXTAL_ONLY …
static const struct clk_bulk_data rcar_usb2_clocks[] = …;
struct usb2_clock_sel_priv { … };
#define to_priv(_hw) …
static void usb2_clock_sel_enable_extal_only(struct usb2_clock_sel_priv *priv)
{ … }
static void usb2_clock_sel_disable_extal_only(struct usb2_clock_sel_priv *priv)
{ … }
static int usb2_clock_sel_enable(struct clk_hw *hw)
{ … }
static void usb2_clock_sel_disable(struct clk_hw *hw)
{ … }
static const struct clk_ops usb2_clock_sel_clock_ops = …;
static const struct of_device_id rcar_usb2_clock_sel_match[] = …;
static int rcar_usb2_clock_sel_suspend(struct device *dev)
{ … }
static int rcar_usb2_clock_sel_resume(struct device *dev)
{ … }
static void rcar_usb2_clock_sel_remove(struct platform_device *pdev)
{ … }
static int rcar_usb2_clock_sel_probe(struct platform_device *pdev)
{ … }
static const struct dev_pm_ops rcar_usb2_clock_sel_pm_ops = …;
static struct platform_driver rcar_usb2_clock_sel_driver = …;
builtin_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;