ucmb: Add msg-delay ioctls; Move device registration out of the driver; Add open...
[openwrt/svn-archive/archive.git] / utils / ucmb / driver / ucmb.h
index 8455dd0..d64f2e4 100644 (file)
 
 /** UCMB_IOCTL_RESETUC - Reset the microcontroller. */
 #define UCMB_IOCTL_RESETUC     _IO(__UCMB_IOCTL, 0)
 
 /** UCMB_IOCTL_RESETUC - Reset the microcontroller. */
 #define UCMB_IOCTL_RESETUC     _IO(__UCMB_IOCTL, 0)
+/** UCMB_IOCTL_GMSGDELAY - Get the delay to wait before fetching the status. */
+#define UCMB_IOCTL_GMSGDELAY   _IOR(__UCMB_IOCTL, 1, unsigned int)
+/** UCMB_IOCTL_SMSGDELAY - Set the delay to wait before fetching the status. */
+#define UCMB_IOCTL_SMSGDELAY   _IOW(__UCMB_IOCTL, 2, unsigned int)
 
 
 #ifdef __KERNEL__
 
 
 
 #ifdef __KERNEL__
 
+#include <linux/device.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/spi_gpio.h>
+
 /**
  * struct ucmb_platform_data - UCMB device descriptor
  *
 /**
  * struct ucmb_platform_data - UCMB device descriptor
  *
@@ -33,9 +41,6 @@
  *
  * @mode:              The SPI bus mode. SPI_MODE_*
  * @max_speed_hz:      The bus speed, in Hz. If zero the speed is not limited.
  *
  * @mode:              The SPI bus mode. SPI_MODE_*
  * @max_speed_hz:      The bus speed, in Hz. If zero the speed is not limited.
- * @msg_delay_ms:      The message delay time, in milliseconds.
- *                     This is the time the microcontroller takes to process
- *                     one message.
  */
 struct ucmb_platform_data {
        const char *name;
  */
 struct ucmb_platform_data {
        const char *name;
@@ -50,13 +55,15 @@ struct ucmb_platform_data {
 
        u8 mode;
        u32 max_speed_hz;
 
        u8 mode;
        u32 max_speed_hz;
-       unsigned int msg_delay_ms;
 
        struct platform_device *pdev; /* internal */
 };
 
 #define UCMB_NO_RESET          ((unsigned int)-1)
 
 
        struct platform_device *pdev; /* internal */
 };
 
 #define UCMB_NO_RESET          ((unsigned int)-1)
 
+int ucmb_device_register(struct ucmb_platform_data *pdata);
+void ucmb_device_unregister(struct ucmb_platform_data *pdata);
+
 
 #endif /* __KERNEL__ */
 #endif /* LINUX_UCMB_H_ */
 
 #endif /* __KERNEL__ */
 #endif /* LINUX_UCMB_H_ */