oreoled: align with ArduPilot version

This commit is contained in:
Andrew Tridgell
2016-05-22 12:45:55 +02:00
committed by Lorenz Meier
parent 034bbdf988
commit 8bc550b619
2 changed files with 1440 additions and 31 deletions
+71 -1
View File
@@ -61,6 +61,33 @@
/** send bytes */
#define OREOLED_SEND_BYTES _OREOLEDIOC(3)
/** send reset */
#define OREOLED_SEND_RESET _OREOLEDIOC(4)
/** boot ping */
#define OREOLED_BL_PING _OREOLEDIOC(5)
/** boot version */
#define OREOLED_BL_VER _OREOLEDIOC(6)
/** boot write flash */
#define OREOLED_BL_FLASH _OREOLEDIOC(7)
/** boot application version */
#define OREOLED_BL_APP_VER _OREOLEDIOC(8)
/** boot application crc */
#define OREOLED_BL_APP_CRC _OREOLEDIOC(9)
/** boot startup colour */
#define OREOLED_BL_SET_COLOUR _OREOLEDIOC(10)
/** boot application */
#define OREOLED_BL_BOOT_APP _OREOLEDIOC(11)
/** force an i2c gencall */
#define OREOLED_FORCE_SYNC _OREOLEDIOC(12)
/* Oreo LED driver supports up to 4 leds */
#define OREOLED_NUM_LEDS 4
@@ -68,7 +95,46 @@
#define OREOLED_ALL_INSTANCES 0xff
/* maximum command length that can be sent to LEDs */
#define OREOLED_CMD_LENGTH_MAX 24
#define OREOLED_CMD_LENGTH_MAX 70
/* maximum command length that can be read from LEDs */
#define OREOLED_CMD_READ_LENGTH_MAX 10
/* maximum number of commands retries */
#define OEROLED_COMMAND_RETRIES 10
/* magic number used to verify the software reset is valid */
#define OEROLED_RESET_NONCE 0x2A
/* microseconds to hold-off between write and reads */
#define OREOLED_WRITE_READ_HOLDOFF_US 500
/* microseconds to hold-off between retries */
#define OREOLED_RETRY_HOLDOFF_US 200
#define OEROLED_BOOT_COMMAND_RETRIES 25
#define OREOLED_BOOT_FLASH_WAITMS 10
#define OREOLED_BOOT_SUPPORTED_VER 0x01
#define OREOLED_BOOT_CMD_PING 0x40
#define OREOLED_BOOT_CMD_BL_VER 0x41
#define OREOLED_BOOT_CMD_APP_VER 0x42
#define OREOLED_BOOT_CMD_APP_CRC 0x43
#define OREOLED_BOOT_CMD_SET_COLOUR 0x44
#define OREOLED_BOOT_CMD_WRITE_FLASH_A 0x50
#define OREOLED_BOOT_CMD_WRITE_FLASH_B 0x51
#define OREOLED_BOOT_CMD_FINALISE_FLASH 0x55
#define OREOLED_BOOT_CMD_BOOT_APP 0x60
#define OREOLED_BOOT_CMD_PING_NONCE 0x2A
#define OREOLED_BOOT_CMD_BOOT_NONCE 0xA2
#define OREOLED_FW_FILE_HEADER_LENGTH 2
#define OREOLED_FW_FILE_SIZE_LIMIT 6144
#define OREOLED_FW_FILE "/etc/firmware/oreoled.bin"
/* enum passed to OREOLED_SET_MODE ioctl()
* defined by hardware */
@@ -97,6 +163,8 @@ enum oreoled_param {
OREOLED_PARAM_REPEAT = 7,
OREOLED_PARAM_PHASEOFFSET = 8,
OREOLED_PARAM_MACRO = 9,
OREOLED_PARAM_RESET = 10,
OREOLED_PARAM_APP_CHECKSUM = 11,
OREOLED_PARAM_ENUM_COUNT
};
@@ -114,6 +182,8 @@ enum oreoled_macro {
OREOLED_PARAM_MACRO_BLUE = 8,
OREOLED_PARAM_MACRO_YELLOW = 9,
OREOLED_PARAM_MACRO_WHITE = 10,
OREOLED_PARAM_MACRO_AUTOMOBILE = 11,
OREOLED_PARAM_MACRO_AVIATION = 12,
OREOLED_PARAM_MACRO_ENUM_COUNT
};
File diff suppressed because it is too large Load Diff