]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - common/exports.c
dm: spi: Add a uclass for SPI
[karo-tx-uboot.git] / common / exports.c
index ef253381697bad29490770936869e62e082fb237..88fcfc8cb6fc652e8fb5242869ebdb4c0813f5dd 100644 (file)
@@ -1,9 +1,10 @@
 #include <common.h>
 #include <exports.h>
+#include <spi.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
-static void dummy(void)
+__attribute__((unused)) static void dummy(void)
 {
 }
 
@@ -12,25 +13,33 @@ unsigned long get_version(void)
        return XF_VERSION;
 }
 
-void jumptable_init (void)
-{
-       int i;
+/* Reuse _exports.h with a little trickery to avoid bitrot */
+#define EXPORT_FUNC(sym) gd->jt[XF_##sym] = (void *)sym;
 
-       gd->jt = (void **) malloc (XF_MAX * sizeof (void *));
-       for (i = 0; i < XF_MAX; i++)
-               gd->jt[i] = (void *) dummy;
+#if !defined(CONFIG_X86) && !defined(CONFIG_PPC)
+# define install_hdlr      dummy
+# define free_hdlr         dummy
+#else /* kludge for non-standard function naming */
+# define install_hdlr      irq_install_handler
+# define free_hdlr         irq_free_handler
+#endif
+#ifndef CONFIG_CMD_I2C
+# define i2c_write         dummy
+# define i2c_read          dummy
+#endif
+#if !defined(CONFIG_CMD_SPI) || defined(CONFIG_DM_SPI)
+# define spi_init          dummy
+# define spi_setup_slave   dummy
+# define spi_free_slave    dummy
+#endif
+#ifndef CONFIG_CMD_SPI
+# define spi_claim_bus     dummy
+# define spi_release_bus   dummy
+# define spi_xfer          dummy
+#endif
 
-       gd->jt[XF_get_version] = (void *) get_version;
-       gd->jt[XF_malloc] = (void *) malloc;
-       gd->jt[XF_free] = (void *) free;
-       gd->jt[XF_get_timer] = (void *)get_timer;
-       gd->jt[XF_udelay] = (void *)udelay;
-#if defined(CONFIG_I386) || defined(CONFIG_PPC)
-       gd->jt[XF_install_hdlr] = (void *) irq_install_handler;
-       gd->jt[XF_free_hdlr] = (void *) irq_free_handler;
-#endif /* I386 || PPC */
-#if (CONFIG_COMMANDS & CFG_CMD_I2C)
-       gd->jt[XF_i2c_write] = (void *) i2c_write;
-       gd->jt[XF_i2c_read] = (void *) i2c_read;
-#endif /* CFG_CMD_I2C */
+void jumptable_init(void)
+{
+       gd->jt = malloc(XF_MAX * sizeof(void *));
+#include <_exports.h>
 }