1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef __LINUX_USB_NOP_XCEIV_H 3#define __LINUX_USB_NOP_XCEIV_H 4 5#include <linux/usb/otg.h> 6#include <linux/gpio/consumer.h> 7 8struct usb_phy_generic_platform_data { 9 enum usb_phy_type type; 10 unsigned long clk_rate; 11 12 /* if set fails with -EPROBE_DEFER if can't get regulator */ 13 unsigned int needs_vcc:1; 14 unsigned int needs_reset:1; /* deprecated */ 15 int gpio_reset; 16 struct gpio_desc *gpiod_vbus; 17}; 18 19#if IS_ENABLED(CONFIG_NOP_USB_XCEIV) 20/* sometimes transceivers are accessed only through e.g. ULPI */ 21extern struct platform_device *usb_phy_generic_register(void); 22extern void usb_phy_generic_unregister(struct platform_device *); 23#else 24static inline struct platform_device *usb_phy_generic_register(void) 25{ 26 return NULL; 27} 28 29static inline void usb_phy_generic_unregister(struct platform_device *pdev) 30{ 31} 32#endif 33 34#endif /* __LINUX_USB_NOP_XCEIV_H */ 35