]> git.karo-electronics.de Git - karo-tx-uboot.git/commitdiff
Merge branch 'agust@denx.de' of git://git.denx.de/u-boot-staging
authorTom Rini <trini@ti.com>
Fri, 21 Sep 2012 23:22:18 +0000 (16:22 -0700)
committerTom Rini <trini@ti.com>
Fri, 21 Sep 2012 23:22:18 +0000 (16:22 -0700)
drivers/pci/pci.c
drivers/pci/pci_auto.c
include/asm-generic/gpio.h
include/fdtdec.h
lib/fdtdec.c

index 2a6d0a7593c8a8e2ff5989edb83553f6f2cfd1ee..d864f137f540764049148234361107357363dc69 100644 (file)
@@ -118,11 +118,11 @@ PCI_WRITE_VIA_DWORD_OP(word, u16, 0x02, 0x0000ffff)
 void *pci_map_bar(pci_dev_t pdev, int bar, int flags)
 {
        pci_addr_t pci_bus_addr;
-       pci_addr_t bar_response;
+       u32 bar_response;
 
        /* read BAR address */
        pci_read_config_dword(pdev, bar, &bar_response);
-       pci_bus_addr = bar_response & ~0xf;
+       pci_bus_addr = (pci_addr_t)(bar_response & ~0xf);
 
        /*
         * Pass "0" as the length argument to pci_bus_to_virt.  The arg
@@ -389,7 +389,7 @@ int pci_hose_config_device(struct pci_controller *hose,
                           pci_addr_t mem,
                           unsigned long command)
 {
-       pci_addr_t bar_response;
+       u32 bar_response;
        unsigned int old_command;
        pci_addr_t bar_value;
        pci_size_t bar_size;
index ae61e24907a01bdb8ac8cc227f76a00b81fe985b..cd78030cd6354aa816dc08dd5da608f03b7be9ab 100644 (file)
@@ -89,7 +89,7 @@ void pciauto_setup_device(struct pci_controller *hose,
                          struct pci_region *prefetch,
                          struct pci_region *io)
 {
-       pci_addr_t bar_response;
+       u32 bar_response;
        pci_size_t bar_size;
        u16 cmdstat = 0;
        int bar, bar_nr = 0;
index c19e16cd21dc80cab6c42bfb9a2671ce908231dd..23c964940312efc36f4dffac82292a141c1050b6 100644 (file)
@@ -94,4 +94,13 @@ int gpio_get_value(unsigned gpio);
  */
 int gpio_set_value(unsigned gpio, int value);
 
+/**
+ * Request a gpio. This should be called before any of the other functions
+ * are used on this gpio.
+ *
+ * @param gp   GPIO number
+ * @param label        User label for this GPIO
+ * @return 0 if ok, -1 on error
+ */
+int gpio_request(unsigned gpio, const char *label);
 #endif /* _ASM_GENERIC_GPIO_H_ */
index 474a4b90efedd078530ca090b39afb9466d6b39f..0b140752ffb058c4fa673b10fe6a3ff6e751aab8 100644 (file)
@@ -19,6 +19,8 @@
  * MA 02111-1307 USA
  */
 
+#ifndef __fdtdec_h
+#define __fdtdec_h
 
 /*
  * This file contains convenience functions for decoding useful and
@@ -383,3 +385,4 @@ int fdtdec_get_byte_array(const void *blob, int node, const char *prop_name,
  */
 const u8 *fdtdec_locate_byte_array(const void *blob, int node,
                             const char *prop_name, int count);
+#endif
index 69c63db4beba09268fa578a6804d43b9a42aa88e..4c23f458f0f51b5ce52345333cdb44557a358859 100644 (file)
@@ -80,11 +80,16 @@ fdt_addr_t fdtdec_get_addr(const void *blob, int node,
        const fdt_addr_t *cell;
        int len;
 
-       debug("get_addr: %s\n", prop_name);
+       debug("%s: %s: ", __func__, prop_name);
        cell = fdt_getprop(blob, node, prop_name, &len);
        if (cell && (len == sizeof(fdt_addr_t) ||
-                       len == sizeof(fdt_addr_t) * 2))
-               return fdt_addr_to_cpu(*cell);
+                       len == sizeof(fdt_addr_t) * 2)) {
+               fdt_addr_t addr = fdt_addr_to_cpu(*cell);
+
+               debug("%p\n", (void *)addr);
+               return addr;
+       }
+       debug("(not found)\n");
        return FDT_ADDR_T_NONE;
 }
 
@@ -94,10 +99,15 @@ s32 fdtdec_get_int(const void *blob, int node, const char *prop_name,
        const s32 *cell;
        int len;
 
-       debug("get_size: %s\n", prop_name);
+       debug("%s: %s: ", __func__, prop_name);
        cell = fdt_getprop(blob, node, prop_name, &len);
-       if (cell && len >= sizeof(s32))
-               return fdt32_to_cpu(cell[0]);
+       if (cell && len >= sizeof(s32)) {
+               s32 val = fdt32_to_cpu(cell[0]);
+
+               debug("%#x (%d)\n", val, val);
+               return val;
+       }
+       debug("(not found)\n");
        return default_val;
 }
 
@@ -329,6 +339,7 @@ int fdtdec_lookup_phandle(const void *blob, int node, const char *prop_name)
        const u32 *phandle;
        int lookup;
 
+       debug("%s: %s\n", __func__, prop_name);
        phandle = fdt_getprop(blob, node, prop_name, NULL);
        if (!phandle)
                return -FDT_ERR_NOTFOUND;
@@ -428,7 +439,7 @@ static int fdtdec_decode_gpios(const void *blob, int node,
        assert(max_count > 0);
        prop = fdt_get_property(blob, node, prop_name, &len);
        if (!prop) {
-               debug("FDT: %s: property '%s' missing\n", __func__, prop_name);
+               debug("%s: property '%s' missing\n", __func__, prop_name);
                return -FDT_ERR_NOTFOUND;
        }
 
@@ -437,7 +448,7 @@ static int fdtdec_decode_gpios(const void *blob, int node,
        cell = (u32 *)prop->data;
        len /= sizeof(u32) * 3;         /* 3 cells per GPIO record */
        if (len > max_count) {
-               debug("FDT: %s: too many GPIOs / cells for "
+               debug(" %s: too many GPIOs / cells for "
                        "property '%s'\n", __func__, prop_name);
                return -FDT_ERR_BADLAYOUT;
        }