]> err.no Git - linux-2.6/blobdiff - drivers/char/tpm/tpm_atmel.h
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
[linux-2.6] / drivers / char / tpm / tpm_atmel.h
index d3478aaadd77a20b24db39f668ea1efb1f826f1c..6c831f9466b70c6e4399a09bc89278aed2eeaa7e 100644 (file)
@@ -4,7 +4,7 @@
  * Authors:
  * Kylene Hall <kjhall@us.ibm.com>
  *
- * Maintained by: <tpmdd_devel@lists.sourceforge.net>
+ * Maintained by: <tpmdd-devel@lists.sourceforge.net>
  *
  * Device driver for TCG/TCPA TPM (trusted platform module).
  * Specifications at www.trustedcomputinggroup.org
  */
 
 #ifdef CONFIG_PPC64
+
+#include <asm/prom.h>
+
 #define atmel_getb(chip, offset) readb(chip->vendor->iobase + offset);
 #define atmel_putb(val, chip, offset) writeb(val, chip->vendor->iobase + offset)
 #define atmel_request_region request_mem_region
 #define atmel_release_region release_mem_region
 
-static inline void atmel_put_base_addr(struct tpm_vendor_specific
-                                        *vendor)
+static inline void atmel_put_base_addr(void __iomem *iobase)
 {
-       iounmap(vendor->iobase);
+       iounmap(iobase);
 }
 
-static void __iomem * atmel_get_base_addr(struct tpm_vendor_specific *vendor)
+static void __iomem * atmel_get_base_addr(unsigned long *base, int *region_size)
 {
        struct device_node *dn;
        unsigned long address, size;
-       unsigned int *reg;
+       const unsigned int *reg;
        int reglen;
        int naddrc;
        int nsizec;
@@ -48,14 +50,14 @@ static void __iomem * atmel_get_base_addr(struct tpm_vendor_specific *vendor)
        if (!dn)
                return NULL;
 
-       if (!device_is_compatible(dn, "AT97SC3201")) {
+       if (!of_device_is_compatible(dn, "AT97SC3201")) {
                of_node_put(dn);
                return NULL;
        }
 
-       reg = (unsigned int *) get_property(dn, "reg", &reglen);
-       naddrc = prom_n_addr_cells(dn);
-       nsizec = prom_n_size_cells(dn);
+       reg = of_get_property(dn, "reg", &reglen);
+       naddrc = of_n_addr_cells(dn);
+       nsizec = of_n_size_cells(dn);
 
        of_node_put(dn);
 
@@ -71,9 +73,9 @@ static void __iomem * atmel_get_base_addr(struct tpm_vendor_specific *vendor)
        else
                size = reg[naddrc];
 
-       vendor->base = address;
-       vendor->region_size = size;
-       return ioremap(vendor->base, vendor->region_size);
+       *base = address;
+       *region_size = size;
+       return ioremap(*base, *region_size);
 }
 #else
 #define atmel_getb(chip, offset) inb(chip->vendor->base + offset)
@@ -106,14 +108,12 @@ static int atmel_verify_tpm11(void)
        return 0;
 }
 
-static inline void atmel_put_base_addr(struct tpm_vendor_specific
-                                        *vendor)
+static inline void atmel_put_base_addr(void __iomem *iobase)
 {
 }
 
 /* Determine where to talk to device */
-static void __iomem * atmel_get_base_addr(struct tpm_vendor_specific
-                                        *vendor)
+static void __iomem * atmel_get_base_addr(unsigned long *base, int *region_size)
 {
        int lo, hi;
 
@@ -123,9 +123,9 @@ static void __iomem * atmel_get_base_addr(struct tpm_vendor_specific
        lo = tpm_read_index(TPM_ADDR, TPM_ATMEL_BASE_ADDR_LO);
        hi = tpm_read_index(TPM_ADDR, TPM_ATMEL_BASE_ADDR_HI);
 
-       vendor->base = (hi << 8) | lo;
-       vendor->region_size = 2;
+       *base = (hi << 8) | lo;
+       *region_size = 2;
 
-       return ioport_map(vendor->base, vendor->region_size);
+       return ioport_map(*base, *region_size);
 }
 #endif