include/linux/usb/of.h
Source file repositories/reference/linux-study-clean/include/linux/usb/of.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/usb/of.h- Extension
.h- Size
- 2074 bytes
- Lines
- 78
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/usb.hlinux/usb/ch9.hlinux/usb/otg.hlinux/usb/phy.h
Detected Declarations
struct usb_devicefunction of_usb_get_dr_mode_by_phyfunction of_usb_host_tpl_supportfunction of_usb_update_otg_capsfunction usb_of_get_connect_typefunction usb_of_get_device_nodefunction usb_of_has_combined_nodefunction usb_of_get_interface_nodefunction of_usb_get_phy_mode
Annotated Snippet
// SPDX-License-Identifier: GPL-2.0
/*
* OF helpers for usb devices.
*/
#ifndef __LINUX_USB_OF_H
#define __LINUX_USB_OF_H
#include <linux/usb.h>
#include <linux/usb/ch9.h>
#include <linux/usb/otg.h>
#include <linux/usb/phy.h>
struct usb_device;
#if IS_ENABLED(CONFIG_OF)
enum usb_dr_mode of_usb_get_dr_mode_by_phy(struct device_node *np, int arg0);
bool of_usb_host_tpl_support(struct device_node *np);
int of_usb_update_otg_caps(struct device_node *np,
struct usb_otg_caps *otg_caps);
enum usb_port_connect_type usb_of_get_connect_type(struct usb_device *hub, int port1);
struct device_node *usb_of_get_device_node(struct usb_device *hub, int port1);
bool usb_of_has_combined_node(struct usb_device *udev);
struct device_node *usb_of_get_interface_node(struct usb_device *udev,
u8 config, u8 ifnum);
struct device *usb_of_get_companion_dev(struct device *dev);
#else
static inline enum usb_dr_mode
of_usb_get_dr_mode_by_phy(struct device_node *np, int arg0)
{
return USB_DR_MODE_UNKNOWN;
}
static inline bool of_usb_host_tpl_support(struct device_node *np)
{
return false;
}
static inline int of_usb_update_otg_caps(struct device_node *np,
struct usb_otg_caps *otg_caps)
{
return 0;
}
static inline enum usb_port_connect_type
usb_of_get_connect_type(const struct usb_device *hub, int port1)
{
return USB_PORT_CONNECT_TYPE_UNKNOWN;
}
static inline struct device_node *
usb_of_get_device_node(struct usb_device *hub, int port1)
{
return NULL;
}
static inline bool usb_of_has_combined_node(struct usb_device *udev)
{
return false;
}
static inline struct device_node *
usb_of_get_interface_node(struct usb_device *udev, u8 config, u8 ifnum)
{
return NULL;
}
static inline struct device *usb_of_get_companion_dev(struct device *dev)
{
return NULL;
}
#endif
#if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_USB_SUPPORT)
enum usb_phy_interface of_usb_get_phy_mode(struct device_node *np);
#else
static inline enum usb_phy_interface of_usb_get_phy_mode(struct device_node *np)
{
return USBPHY_INTERFACE_MODE_UNKNOWN;
}
#endif
#endif /* __LINUX_USB_OF_H */
Annotation
- Immediate include surface: `linux/usb.h`, `linux/usb/ch9.h`, `linux/usb/otg.h`, `linux/usb/phy.h`.
- Detected declarations: `struct usb_device`, `function of_usb_get_dr_mode_by_phy`, `function of_usb_host_tpl_support`, `function of_usb_update_otg_caps`, `function usb_of_get_connect_type`, `function usb_of_get_device_node`, `function usb_of_has_combined_node`, `function usb_of_get_interface_node`, `function of_usb_get_phy_mode`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.