123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- // SPDX-License-Identifier: GPL-2.0
- /*
- * xhci-debugfs.h - xHCI debugfs interface
- *
- * Copyright (C) 2017 Intel Corporation
- *
- * Author: Lu Baolu <baolu.lu@linux.intel.com>
- */
- #ifndef __LINUX_XHCI_DEBUGFS_H
- #define __LINUX_XHCI_DEBUGFS_H
- #include <linux/debugfs.h>
- #define DEBUGFS_NAMELEN 32
- #define REG_CAPLENGTH 0x00
- #define REG_HCSPARAMS1 0x04
- #define REG_HCSPARAMS2 0x08
- #define REG_HCSPARAMS3 0x0c
- #define REG_HCCPARAMS1 0x10
- #define REG_DOORBELLOFF 0x14
- #define REG_RUNTIMEOFF 0x18
- #define REG_HCCPARAMS2 0x1c
- #define REG_USBCMD 0x00
- #define REG_USBSTS 0x04
- #define REG_PAGESIZE 0x08
- #define REG_DNCTRL 0x14
- #define REG_CRCR 0x18
- #define REG_DCBAAP_LOW 0x30
- #define REG_DCBAAP_HIGH 0x34
- #define REG_CONFIG 0x38
- #define REG_MFINDEX 0x00
- #define REG_IR0_IMAN 0x20
- #define REG_IR0_IMOD 0x24
- #define REG_IR0_ERSTSZ 0x28
- #define REG_IR0_ERSTBA_LOW 0x30
- #define REG_IR0_ERSTBA_HIGH 0x34
- #define REG_IR0_ERDP_LOW 0x38
- #define REG_IR0_ERDP_HIGH 0x3c
- #define REG_EXTCAP_USBLEGSUP 0x00
- #define REG_EXTCAP_USBLEGCTLSTS 0x04
- #define REG_EXTCAP_REVISION 0x00
- #define REG_EXTCAP_NAME 0x04
- #define REG_EXTCAP_PORTINFO 0x08
- #define REG_EXTCAP_PORTTYPE 0x0c
- #define REG_EXTCAP_MANTISSA1 0x10
- #define REG_EXTCAP_MANTISSA2 0x14
- #define REG_EXTCAP_MANTISSA3 0x18
- #define REG_EXTCAP_MANTISSA4 0x1c
- #define REG_EXTCAP_MANTISSA5 0x20
- #define REG_EXTCAP_MANTISSA6 0x24
- #define REG_EXTCAP_DBC_CAPABILITY 0x00
- #define REG_EXTCAP_DBC_DOORBELL 0x04
- #define REG_EXTCAP_DBC_ERSTSIZE 0x08
- #define REG_EXTCAP_DBC_ERST_LOW 0x10
- #define REG_EXTCAP_DBC_ERST_HIGH 0x14
- #define REG_EXTCAP_DBC_ERDP_LOW 0x18
- #define REG_EXTCAP_DBC_ERDP_HIGH 0x1c
- #define REG_EXTCAP_DBC_CONTROL 0x20
- #define REG_EXTCAP_DBC_STATUS 0x24
- #define REG_EXTCAP_DBC_PORTSC 0x28
- #define REG_EXTCAP_DBC_CONT_LOW 0x30
- #define REG_EXTCAP_DBC_CONT_HIGH 0x34
- #define REG_EXTCAP_DBC_DEVINFO1 0x38
- #define REG_EXTCAP_DBC_DEVINFO2 0x3c
- #define dump_register(nm) \
- { \
- .name = __stringify(nm), \
- .offset = REG_ ##nm, \
- }
- struct xhci_regset {
- char name[DEBUGFS_NAMELEN];
- struct debugfs_regset32 regset;
- size_t nregs;
- struct dentry *parent;
- struct list_head list;
- };
- struct xhci_file_map {
- const char *name;
- int (*show)(struct seq_file *s, void *unused);
- };
- struct xhci_ep_priv {
- char name[DEBUGFS_NAMELEN];
- struct dentry *root;
- };
- struct xhci_slot_priv {
- char name[DEBUGFS_NAMELEN];
- struct dentry *root;
- struct xhci_ep_priv *eps[31];
- struct xhci_virt_device *dev;
- };
- #ifdef CONFIG_DEBUG_FS
- void xhci_debugfs_init(struct xhci_hcd *xhci);
- void xhci_debugfs_exit(struct xhci_hcd *xhci);
- void __init xhci_debugfs_create_root(void);
- void __exit xhci_debugfs_remove_root(void);
- void xhci_debugfs_create_slot(struct xhci_hcd *xhci, int slot_id);
- void xhci_debugfs_remove_slot(struct xhci_hcd *xhci, int slot_id);
- void xhci_debugfs_create_endpoint(struct xhci_hcd *xhci,
- struct xhci_virt_device *virt_dev,
- int ep_index);
- void xhci_debugfs_remove_endpoint(struct xhci_hcd *xhci,
- struct xhci_virt_device *virt_dev,
- int ep_index);
- #else
- static inline void xhci_debugfs_init(struct xhci_hcd *xhci) { }
- static inline void xhci_debugfs_exit(struct xhci_hcd *xhci) { }
- static inline void __init xhci_debugfs_create_root(void) { }
- static inline void __exit xhci_debugfs_remove_root(void) { }
- static inline void xhci_debugfs_create_slot(struct xhci_hcd *x, int s) { }
- static inline void xhci_debugfs_remove_slot(struct xhci_hcd *x, int s) { }
- static inline void
- xhci_debugfs_create_endpoint(struct xhci_hcd *xhci,
- struct xhci_virt_device *virt_dev,
- int ep_index) { }
- static inline void
- xhci_debugfs_remove_endpoint(struct xhci_hcd *xhci,
- struct xhci_virt_device *virt_dev,
- int ep_index) { }
- #endif /* CONFIG_DEBUG_FS */
- #endif /* __LINUX_XHCI_DEBUGFS_H */
|