tpm_atmel.h (0a0fc0ddbe732779366ab6b1b879f62195e65967) | tpm_atmel.h (e0dd03caf20d040a0a86b6bd74028ec9bda545f5) |
---|---|
1/* 2 * Copyright (C) 2005 IBM Corporation 3 * 4 * Authors: 5 * Kylene Hall <kjhall@us.ibm.com> 6 * 7 * Maintained by: <tpmdd_devel@lists.sourceforge.net> 8 * --- 14 unchanged lines hidden (view full) --- 23 */ 24 25#ifdef CONFIG_PPC64 26#define atmel_getb(chip, offset) readb(chip->vendor->iobase + offset); 27#define atmel_putb(val, chip, offset) writeb(val, chip->vendor->iobase + offset) 28#define atmel_request_region request_mem_region 29#define atmel_release_region release_mem_region 30 | 1/* 2 * Copyright (C) 2005 IBM Corporation 3 * 4 * Authors: 5 * Kylene Hall <kjhall@us.ibm.com> 6 * 7 * Maintained by: <tpmdd_devel@lists.sourceforge.net> 8 * --- 14 unchanged lines hidden (view full) --- 23 */ 24 25#ifdef CONFIG_PPC64 26#define atmel_getb(chip, offset) readb(chip->vendor->iobase + offset); 27#define atmel_putb(val, chip, offset) writeb(val, chip->vendor->iobase + offset) 28#define atmel_request_region request_mem_region 29#define atmel_release_region release_mem_region 30 |
31static inline void atmel_put_base_addr(struct tpm_vendor_specific 32 *vendor) | 31static inline void atmel_put_base_addr(void __iomem *iobase) |
33{ | 32{ |
34 iounmap(vendor->iobase); | 33 iounmap(iobase); |
35} 36 | 34} 35 |
37static void __iomem * atmel_get_base_addr(struct tpm_vendor_specific *vendor) | 36static void __iomem * atmel_get_base_addr(unsigned long *base, int *region_size) |
38{ 39 struct device_node *dn; 40 unsigned long address, size; 41 unsigned int *reg; 42 int reglen; 43 int naddrc; 44 int nsizec; 45 --- 20 unchanged lines hidden (view full) --- 66 address = reg[0]; 67 68 if (nsizec == 2) 69 size = 70 ((unsigned long) reg[naddrc] << 32) | reg[naddrc + 1]; 71 else 72 size = reg[naddrc]; 73 | 37{ 38 struct device_node *dn; 39 unsigned long address, size; 40 unsigned int *reg; 41 int reglen; 42 int naddrc; 43 int nsizec; 44 --- 20 unchanged lines hidden (view full) --- 65 address = reg[0]; 66 67 if (nsizec == 2) 68 size = 69 ((unsigned long) reg[naddrc] << 32) | reg[naddrc + 1]; 70 else 71 size = reg[naddrc]; 72 |
74 vendor->base = address; 75 vendor->region_size = size; 76 return ioremap(vendor->base, vendor->region_size); | 73 *base = address; 74 *region_size = size; 75 return ioremap(*base, *region_size); |
77} 78#else 79#define atmel_getb(chip, offset) inb(chip->vendor->base + offset) 80#define atmel_putb(val, chip, offset) outb(val, chip->vendor->base + offset) 81#define atmel_request_region request_region 82#define atmel_release_region release_region 83/* Atmel definitions */ 84enum tpm_atmel_addr { --- 16 unchanged lines hidden (view full) --- 101 if (tpm_read_index(TPM_ADDR, 0x00) != 1 || 102 tpm_read_index(TPM_ADDR, 0x01) != 1) 103 return 1; 104 105 /* This is an atmel supported part */ 106 return 0; 107} 108 | 76} 77#else 78#define atmel_getb(chip, offset) inb(chip->vendor->base + offset) 79#define atmel_putb(val, chip, offset) outb(val, chip->vendor->base + offset) 80#define atmel_request_region request_region 81#define atmel_release_region release_region 82/* Atmel definitions */ 83enum tpm_atmel_addr { --- 16 unchanged lines hidden (view full) --- 100 if (tpm_read_index(TPM_ADDR, 0x00) != 1 || 101 tpm_read_index(TPM_ADDR, 0x01) != 1) 102 return 1; 103 104 /* This is an atmel supported part */ 105 return 0; 106} 107 |
109static inline void atmel_put_base_addr(struct tpm_vendor_specific 110 *vendor) | 108static inline void atmel_put_base_addr(void __iomem *iobase) |
111{ 112} 113 114/* Determine where to talk to device */ | 109{ 110} 111 112/* Determine where to talk to device */ |
115static void __iomem * atmel_get_base_addr(struct tpm_vendor_specific 116 *vendor) | 113static void __iomem * atmel_get_base_addr(unsigned long *base, int *region_size) |
117{ 118 int lo, hi; 119 120 if (atmel_verify_tpm11() != 0) 121 return NULL; 122 123 lo = tpm_read_index(TPM_ADDR, TPM_ATMEL_BASE_ADDR_LO); 124 hi = tpm_read_index(TPM_ADDR, TPM_ATMEL_BASE_ADDR_HI); 125 | 114{ 115 int lo, hi; 116 117 if (atmel_verify_tpm11() != 0) 118 return NULL; 119 120 lo = tpm_read_index(TPM_ADDR, TPM_ATMEL_BASE_ADDR_LO); 121 hi = tpm_read_index(TPM_ADDR, TPM_ATMEL_BASE_ADDR_HI); 122 |
126 vendor->base = (hi << 8) | lo; 127 vendor->region_size = 2; | 123 *base = (hi << 8) | lo; 124 *region_size = 2; |
128 | 125 |
129 return ioport_map(vendor->base, vendor->region_size); | 126 return ioport_map(*base, *region_size); |
130} 131#endif | 127} 128#endif |