1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef _PHY_GENERIC_H_ 3*4882a593Smuzhiyun #define _PHY_GENERIC_H_ 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <linux/usb/usb_phy_generic.h> 6*4882a593Smuzhiyun #include <linux/gpio/consumer.h> 7*4882a593Smuzhiyun #include <linux/regulator/consumer.h> 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun struct usb_phy_generic { 10*4882a593Smuzhiyun struct usb_phy phy; 11*4882a593Smuzhiyun struct device *dev; 12*4882a593Smuzhiyun struct clk *clk; 13*4882a593Smuzhiyun struct regulator *vcc; 14*4882a593Smuzhiyun struct gpio_desc *gpiod_reset; 15*4882a593Smuzhiyun struct gpio_desc *gpiod_vbus; 16*4882a593Smuzhiyun struct regulator *vbus_draw; 17*4882a593Smuzhiyun bool vbus_draw_enabled; 18*4882a593Smuzhiyun unsigned long mA; 19*4882a593Smuzhiyun unsigned int vbus; 20*4882a593Smuzhiyun }; 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun int usb_gen_phy_init(struct usb_phy *phy); 23*4882a593Smuzhiyun void usb_gen_phy_shutdown(struct usb_phy *phy); 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun int usb_phy_gen_create_phy(struct device *dev, struct usb_phy_generic *nop); 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun #endif 28