| |
| /* |
| * drivers/display/lcd/aml_lcd_unifykey.h |
| * |
| * Copyright (C) 2015 Amlogic, Inc. All rights reserved. |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; either version 2 of the License, or |
| * (at your option) any later version. |
| * |
| * This program is distributed in the hope that it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
| * more details. |
| * |
| */ |
| |
| #ifndef __AML_LCD_UNIFYKEY_H__ |
| #define __AML_LCD_UNIFYKEY_H__ |
| |
| #define LCD_UKEY_RETRY_CNT_MAX 5 |
| |
| /* |
| lcd unifykey data struct: little-endian, for example: |
| 4byte: d[0]=0x01, d[1]=0x02, d[2] = 0x03, d[3]= 0x04, |
| data = 0x04030201 |
| */ |
| |
| /* define lcd unifykey length */ |
| |
| #define LCD_UKEY_HEAD_SIZE 10 |
| #define LCD_UKEY_HEAD_CRC32 4 |
| #define LCD_UKEY_HEAD_DATA_LEN 2 |
| #define LCD_UKEY_HEAD_VERSION 2 |
| #define LCD_UKEY_HEAD_RESERVED 2 |
| |
| struct aml_lcd_unifykey_header_s { |
| unsigned int crc32; |
| unsigned short data_len; |
| unsigned short version; |
| unsigned short reserved; |
| }; |
| |
| /* ******************************** |
| * lcd |
| * ********************************* */ |
| #define LCD_UKEY_LCD_SIZE 265 |
| |
| /* header (10Byte) */ |
| /* LCD_UKEY_HEAD_SIZE */ |
| /* basic (36Byte) */ |
| #define LCD_UKEY_MODEL_NAME 30 |
| #define LCD_UKEY_INTERFACE 1 |
| #define LCD_UKEY_LCD_BITS 1 |
| #define LCD_UKEY_SCREEN_WIDTH 2 |
| #define LCD_UKEY_SCREEN_HEIGHT 2 |
| /* timing (18Byte) */ |
| #define LCD_UKEY_H_ACTIVE 2 |
| #define LCD_UKEY_V_ACTIVE 2 |
| #define LCD_UKEY_H_PERIOD 2 |
| #define LCD_UKEY_V_PERIOD 2 |
| #define LCD_UKEY_HS_WIDTH 2 |
| #define LCD_UKEY_HS_BP 2 |
| #define LCD_UKEY_HS_POL 1 |
| #define LCD_UKEY_VS_WIDTH 2 |
| #define LCD_UKEY_VS_BP 2 |
| #define LCD_UKEY_VS_POL 1 |
| /* customer (31Byte) */ |
| #define LCD_UKEY_FR_ADJ_TYPE 1 |
| #define LCD_UKEY_SS_LEVEL 1 |
| #define LCD_UKEY_CLK_AUTO_GEN 1 |
| #define LCD_UKEY_PCLK 4 |
| #define LCD_UKEY_H_PERIOD_MIN 2 |
| #define LCD_UKEY_H_PERIOD_MAX 2 |
| #define LCD_UKEY_V_PERIOD_MIN 2 |
| #define LCD_UKEY_V_PERIOD_MAX 2 |
| #define LCD_UKEY_PCLK_MIN 4 |
| #define LCD_UKEY_PCLK_MAX 4 |
| #define LCD_UKEY_CUST_VAL_8 4 |
| #define LCD_UKEY_CUST_VAL_9 4 |
| /* interface (20Byte) */ |
| #define LCD_UKEY_IF_ATTR_0 2 |
| #define LCD_UKEY_IF_ATTR_1 2 |
| #define LCD_UKEY_IF_ATTR_2 2 |
| #define LCD_UKEY_IF_ATTR_3 2 |
| #define LCD_UKEY_IF_ATTR_4 2 |
| #define LCD_UKEY_IF_ATTR_5 2 |
| #define LCD_UKEY_IF_ATTR_6 2 |
| #define LCD_UKEY_IF_ATTR_7 2 |
| #define LCD_UKEY_IF_ATTR_8 2 |
| #define LCD_UKEY_IF_ATTR_9 2 |
| /* power (5Byte * n) */ |
| #define LCD_UKEY_PWR_TYPE 1 |
| #define LCD_UKEY_PWR_INDEX 1 |
| #define LCD_UKEY_PWR_VAL 1 |
| #define LCD_UKEY_PWR_DELAY 2 |
| |
| /* ******************************** |
| * lcd extern |
| * ********************************* */ |
| #define LCD_UKEY_LCD_EXT_SIZE 550 |
| |
| /* header (10Byte) */ |
| /* LCD_UKEY_HEAD_SIZE */ |
| /* basic (33Byte) */ |
| #define LCD_UKEY_EXT_NAME 30 |
| #define LCD_UKEY_EXT_INDEX 1 |
| #define LCD_UKEY_EXT_TYPE 1 |
| #define LCD_UKEY_EXT_STATUS 1 |
| /* type (10Byte) */ |
| #define LCD_UKEY_EXT_TYPE_VAL_0 1 |
| #define LCD_UKEY_EXT_TYPE_VAL_1 1 |
| #define LCD_UKEY_EXT_TYPE_VAL_2 1 |
| #define LCD_UKEY_EXT_TYPE_VAL_3 1 |
| #define LCD_UKEY_EXT_TYPE_VAL_4 1 |
| #define LCD_UKEY_EXT_TYPE_VAL_5 1 |
| #define LCD_UKEY_EXT_TYPE_VAL_6 1 |
| #define LCD_UKEY_EXT_TYPE_VAL_7 1 |
| #define LCD_UKEY_EXT_TYPE_VAL_8 1 |
| #define LCD_UKEY_EXT_TYPE_VAL_9 1 |
| /* init (cmd_size) */ |
| #define LCD_UKEY_EXT_INIT_TYPE 1 |
| /*#define LCD_UKEY_EXT_INIT_VAL 1 //not defined */ |
| #define LCD_UKEY_EXT_INIT_DELAY 1 |
| |
| /* ******************************** |
| * backlight |
| * ********************************* */ |
| /* V1: 92 */ |
| /* V2: 102 */ |
| #define LCD_UKEY_BL_SIZE 102 |
| |
| /* header (10Byte) */ |
| /* LCD_UKEY_HEAD_SIZE */ |
| /* basic (30Byte) */ |
| #define LCD_UKEY_BL_NAME 30 |
| /* level (12Byte) */ |
| #define LCD_UKEY_BL_LEVEL_UBOOT 2 |
| #define LCD_UKEY_BL_LEVEL_KERNEL 2 |
| #define LCD_UKEY_BL_LEVEL_MAX 2 |
| #define LCD_UKEY_BL_LEVEL_MIN 2 |
| #define LCD_UKEY_BL_LEVEL_MID 2 |
| #define LCD_UKEY_BL_LEVEL_MID_MAP 2 |
| /* method (8Byte) */ |
| #define LCD_UKEY_BL_METHOD 1 |
| #define LCD_UKEY_BL_EN_GPIO 1 |
| #define LCD_UKEY_BL_EN_GPIO_ON 1 |
| #define LCD_UKEY_BL_EN_GPIO_OFF 1 |
| #define LCD_UKEY_BL_ON_DELAY 2 |
| #define LCD_UKEY_BL_OFF_DELAY 2 |
| /* pwm (32Byte) */ |
| #define LCD_UKEY_BL_PWM_ON_DELAY 2 |
| #define LCD_UKEY_BL_PWM_OFF_DELAY 2 |
| #define LCD_UKEY_BL_PWM_METHOD 1 |
| #define LCD_UKEY_BL_PWM_PORT 1 |
| #define LCD_UKEY_BL_PWM_FREQ 4 |
| #define LCD_UKEY_BL_PWM_DUTY_MAX 1 |
| #define LCD_UKEY_BL_PWM_DUTY_MIN 1 |
| #define LCD_UKEY_BL_PWM_GPIO 1 |
| #define LCD_UKEY_BL_PWM_GPIO_OFF 1 |
| #define LCD_UKEY_BL_PWM2_METHOD 1 |
| #define LCD_UKEY_BL_PWM2_PORT 1 |
| #define LCD_UKEY_BL_PWM2_FREQ 4 |
| #define LCD_UKEY_BL_PWM2_DUTY_MAX 1 |
| #define LCD_UKEY_BL_PWM2_DUTY_MIN 1 |
| #define LCD_UKEY_BL_PWM2_GPIO 1 |
| #define LCD_UKEY_BL_PWM2_GPIO_OFF 1 |
| #define LCD_UKEY_BL_PWM_LEVEL_MAX 2 |
| #define LCD_UKEY_BL_PWM_LEVEL_MIN 2 |
| #define LCD_UKEY_BL_PWM2_LEVEL_MAX 2 |
| #define LCD_UKEY_BL_PWM2_LEVEL_MIN 2 |
| /* customer(10Byte) */ /* V2 */ |
| #define LCD_UKEY_BL_CUST_VAL_0 2 |
| #define LCD_UKEY_BL_CUST_VAL_1 2 |
| #define LCD_UKEY_BL_CUST_VAL_2 2 |
| #define LCD_UKEY_BL_CUST_VAL_3 2 |
| #define LCD_UKEY_BL_CUST_VAL_4 2 |
| |
| |
| /* ******************************** |
| * API |
| * ********************************* */ |
| extern int aml_lcd_unifykey_len_check(int key_len, int len); |
| extern int aml_lcd_unifykey_check(const char *key_name); |
| extern int aml_lcd_unifykey_header_check(unsigned char *buf, struct aml_lcd_unifykey_header_s *header); |
| extern int aml_lcd_unifykey_get(const char *key_name, unsigned char *buf, int *len); |
| |
| extern void aml_lcd_unifykey_test(void); |
| extern void aml_lcd_unifykey_dump(void); |
| |
| #endif |