root/drivers/pci/hotplug/rpaphp.h

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

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. to_slot

   1 /* SPDX-License-Identifier: GPL-2.0+ */
   2 /*
   3  * PCI Hot Plug Controller Driver for RPA-compliant PPC64 platform.
   4  *
   5  * Copyright (C) 2003 Linda Xie <lxie@us.ibm.com>
   6  *
   7  * All rights reserved.
   8  *
   9  * Send feedback to <lxie@us.ibm.com>,
  10  *
  11  */
  12 
  13 #ifndef _PPC64PHP_H
  14 #define _PPC64PHP_H
  15 
  16 #include <linux/pci.h>
  17 #include <linux/pci_hotplug.h>
  18 
  19 #define DR_INDICATOR 9002
  20 #define DR_ENTITY_SENSE 9003
  21 
  22 #define POWER_ON        100
  23 #define POWER_OFF       0
  24 
  25 #define LED_OFF         0
  26 #define LED_ON          1       /* continuous on */
  27 #define LED_ID          2       /* slow blinking */
  28 #define LED_ACTION      3       /* fast blinking */
  29 
  30 /* Sensor values from rtas_get-sensor */
  31 #define EMPTY           0       /* No card in slot */
  32 #define PRESENT         1       /* Card in slot */
  33 
  34 #define MY_NAME "rpaphp"
  35 extern bool rpaphp_debug;
  36 #define dbg(format, arg...)                                     \
  37         do {                                                    \
  38                 if (rpaphp_debug)                               \
  39                         printk(KERN_DEBUG "%s: " format,        \
  40                                 MY_NAME, ## arg);               \
  41         } while (0)
  42 #define err(format, arg...) printk(KERN_ERR "%s: " format, MY_NAME, ## arg)
  43 #define info(format, arg...) printk(KERN_INFO "%s: " format, MY_NAME, ## arg)
  44 #define warn(format, arg...) printk(KERN_WARNING "%s: " format, MY_NAME, ## arg)
  45 
  46 /* slot states */
  47 
  48 #define NOT_VALID       3
  49 #define NOT_CONFIGURED  2
  50 #define CONFIGURED      1
  51 #define EMPTY           0
  52 
  53 /* DRC constants */
  54 
  55 #define MAX_DRC_NAME_LEN 64
  56 
  57 /*
  58  * struct slot - slot information for each *physical* slot
  59  */
  60 struct slot {
  61         struct list_head rpaphp_slot_list;
  62         int state;
  63         u32 index;
  64         u32 type;
  65         u32 power_domain;
  66         u8 attention_status;
  67         char *name;
  68         struct device_node *dn;
  69         struct pci_bus *bus;
  70         struct list_head *pci_devs;
  71         struct hotplug_slot hotplug_slot;
  72 };
  73 
  74 extern const struct hotplug_slot_ops rpaphp_hotplug_slot_ops;
  75 extern struct list_head rpaphp_slot_head;
  76 
  77 static inline struct slot *to_slot(struct hotplug_slot *hotplug_slot)
  78 {
  79         return container_of(hotplug_slot, struct slot, hotplug_slot);
  80 }
  81 
  82 /* function prototypes */
  83 
  84 /* rpaphp_pci.c */
  85 int rpaphp_enable_slot(struct slot *slot);
  86 int rpaphp_get_sensor_state(struct slot *slot, int *state);
  87 
  88 /* rpaphp_core.c */
  89 int rpaphp_add_slot(struct device_node *dn);
  90 int rpaphp_check_drc_props(struct device_node *dn, char *drc_name,
  91                 char *drc_type);
  92 
  93 /* rpaphp_slot.c */
  94 void dealloc_slot_struct(struct slot *slot);
  95 struct slot *alloc_slot_struct(struct device_node *dn, int drc_index, char *drc_name, int power_domain);
  96 int rpaphp_register_slot(struct slot *slot);
  97 int rpaphp_deregister_slot(struct slot *slot);
  98 
  99 #endif                          /* _PPC64PHP_H */

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