/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */ /* * Copyright (c) 2019 Amlogic, Inc. All rights reserved. */ #ifndef _AW21036B_SEI_H_ #define _AW21036B_SEI_H_ #include #define MAX_I2C_BUFFER_SIZE 65536 #define AW21036_ID 0x18 struct meson_aw21036_io { unsigned int r_io; unsigned int g_io; unsigned int b_io; }; struct meson_aw21036_colors { unsigned char red; unsigned char green; unsigned char blue; }; struct meson_aw21036 { //struct device *dev; struct i2c_client *i2c; struct device *dev; struct led_classdev cdev; struct work_struct brightness_work; struct work_struct leds_work; struct workqueue_struct *leds_wq; struct gpio_desc *reset_gpiod; unsigned char chipid; int imax; int platform; struct meson_aw21036_io *io; struct meson_aw21036_colors *colors; int led_counts; int g_time_value; }; //global variables declaration struct meson_aw21036 *aw21036; // function declaration static void meson_aw21036_set_colors(unsigned int *colors, unsigned int counts); static int aw21036_i2c_write(struct meson_aw21036 *aw21036, unsigned char reg_addr, unsigned char reg_data); static int aw21036_hw_reset(struct meson_aw21036 *aw21036); static int *all_data[16] = {0}; static int length_data[16] = {0}; static unsigned int state_mode=0; /*2:S905X2 SEI520, 3:S905X3 SEI600TID; 4:S905X3 SEI610/SEI610F, 6:SEI610FPT*/ static unsigned int platform_id = 0; static unsigned int hwen_id = 3; static unsigned int __maybe_unused isel_id = 3; static int driver_init_flag = 0; // driver init flag, 0: not init, 1: init static unsigned int ledr_value = 0, ledg_value = 0, ledb_value = 0; static u8 led_value[4] = {0}; static int time_val = 0, cycles_val = 0, instruct_val = 0; static u8 tmp_w[128][37] = {0}; //length_data static unsigned int tmp_color[13] = {}; /* Iout = K * Vrext/Rext * GCC/255 * WB/255 * COLn/255 * BRn/255 GCC : 8bit, default 0; user set 0 to colse all leds, default set 0xff when init WB : 8bit, default 0xff; BRn : user set for brightness COLn: default set 0xff; */ static u8 tmp_col[37] = {\ 0xff,0xff,0xff, 0xff,0xff,0xff, 0xff,0xff,0xff, 0xff,0xff,0xff,\ 0xff,0xff,0xff, 0xff,0xff,0xff, 0xff,0xff,0xff, 0xff,0xff,0xff,\ 0xff,0xff,0xff, 0xff,0xff,0xff, 0xff,0xff,0xff, 0xff,0xff,0xff,\ }; static u8 __maybe_unused tmp_ledon[10] = { 0x68, 0xdd, 0xf5, 0x68, 0xdd, 0xf5, 0x68, 0xdd, 0xf5, }; static u8 __maybe_unused tmp_ledoff[10] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; //#define NO_DIRECTION_CORRECT //default mode:OFF all leds static int data_mode0[] = {\ 0x64,0x01,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, }; //Mode One:White light flashes 5 times,interval:100 milliseconds;loop 1 time. //time_val: 0x64,cycles_val: 0x01, //Fully on value is 192. When flashing, value 128. Off - On - Off - On - Off. #if 0 //SEI610F/SEI520 static int data_mode1[] = {\ 0x64,0x01,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xC0,0xC0,0xC0, 0xC0,0xC0,0xC0, 0xC0,0xC0,0xC0, 0xC0,0xC0,0xC0, 0xC0,0xC0,0xC0, 0xC0,0xC0,0xC0, 0xC0,0xC0,0xC0, 0xC0,0xC0,0xC0, 0xC0,0xC0,0xC0, 0xC0,0xC0,0xC0, 0xC0,0xC0,0xC0, 0xC0,0xC0,0xC0, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x80,0x80,0x80, 0x80,0x80,0x80, 0x80,0x80,0x80, 0x80,0x80,0x80, 0x80,0x80,0x80, 0x80,0x80,0x80, 0x80,0x80,0x80, 0x80,0x80,0x80, 0x80,0x80,0x80, 0x80,0x80,0x80, 0x80,0x80,0x80, 0x80,0x80,0x80, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, } #else //SEI610F/SEI520 static int data_mode1[] = {\ 0xC8,0x00,\ 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, }; #endif //Mode TWO:White running lights; Time interval: 100ms; Infinite loop //time_val: 0x64,cycles_val: 0x00, //Very bright - Slightly bright - Slightly bright - Slightly bright - Very bright #ifdef NO_DIRECTION_CORRECT static int data_mode2[] = { 0xC8,0x00,\ 0xC0,0xC0,0xC0, 0x10,0x10,0x10, 0x10,0x10,0x10, 0x10,0x10,0x10, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x10,0x10, 0xC0,0xC0,0xC0, 0x10,0x10,0x10, 0x10,0x10,0x10, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x10,0x10, 0x10,0x10,0x10, 0xC0,0xC0,0xC0, 0x10,0x10,0x10, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x10,0x10, 0x10,0x10,0x10, 0x10,0x10,0x10, 0xC0,0xC0,0xC0, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, }; #else static int data_mode2[] = { 0x4B,0x00,\ 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0xd0,0xd0,0xd0, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0xd0,0xd0,0xd0, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0xd0,0xd0,0xd0, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x04,0x07, 0x10,0x04,0x07, 0xd0,0xd0,0xd0, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x04,0x07, 0x10,0x04,0x07, 0xd0,0xd0,0xd0, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x04,0x07, 0x10,0x04,0x07, 0xd0,0xd0,0xd0, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x04,0x07, 0xd0,0xd0,0xd0, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x04,0x07, 0xd0,0xd0,0xd0, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x10,0x04,0x07, 0xd0,0xd0,0xd0, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xd0,0xd0,0xd0, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xd0,0xd0,0xd0, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xd0,0xd0,0xd0, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, }; #endif //time_val: 0x64,cycles_val: 0x00, #if 1 static int data_mode3[] = { 0x4B,0x00,\ 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x20,0x08,0x0e, 0x20,0x08,0x0e, 0x20,0x08,0x0e, 0x20,0x08,0x0e, 0x20,0x08,0x0e, 0x00,0x00,0x00, 0x20,0x08,0x0e, 0x20,0x08,0x0e, 0x20,0x08,0x0e, 0x20,0x08,0x0e, 0x20,0x08,0x0e, 0x00,0x00,0x00, 0x30,0x0c,0x15, 0x30,0x0c,0x15, 0x30,0x0c,0x15, 0x30,0x0c,0x15, 0x30,0x0c,0x15, 0x00,0x00,0x00, 0x30,0x0c,0x15, 0x30,0x0c,0x15, 0x30,0x0c,0x15, 0x30,0x0c,0x15, 0x30,0x0c,0x15, 0x00,0x00,0x00, 0x60,0x18,0x2a, 0x60,0x18,0x2a, 0x60,0x18,0x2a, 0x60,0x18,0x2a, 0x60,0x18,0x2a, 0x00,0x00,0x00, 0x60,0x18,0x2a, 0x60,0x18,0x2a, 0x60,0x18,0x2a, 0x60,0x18,0x2a, 0x60,0x18,0x2a, 0x00,0x00,0x00, 0x90,0x24,0x3f, 0x90,0x24,0x3f, 0x90,0x24,0x3f, 0x90,0x24,0x3f, 0x90,0x24,0x3f, 0x00,0x00,0x00, 0x90,0x24,0x3f, 0x90,0x24,0x3f, 0x90,0x24,0x3f, 0x90,0x24,0x3f, 0x90,0x24,0x3f, 0x00,0x00,0x00, 0xb0,0x2c,0x4b, 0xb0,0x2c,0x4b, 0xb0,0x2c,0x4b, 0xb0,0x2c,0x4b, 0xb0,0x2c,0x4b, 0x00,0x00,0x00, 0xb0,0x2c,0x4b, 0xb0,0x2c,0x4b, 0xb0,0x2c,0x4b, 0xb0,0x2c,0x4b, 0xb0,0x2c,0x4b, 0x00,0x00,0x00, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0x00,0x00,0x00, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0x00,0x00,0x00, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0x00,0x00,0x00, 0xb0,0x2c,0x4b, 0xb0,0x2c,0x4b, 0xb0,0x2c,0x4b, 0xb0,0x2c,0x4b, 0xb0,0x2c,0x4b, 0x00,0x00,0x00, 0xb0,0x2c,0x4b, 0xb0,0x2c,0x4b, 0xb0,0x2c,0x4b, 0xb0,0x2c,0x4b, 0xb0,0x2c,0x4b, 0x00,0x00,0x00, 0x90,0x24,0x3f, 0x90,0x24,0x3f, 0x90,0x24,0x3f, 0x90,0x24,0x3f, 0x90,0x24,0x3f, 0x00,0x00,0x00, 0x90,0x24,0x3f, 0x90,0x24,0x3f, 0x90,0x24,0x3f, 0x90,0x24,0x3f, 0x90,0x24,0x3f, 0x00,0x00,0x00, 0x60,0x18,0x2a, 0x60,0x18,0x2a, 0x60,0x18,0x2a, 0x60,0x18,0x2a, 0x60,0x18,0x2a, 0x00,0x00,0x00, 0x60,0x18,0x2a, 0x60,0x18,0x2a, 0x60,0x18,0x2a, 0x60,0x18,0x2a, 0x60,0x18,0x2a, 0x00,0x00,0x00, 0x30,0x0c,0x15, 0x30,0x0c,0x15, 0x30,0x0c,0x15, 0x30,0x0c,0x15, 0x30,0x0c,0x15, 0x00,0x00,0x00, 0x30,0x0c,0x15, 0x30,0x0c,0x15, 0x30,0x0c,0x15, 0x30,0x0c,0x15, 0x30,0x0c,0x15, 0x00,0x00,0x00, 0x20,0x08,0x0e, 0x20,0x08,0x0e, 0x20,0x08,0x0e, 0x20,0x08,0x0e, 0x20,0x08,0x0e, 0x00,0x00,0x00, 0x20,0x08,0x0e, 0x20,0x08,0x0e, 0x20,0x08,0x0e, 0x20,0x08,0x0e, 0x20,0x08,0x0e, 0x00,0x00,0x00, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x10,0x04,0x07, 0x00,0x00,0x00, }; #else static int data_mode3[] = { 0x32,0x00,\ 0x03,0x03,0x03, 0x03,0x03,0x03, 0x03,0x03,0x03, 0x03,0x03,0x03, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x03,0x03,0x03, 0x03,0x03,0x03, 0x03,0x03,0x03, 0x03,0x03,0x03, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x05,0x05,0x05, 0x05,0x05,0x05, 0x05,0x05,0x05, 0x05,0x05,0x05, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x05,0x05,0x05, 0x05,0x05,0x05, 0x05,0x05,0x05, 0x05,0x05,0x05, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x07,0x07,0x07, 0x07,0x07,0x07, 0x07,0x07,0x07, 0x07,0x07,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x07,0x07,0x07, 0x07,0x07,0x07, 0x07,0x07,0x07, 0x07,0x07,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x09,0x09,0x09, 0x09,0x09,0x09, 0x09,0x09,0x09, 0x09,0x09,0x09, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x09,0x09,0x09, 0x09,0x09,0x09, 0x09,0x09,0x09, 0x09,0x09,0x09, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x0B,0x0B,0x0B, 0x0B,0x0B,0x0B, 0x0B,0x0B,0x0B, 0x0B,0x0B,0x0B, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x0B,0x0B,0x0B, 0x0B,0x0B,0x0B, 0x0B,0x0B,0x0B, 0x0B,0x0B,0x0B, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x0F,0x0F,0x0F, 0x0F,0x0F,0x0F, 0x0F,0x0F,0x0F, 0x0F,0x0F,0x0F, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x0F,0x0F,0x0F, 0x0F,0x0F,0x0F, 0x0F,0x0F,0x0F, 0x0F,0x0F,0x0F, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x15,0x15,0x15, 0x15,0x15,0x15, 0x15,0x15,0x15, 0x15,0x15,0x15, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x15,0x15,0x15, 0x15,0x15,0x15, 0x15,0x15,0x15, 0x15,0x15,0x15, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x21,0x21,0x21, 0x21,0x21,0x21, 0x21,0x21,0x21, 0x21,0x21,0x21, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x21,0x21,0x21, 0x21,0x21,0x21, 0x21,0x21,0x21, 0x21,0x21,0x21, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x27,0x27,0x27, 0x27,0x27,0x27, 0x27,0x27,0x27, 0x27,0x27,0x27, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x27,0x27,0x27, 0x27,0x27,0x27, 0x27,0x27,0x27, 0x27,0x27,0x27, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x21,0x21,0x21, 0x21,0x21,0x21, 0x21,0x21,0x21, 0x21,0x21,0x21, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x21,0x21,0x21, 0x21,0x21,0x21, 0x21,0x21,0x21, 0x21,0x21,0x21, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x15,0x15,0x15, 0x15,0x15,0x15, 0x15,0x15,0x15, 0x15,0x15,0x15, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x15,0x15,0x15, 0x15,0x15,0x15, 0x15,0x15,0x15, 0x15,0x15,0x15, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x0F,0x0F,0x0F, 0x0F,0x0F,0x0F, 0x0F,0x0F,0x0F, 0x0F,0x0F,0x0F, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x0F,0x0F,0x0F, 0x0F,0x0F,0x0F, 0x0F,0x0F,0x0F, 0x0F,0x0F,0x0F, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x0B,0x0B,0x0B, 0x0B,0x0B,0x0B, 0x0B,0x0B,0x0B, 0x0B,0x0B,0x0B, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x0B,0x0B,0x0B, 0x0B,0x0B,0x0B, 0x0B,0x0B,0x0B, 0x0B,0x0B,0x0B, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x09,0x09,0x09, 0x09,0x09,0x09, 0x09,0x09,0x09, 0x09,0x09,0x09, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x09,0x09,0x09, 0x09,0x09,0x09, 0x09,0x09,0x09, 0x09,0x09,0x09, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x07,0x07,0x07, 0x07,0x07,0x07, 0x07,0x07,0x07, 0x07,0x07,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x07,0x07,0x07, 0x07,0x07,0x07, 0x07,0x07,0x07, 0x07,0x07,0x07, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x05,0x05,0x05, 0x05,0x05,0x05, 0x05,0x05,0x05, 0x05,0x05,0x05, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x05,0x05,0x05, 0x05,0x05,0x05, 0x05,0x05,0x05, 0x05,0x05,0x05, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x03,0x03,0x03, 0x03,0x03,0x03, 0x03,0x03,0x03, 0x03,0x03,0x03, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x03,0x03,0x03, 0x03,0x03,0x03, 0x03,0x03,0x03, 0x03,0x03,0x03, 0x00,0x00,0x00, 0x00,0x00,0x00, }; #endif //time_val: 0x64,cycles_val: 0x00, static int data_mode4[] = { 0x64,0x01,\ 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0xd0,0xd0,0xd0, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ }; //time_val: 0x64,cycles_val: 0x00, static int data_mode5[] = { 0x64,0x01,\ 0xd0,0x45,0x00, 0xd0,0x45,0x00, 0xd0,0x45,0x00, 0xd0,0x45,0x00, 0xd0,0x45,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ }; //time_val: 0x64,cycles_val: 0x01, #ifdef NO_DIRECTION_CORRECT static int data_mode6[] = { 0xC8,0x01,\ 0x00,0x00,0x80, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x80, 0x80,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x80, 0x80,0x00,0xFF, 0x8C,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x80, 0x80,0x00,0xFF, 0x8C,0x00,0x00, 0x80,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x80, 0x80,0x00,0xFF, 0x8C,0x00,0x00, 0x80,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x80, 0x80,0x00,0xFF, 0x8C,0x00,0x00, 0x80,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ }; #else static int data_mode6[] = { 0xE8,0x01,\ 0x00,0x00,0xd0, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0xd0, 0xd0,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0xd0, 0xd0,0x00,0x00, 0xd0,0x45,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0xd0, 0xd0,0x00,0x00, 0xd0,0x45,0x00, 0x00,0xd0,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0xd0, 0xd0,0x00,0x00, 0xd0,0x45,0x00, 0x00,0xd0,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0xd0, 0xd0,0x00,0x00, 0xd0,0x45,0x00, 0x00,0xd0,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0xd0, 0xd0,0x00,0x00, 0xd0,0x45,0x00, 0x00,0xd0,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ }; #endif //time_val: 0x64,cycles_val: 0x00, static int data_mode7[] = { 0x64,0x01,\ 0x00,0x00,0x00, 0x80,0x00,0x00, 0x80,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00,\ }; //time_val: 0x64,cycles_val: 0x00, static int data_mode8[] = { 0x64,0x01,\ 0xF5,0x00,0x00, 0xF5,0x00,0x00, 0xF5,0x00,0x00, 0xF5,0x00,0x00, 0xF5,0x00,0x00, 0xF5,0x00,0x00,\ 0xF5,0x00,0x00, 0xF5,0x00,0x00, 0xF5,0x00,0x00, 0xF5,0x00,0x00, 0xF5,0x00,0x00, 0xF5,0x00,0x00,\ }; //time_val: 0x64,cycles_val: 0x00, static int data_mode9[] = { 0x64,0x01,\ 0x00,0xF5,0x00, 0x00,0xF5,0x00, 0x00,0xF5,0x00, 0x00,0xF5,0x00, 0x00,0xF5,0x00, 0x00,0xF5,0x00,\ 0x00,0xF5,0x00, 0x00,0xF5,0x00, 0x00,0xF5,0x00, 0x00,0xF5,0x00, 0x00,0xF5,0x00, 0x00,0xF5,0x00,\ }; //time_val: 0x64,cycles_val: 0x00, static int data_mode10[] = { 0x64,0x01,\ 0x00,0x00,0xF5, 0x00,0x00,0xF5, 0x00,0x00,0xF5, 0x00,0x00,0xF5, 0x00,0x00,0xF5, 0x00,0x00,0xF5,\ 0x00,0x00,0xF5, 0x00,0x00,0xF5, 0x00,0x00,0xF5, 0x00,0x00,0xF5, 0x00,0x00,0xF5, 0x00,0x00,0xF5,\ }; //time_val: 0x64,cycles_val: 0x00, static int data_mode11[] = { 0x64,0x01,\ 0xF5,0xF5,0xF5, 0xF5,0xF5,0xF5, 0xF5,0xF5,0xF5, 0xF5,0xF5,0xF5, 0xF5,0xF5,0xF5, 0xF5,0xF5,0xF5,\ 0xF5,0xF5,0xF5, 0xF5,0xF5,0xF5, 0xF5,0xF5,0xF5, 0xF5,0xF5,0xF5, 0xF5,0xF5,0xF5, 0xF5,0xF5,0xF5,\ }; //time_val: 0x64,cycles_val: 0x00, static int data_mode12[] = { 0x64,0x01,\ 0x00,0x30,0x20, 0x00,0x30,0x20, 0x00,0x30,0x20, 0x00,0x30,0x20, 0x00,0x30,0x20, 0x00,0x30,0x20,\ 0x00,0x30,0x20, 0x00,0x30,0x20, 0x00,0x30,0x20, 0x00,0x30,0x20, 0x00,0x30,0x20, 0x00,0x30,0x20,\ }; #endif