#include <linux/clk.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <linux/regulator/driver.h>
#include <linux/regulator/of_regulator.h>
#include <linux/reset.h>
#define MAX_CLKS …
#define MAX_RSTS …
struct uniphier_regulator_soc_data { … };
struct uniphier_regulator_priv { … };
static const struct regulator_ops uniphier_regulator_ops = …;
static int uniphier_regulator_probe(struct platform_device *pdev)
{ … }
static void uniphier_regulator_remove(struct platform_device *pdev)
{ … }
#define USB3VBUS_OFFSET …
#define USB3VBUS_REG …
#define USB3VBUS_REG_EN …
static const struct regulator_desc uniphier_usb3_regulator_desc = …;
static const struct regmap_config uniphier_usb3_regulator_regconf = …;
static const char * const uniphier_pro4_clock_reset_names[] = …;
static const struct uniphier_regulator_soc_data uniphier_pro4_usb3_data = …;
static const char * const uniphier_pxs2_clock_reset_names[] = …;
static const struct uniphier_regulator_soc_data uniphier_pxs2_usb3_data = …;
static const struct of_device_id uniphier_regulator_match[] = …;
MODULE_DEVICE_TABLE(of, uniphier_regulator_match);
static struct platform_driver uniphier_regulator_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;