linux/drivers/clk/renesas/rcar-usb2-clock-sel.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Renesas R-Car USB2.0 clock selector
 *
 * Copyright (C) 2017 Renesas Electronics Corp.
 *
 * Based on renesas-cpg-mssr.c
 *
 * Copyright (C) 2015 Glider bvba
 */

#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)
{}

/*
 * This module seems a mux, but this driver assumes a gate because
 * ehci/ohci platform drivers don't support clk_set_parent() for now.
 * If this driver acts as a gate, ehci/ohci-platform drivers don't need
 * any modification.
 */
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();