Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 /*
  2  * PCI Hot Plug Controller Driver for RPA-compliant PPC64 platform.
  3  *
  4  * Copyright (C) 2003 Linda Xie <lxie@us.ibm.com>
  5  *
  6  * All rights reserved.
  7  *
  8  * This program is free software; you can redistribute it and/or modify
  9  * it under the terms of the GNU General Public License as published by
 10  * the Free Software Foundation; either version 2 of the License, or (at
 11  * your option) any later version.
 12  *
 13  * This program is distributed in the hope that it will be useful, but
 14  * WITHOUT ANY WARRANTY; without even the implied warranty of
 15  * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
 16  * NON INFRINGEMENT.  See the GNU General Public License for more
 17  * details.
 18  *
 19  * You should have received a copy of the GNU General Public License
 20  * along with this program; if not, write to the Free Software
 21  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 22  *
 23  * Send feedback to <lxie@us.ibm.com>,
 24  *
 25  */
 26 
 27 #ifndef _PPC64PHP_H
 28 #define _PPC64PHP_H
 29 
 30 #include <linux/pci.h>
 31 #include <linux/pci_hotplug.h>
 32 
 33 #define DR_INDICATOR 9002
 34 #define DR_ENTITY_SENSE 9003
 35 
 36 #define POWER_ON        100
 37 #define POWER_OFF       0
 38 
 39 #define LED_OFF         0
 40 #define LED_ON          1       /* continuous on */
 41 #define LED_ID          2       /* slow blinking */
 42 #define LED_ACTION      3       /* fast blinking */
 43 
 44 /* Sensor values from rtas_get-sensor */
 45 #define EMPTY           0       /* No card in slot */
 46 #define PRESENT         1       /* Card in slot */
 47 
 48 #define MY_NAME "rpaphp"
 49 extern int rpaphp_debug;
 50 #define dbg(format, arg...)                                     \
 51         do {                                                    \
 52                 if (rpaphp_debug)                                       \
 53                         printk(KERN_DEBUG "%s: " format,        \
 54                                 MY_NAME , ## arg);              \
 55         } while (0)
 56 #define err(format, arg...) printk(KERN_ERR "%s: " format, MY_NAME , ## arg)
 57 #define info(format, arg...) printk(KERN_INFO "%s: " format, MY_NAME , ## arg)
 58 #define warn(format, arg...) printk(KERN_WARNING "%s: " format, MY_NAME , ## arg)
 59 
 60 /* slot states */
 61 
 62 #define NOT_VALID       3
 63 #define NOT_CONFIGURED  2
 64 #define CONFIGURED      1
 65 #define EMPTY           0
 66 
 67 /*
 68  * struct slot - slot information for each *physical* slot
 69  */
 70 struct slot {
 71         struct list_head rpaphp_slot_list;
 72         int state;
 73         u32 index;
 74         u32 type;
 75         u32 power_domain;
 76         char *name;
 77         struct device_node *dn;
 78         struct pci_bus *bus;
 79         struct list_head *pci_devs;
 80         struct hotplug_slot *hotplug_slot;
 81 };
 82 
 83 extern struct hotplug_slot_ops rpaphp_hotplug_slot_ops;
 84 extern struct list_head rpaphp_slot_head;
 85 
 86 /* function prototypes */
 87 
 88 /* rpaphp_pci.c */
 89 extern int rpaphp_enable_slot(struct slot *slot);
 90 extern int rpaphp_get_sensor_state(struct slot *slot, int *state);
 91 
 92 /* rpaphp_core.c */
 93 extern int rpaphp_add_slot(struct device_node *dn);
 94 extern int rpaphp_get_drc_props(struct device_node *dn, int *drc_index,
 95                 char **drc_name, char **drc_type, int *drc_power_domain);
 96 
 97 /* rpaphp_slot.c */
 98 extern void dealloc_slot_struct(struct slot *slot);
 99 extern struct slot *alloc_slot_struct(struct device_node *dn, int drc_index, char *drc_name, int power_domain);
100 extern int rpaphp_register_slot(struct slot *slot);
101 extern int rpaphp_deregister_slot(struct slot *slot);
102         
103 #endif                          /* _PPC64PHP_H */
104 
  This page was automatically generated by the LXR engine.