浏览代码

export SPI functions to standalone apps

While we're here, fix the broken #ifdef handling in _exports.h.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger 15 年之前
父节点
当前提交
bedd8403f7
共有 3 个文件被更改,包括 20 次插入5 次删除
  1. 8 0
      common/exports.c
  2. 10 4
      include/_exports.h
  3. 2 1
      include/exports.h

+ 8 - 0
common/exports.c

@@ -38,4 +38,12 @@ void jumptable_init (void)
 	gd->jt[XF_i2c_write] = (void *) i2c_write;
 	gd->jt[XF_i2c_write] = (void *) i2c_write;
 	gd->jt[XF_i2c_read] = (void *) i2c_read;
 	gd->jt[XF_i2c_read] = (void *) i2c_read;
 #endif
 #endif
+#ifdef CONFIG_CMD_SPI
+	gd->jt[XF_spi_init] = (void *) spi_init;
+	gd->jt[XF_spi_setup_slave] = (void *) spi_setup_slave;
+	gd->jt[XF_spi_free_slave] = (void *) spi_free_slave;
+	gd->jt[XF_spi_claim_bus] = (void *) spi_claim_bus;
+	gd->jt[XF_spi_release_bus] = (void *) spi_release_bus;
+	gd->jt[XF_spi_xfer] = (void *) spi_xfer;
+#endif
 }
 }

+ 10 - 4
include/_exports.h

@@ -1,3 +1,7 @@
+/*
+ * You do not need to use #ifdef around functions that may not exist
+ * in the final configuration (such as i2c).
+ */
 EXPORT_FUNC(get_version)
 EXPORT_FUNC(get_version)
 EXPORT_FUNC(getc)
 EXPORT_FUNC(getc)
 EXPORT_FUNC(tstc)
 EXPORT_FUNC(tstc)
@@ -14,13 +18,15 @@ EXPORT_FUNC(vprintf)
 EXPORT_FUNC(do_reset)
 EXPORT_FUNC(do_reset)
 EXPORT_FUNC(getenv)
 EXPORT_FUNC(getenv)
 EXPORT_FUNC(setenv)
 EXPORT_FUNC(setenv)
-#ifdef CONFIG_HAS_UID
 EXPORT_FUNC(forceenv)
 EXPORT_FUNC(forceenv)
-#endif
 EXPORT_FUNC(simple_strtoul)
 EXPORT_FUNC(simple_strtoul)
 EXPORT_FUNC(simple_strtol)
 EXPORT_FUNC(simple_strtol)
 EXPORT_FUNC(strcmp)
 EXPORT_FUNC(strcmp)
-#if defined(CONFIG_CMD_I2C)
 EXPORT_FUNC(i2c_write)
 EXPORT_FUNC(i2c_write)
 EXPORT_FUNC(i2c_read)
 EXPORT_FUNC(i2c_read)
-#endif
+EXPORT_FUNC(spi_init)
+EXPORT_FUNC(spi_setup_slave)
+EXPORT_FUNC(spi_free_slave)
+EXPORT_FUNC(spi_claim_bus)
+EXPORT_FUNC(spi_release_bus)
+EXPORT_FUNC(spi_xfer)

+ 2 - 1
include/exports.h

@@ -33,6 +33,7 @@ void forceenv (char *varname, char *varvalue);
 int i2c_write (uchar, uint, int , uchar* , int);
 int i2c_write (uchar, uint, int , uchar* , int);
 int i2c_read (uchar, uint, int , uchar* , int);
 int i2c_read (uchar, uint, int , uchar* , int);
 #endif
 #endif
+#include <spi.h>
 
 
 void app_startup(char **);
 void app_startup(char **);
 
 
@@ -46,7 +47,7 @@ enum {
 	XF_MAX
 	XF_MAX
 };
 };
 
 
-#define XF_VERSION	4
+#define XF_VERSION	5
 
 
 #if defined(CONFIG_I386)
 #if defined(CONFIG_I386)
 extern gd_t *global_data;
 extern gd_t *global_data;