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
of_usb_get_dr_mode_by_phy(struct device_node * np,int arg0)27 of_usb_get_dr_mode_by_phy(struct device_node *np, int arg0)
28 {
29 	return USB_DR_MODE_UNKNOWN;
30 }
of_usb_host_tpl_support(struct device_node * np)31 static inline bool of_usb_host_tpl_support(struct device_node *np)
32 {
33 	return false;
34 }
of_usb_update_otg_caps(struct device_node * np,struct usb_otg_caps * otg_caps)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 *
usb_of_get_device_node(struct usb_device * hub,int port1)41 usb_of_get_device_node(struct usb_device *hub, int port1)
42 {
43 	return NULL;
44 }
usb_of_has_combined_node(struct usb_device * udev)45 static inline bool usb_of_has_combined_node(struct usb_device *udev)
46 {
47 	return false;
48 }
49 static inline struct device_node *
usb_of_get_interface_node(struct usb_device * udev,u8 config,u8 ifnum)50 usb_of_get_interface_node(struct usb_device *udev, u8 config, u8 ifnum)
51 {
52 	return NULL;
53 }
usb_of_get_companion_dev(struct device * dev)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
of_usb_get_phy_mode(struct device_node * np)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