Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 /******************************************************************************* | |
| 2 ** | |
| 3 ** FILENAME: $Id$ | |
| 4 ** COPYRIGHT: Infineon Technologies | |
| 5 ** DESCRIPTION: I2C TPM - Compatibility layer to port linux driver to U-Boot | |
| 6 ** CREATION DATE: 2010/11/10 | |
| 7 ** LAST CHANGE: $Date: 2010-10-20 12:04:48 +0200 (Wed, 20 Oct 2010) $ | |
| 8 ** $Author$ | |
| 9 ** VERSION: $Revision: 59 $ | |
| 10 ** | |
| 11 *******************************************************************************/ | |
| 12 | |
| 13 #ifndef _COMPATIBILITY_H_ | |
| 14 #define _COMPATIBILITY_H_ | |
| 15 | |
| 16 /* all includes from U-Boot */ | |
| 17 #include <linux/types.h> | |
| 18 #include <asm-generic/errno.h> | |
| 19 #include <compiler.h> | |
| 20 #include <common.h> | |
| 21 | |
| 22 /* extended error numbers from linux (see errno.h) */ | |
| 23 #define ECANCELED 125 /* Operation Canceled */ | |
| 24 | |
| 25 /* simple version, original from drivers/base/base.h */ | |
| 26 struct device_private { | |
| 27 void *driver_data; | |
| 28 }; | |
| 29 | |
| 30 /* simple version, original from include/linux/device.h */ | |
| 31 struct device { | |
| 32 struct device *parent; | |
| 33 struct device_private *p; | |
| 34 void (*release) (struct device *dev); | |
| 35 }; | |
| 36 | |
| 37 /* | |
| 38 * Timing concept in u-boot driver | |
| 39 * - jiffies is a global variable similar to linux | |
| 40 * - instead of sleeping msleep causes delay | |
| 41 * - jiffies is incremented inside msleep | |
| 42 * - conversion macros are available (not all conditions work) | |
| 43 * - tpm driver remains unchanged | |
| 44 * | |
| 45 * Conversion: 1 jiffie = 1/HZ seconds | |
| 46 * 1 second = HZ jiffies | |
| 47 * | |
| 48 * NOTE: linux kernel configuration for ARM sets HZ to 128, | |
| 49 * timeconst.h then contains automatically generated values for | |
| 50 * arithmetics. | |
| 51 */ | |
| 52 /* global timing value */ | |
| 53 extern unsigned long jiffies; | |
| 54 | |
| 55 /* conversion functions */ | |
| 56 extern void msleep(unsigned int t); | |
| 57 extern void msleep2(unsigned int t); | |
| 58 extern unsigned long usecs_to_jiffies(const unsigned int u); | |
| 59 extern unsigned long msecs_to_jiffies(const unsigned int u); | |
| 60 | |
| 61 #define HZ 1000 | |
| 62 | |
| 63 /* helper macros */ | |
| 64 #define typecheck(type, x) \ | |
| 65 ({ type __dummy; \ | |
| 66 typeof(x) __dummy2; \ | |
| 67 (void)(&__dummy == &__dummy2); \ | |
|
Che-Liang Chiou
2011/03/14 08:49:54
Is it void or void*?
rongchang
2011/03/23 11:44:57
This file is provided by Infineon. Hence will be k
| |
| 68 1; \ | |
|
Che-Liang Chiou
2011/03/14 08:49:54
Does this mean typecheck() alway be evaluated to 1
rongchang
2011/03/23 11:44:57
Same as above.
| |
| 69 }) | |
| 70 | |
| 71 /* time relation ships */ | |
| 72 #define time_after(a, b) \ | |
| 73 (typecheck(unsigned long, a) && \ | |
| 74 typecheck(unsigned long, b) && \ | |
| 75 ((long)(b) - (long)(a) < 0)) | |
|
Che-Liang Chiou
2011/03/14 08:49:54
Why not ((unsigned long)(b) < (unsigned long)(c))
rongchang
2011/03/23 11:44:57
Same as above.
| |
| 76 #define time_before(a, b) time_after(b, a) | |
| 77 | |
| 78 /* XXX Currently, an open issue with the cortex-a8 data abort trap | |
| 79 * prevents us from using the be32_to_cpu macros. Non-aligned data | |
| 80 * accesses hang-up program. Casting from 8- to 32-bit pointer is not | |
| 81 * working. | |
| 82 */ | |
| 83 static inline u32 switch_endian32(const u8 *buf) | |
| 84 { | |
| 85 return (buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | (buf[3]); | |
| 86 } | |
| 87 | |
| 88 #if defined(DEBUG) | |
| 89 # define dev_dbg(dev, format, arg...) printf(format, ##arg) | |
| 90 #else | |
| 91 # define dev_dbg(dev, format, arg...) while (0); | |
| 92 #endif | |
| 93 #define dev_err(dev, format, arg...) printf(format, ##arg) | |
| 94 #define dev_info(dev, format, arg...) printf(format, ##arg) | |
| 95 | |
| 96 #if defined(DEBUG) | |
| 97 # define dbg_printf(fmt, arg...) printf(fmt, ##arg) | |
| 98 #else | |
| 99 # define dbg_printf(fmt, arg...) while (0); | |
| 100 #endif | |
| 101 | |
| 102 /* dummy for export */ | |
| 103 #define EXPORT_SYMBOL_GPL(x) | |
| 104 | |
| 105 #define module_init(x) | |
| 106 #define module_exit(x) | |
| 107 #define MODULE_AUTHOR(x) | |
| 108 #define MODULE_DESCRIPTION(x) | |
| 109 #define MODULE_VERSION(x) | |
| 110 #define MODULE_LICENSE(x) | |
| 111 | |
| 112 #endif | |
| OLD | NEW |