root/drivers/usb/host/xhci-debugfs.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. xhci_debugfs_init
  2. xhci_debugfs_exit
  3. xhci_debugfs_create_root
  4. xhci_debugfs_remove_root
  5. xhci_debugfs_create_slot
  6. xhci_debugfs_remove_slot
  7. xhci_debugfs_create_endpoint
  8. xhci_debugfs_remove_endpoint

   1 // SPDX-License-Identifier: GPL-2.0
   2 /*
   3  * xhci-debugfs.h - xHCI debugfs interface
   4  *
   5  * Copyright (C) 2017 Intel Corporation
   6  *
   7  * Author: Lu Baolu <baolu.lu@linux.intel.com>
   8  */
   9 
  10 #ifndef __LINUX_XHCI_DEBUGFS_H
  11 #define __LINUX_XHCI_DEBUGFS_H
  12 
  13 #include <linux/debugfs.h>
  14 
  15 #define DEBUGFS_NAMELEN 32
  16 
  17 #define REG_CAPLENGTH                                   0x00
  18 #define REG_HCSPARAMS1                                  0x04
  19 #define REG_HCSPARAMS2                                  0x08
  20 #define REG_HCSPARAMS3                                  0x0c
  21 #define REG_HCCPARAMS1                                  0x10
  22 #define REG_DOORBELLOFF                                 0x14
  23 #define REG_RUNTIMEOFF                                  0x18
  24 #define REG_HCCPARAMS2                                  0x1c
  25 
  26 #define REG_USBCMD                                      0x00
  27 #define REG_USBSTS                                      0x04
  28 #define REG_PAGESIZE                                    0x08
  29 #define REG_DNCTRL                                      0x14
  30 #define REG_CRCR                                        0x18
  31 #define REG_DCBAAP_LOW                                  0x30
  32 #define REG_DCBAAP_HIGH                                 0x34
  33 #define REG_CONFIG                                      0x38
  34 
  35 #define REG_MFINDEX                                     0x00
  36 #define REG_IR0_IMAN                                    0x20
  37 #define REG_IR0_IMOD                                    0x24
  38 #define REG_IR0_ERSTSZ                                  0x28
  39 #define REG_IR0_ERSTBA_LOW                              0x30
  40 #define REG_IR0_ERSTBA_HIGH                             0x34
  41 #define REG_IR0_ERDP_LOW                                0x38
  42 #define REG_IR0_ERDP_HIGH                               0x3c
  43 
  44 #define REG_EXTCAP_USBLEGSUP                            0x00
  45 #define REG_EXTCAP_USBLEGCTLSTS                         0x04
  46 
  47 #define REG_EXTCAP_REVISION                             0x00
  48 #define REG_EXTCAP_NAME                                 0x04
  49 #define REG_EXTCAP_PORTINFO                             0x08
  50 #define REG_EXTCAP_PORTTYPE                             0x0c
  51 #define REG_EXTCAP_MANTISSA1                            0x10
  52 #define REG_EXTCAP_MANTISSA2                            0x14
  53 #define REG_EXTCAP_MANTISSA3                            0x18
  54 #define REG_EXTCAP_MANTISSA4                            0x1c
  55 #define REG_EXTCAP_MANTISSA5                            0x20
  56 #define REG_EXTCAP_MANTISSA6                            0x24
  57 
  58 #define REG_EXTCAP_DBC_CAPABILITY                       0x00
  59 #define REG_EXTCAP_DBC_DOORBELL                         0x04
  60 #define REG_EXTCAP_DBC_ERSTSIZE                         0x08
  61 #define REG_EXTCAP_DBC_ERST_LOW                         0x10
  62 #define REG_EXTCAP_DBC_ERST_HIGH                        0x14
  63 #define REG_EXTCAP_DBC_ERDP_LOW                         0x18
  64 #define REG_EXTCAP_DBC_ERDP_HIGH                        0x1c
  65 #define REG_EXTCAP_DBC_CONTROL                          0x20
  66 #define REG_EXTCAP_DBC_STATUS                           0x24
  67 #define REG_EXTCAP_DBC_PORTSC                           0x28
  68 #define REG_EXTCAP_DBC_CONT_LOW                         0x30
  69 #define REG_EXTCAP_DBC_CONT_HIGH                        0x34
  70 #define REG_EXTCAP_DBC_DEVINFO1                         0x38
  71 #define REG_EXTCAP_DBC_DEVINFO2                         0x3c
  72 
  73 #define dump_register(nm)                               \
  74 {                                                       \
  75         .name   = __stringify(nm),                      \
  76         .offset = REG_ ##nm,                            \
  77 }
  78 
  79 struct xhci_regset {
  80         char                    name[DEBUGFS_NAMELEN];
  81         struct debugfs_regset32 regset;
  82         size_t                  nregs;
  83         struct list_head        list;
  84 };
  85 
  86 struct xhci_file_map {
  87         const char              *name;
  88         int                     (*show)(struct seq_file *s, void *unused);
  89 };
  90 
  91 struct xhci_ep_priv {
  92         char                    name[DEBUGFS_NAMELEN];
  93         struct dentry           *root;
  94 };
  95 
  96 struct xhci_slot_priv {
  97         char                    name[DEBUGFS_NAMELEN];
  98         struct dentry           *root;
  99         struct xhci_ep_priv     *eps[31];
 100         struct xhci_virt_device *dev;
 101 };
 102 
 103 #ifdef CONFIG_DEBUG_FS
 104 void xhci_debugfs_init(struct xhci_hcd *xhci);
 105 void xhci_debugfs_exit(struct xhci_hcd *xhci);
 106 void __init xhci_debugfs_create_root(void);
 107 void __exit xhci_debugfs_remove_root(void);
 108 void xhci_debugfs_create_slot(struct xhci_hcd *xhci, int slot_id);
 109 void xhci_debugfs_remove_slot(struct xhci_hcd *xhci, int slot_id);
 110 void xhci_debugfs_create_endpoint(struct xhci_hcd *xhci,
 111                                   struct xhci_virt_device *virt_dev,
 112                                   int ep_index);
 113 void xhci_debugfs_remove_endpoint(struct xhci_hcd *xhci,
 114                                   struct xhci_virt_device *virt_dev,
 115                                   int ep_index);
 116 #else
 117 static inline void xhci_debugfs_init(struct xhci_hcd *xhci) { }
 118 static inline void xhci_debugfs_exit(struct xhci_hcd *xhci) { }
 119 static inline void __init xhci_debugfs_create_root(void) { }
 120 static inline void __exit xhci_debugfs_remove_root(void) { }
 121 static inline void xhci_debugfs_create_slot(struct xhci_hcd *x, int s) { }
 122 static inline void xhci_debugfs_remove_slot(struct xhci_hcd *x, int s) { }
 123 static inline void
 124 xhci_debugfs_create_endpoint(struct xhci_hcd *xhci,
 125                              struct xhci_virt_device *virt_dev,
 126                              int ep_index) { }
 127 static inline void
 128 xhci_debugfs_remove_endpoint(struct xhci_hcd *xhci,
 129                              struct xhci_virt_device *virt_dev,
 130                              int ep_index) { }
 131 #endif /* CONFIG_DEBUG_FS */
 132 
 133 #endif /* __LINUX_XHCI_DEBUGFS_H */

/* [<][>][^][v][top][bottom][index][help] */