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