u-boot/drivers/usb/dwc3/dwc3-generic.h
Kunihiko Hayashi ef2313b8a2 usb: dwc3-generic: Export glue structures and functions
In order to allow external SoC-dependent glue drivers to use dwc3-generic
functions, push the glue structures and export the functions to a header
file.

The exported structures and functions are:

- struct dwc3_glue_data
- struct dwc3_glue_ops
- dwc3_glue_bind()
- dwc3_glue_probe()
- dwc3_glue_remove()

The SoC-dependent glue drivers can only define their own wrapper driver
and specify these functions. The drivers can also add their own compatible
strings and configure functions.

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Reviewed-by: Marek Vasut <marex@denx.de>
2023-02-22 19:40:11 +01:00

32 lines
736 B
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* dwc3-generic.h - Generic DWC3 Glue layer header
*
* Copyright (C) 2016 - 2018 Xilinx, Inc.
* Copyright (C) 2023 Socionext Inc.
*/
#ifndef __DRIVERS_USB_DWC3_GENERIC_H
#define __DRIVERS_USB_DWC3_GENERIC_H
#include <clk.h>
#include <reset.h>
#include <dwc3-uboot.h>
struct dwc3_glue_data {
struct clk_bulk clks;
struct reset_ctl_bulk resets;
fdt_addr_t regs;
};
struct dwc3_glue_ops {
int (*glue_get_ctrl_dev)(struct udevice *parent, ofnode *node);
void (*glue_configure)(struct udevice *dev, int index,
enum usb_dr_mode mode);
};
int dwc3_glue_bind(struct udevice *parent);
int dwc3_glue_probe(struct udevice *dev);
int dwc3_glue_remove(struct udevice *dev);
#endif