1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * OF helpers for usb devices. 4 */ 5 6 #ifndef __LINUX_USB_OF_H 7 #define __LINUX_USB_OF_H 8 9 #include <linux/usb/ch9.h> 10 #include <linux/usb/otg.h> 11 #include <linux/usb/phy.h> 12 13 struct usb_device; 14 15 #if IS_ENABLED(CONFIG_OF) 16 enum usb_dr_mode of_usb_get_dr_mode_by_phy(struct device_node *np, int arg0); 17 bool of_usb_host_tpl_support(struct device_node *np); 18 int of_usb_update_otg_caps(struct device_node *np, 19 struct usb_otg_caps *otg_caps); 20 struct device_node *usb_of_get_device_node(struct usb_device *hub, int port1); 21 bool usb_of_has_combined_node(struct usb_device *udev); 22 struct device_node *usb_of_get_interface_node(struct usb_device *udev, 23 u8 config, u8 ifnum); 24 struct device *usb_of_get_companion_dev(struct device *dev); 25 #else 26 static inline enum usb_dr_mode 27 of_usb_get_dr_mode_by_phy(struct device_node *np, int arg0) 28 { 29 return USB_DR_MODE_UNKNOWN; 30 } 31 static inline bool of_usb_host_tpl_support(struct device_node *np) 32 { 33 return false; 34 } 35 static inline int of_usb_update_otg_caps(struct device_node *np, 36 struct usb_otg_caps *otg_caps) 37 { 38 return 0; 39 } 40 static inline struct device_node * 41 usb_of_get_device_node(struct usb_device *hub, int port1) 42 { 43 return NULL; 44 } 45 static inline bool usb_of_has_combined_node(struct usb_device *udev) 46 { 47 return false; 48 } 49 static inline struct device_node * 50 usb_of_get_interface_node(struct usb_device *udev, u8 config, u8 ifnum) 51 { 52 return NULL; 53 } 54 static inline struct device *usb_of_get_companion_dev(struct device *dev) 55 { 56 return NULL; 57 } 58 #endif 59 60 #if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_USB_SUPPORT) 61 enum usb_phy_interface of_usb_get_phy_mode(struct device_node *np); 62 #else 63 static inline enum usb_phy_interface of_usb_get_phy_mode(struct device_node *np) 64 { 65 return USBPHY_INTERFACE_MODE_UNKNOWN; 66 } 67 68 #endif 69 70 #endif /* __LINUX_USB_OF_H */ 71