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 8 struct 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 */ 21 extern struct platform_device *usb_phy_generic_register(void); 22 extern void usb_phy_generic_unregister(struct platform_device *); 23 #else usb_phy_generic_register(void)24static inline struct platform_device *usb_phy_generic_register(void) 25 { 26 return NULL; 27 } 28 usb_phy_generic_unregister(struct platform_device * pdev)29static inline void usb_phy_generic_unregister(struct platform_device *pdev) 30 { 31 } 32 #endif 33 34 #endif /* __LINUX_USB_NOP_XCEIV_H */ 35