| /******************************************************************************* |
| * Copyright (C) 2016, ZIXC Corporation. |
| * |
| * File Name: drvs_led.h |
| * File Mark: |
| * Description: |
| * Others: |
| * Version: V1.0 |
| * Author: yuxiang |
| * Date: 2014-07-07 |
| * History 1: |
| * Date: |
| * Version: |
| * Author: |
| * Modification: |
| * History 2: |
| ********************************************************************************/ |
| |
| #ifndef _DRVS_LED_H |
| #define _DRVS_LED_H |
| #include "board.h" |
| |
| /**************************************************************************** |
| * Include files |
| ****************************************************************************/ |
| |
| /**************************************************************************** |
| * Macros |
| ****************************************************************************/ |
| |
| #include <linux/types.h> |
| |
| |
| /*00h*/ |
| |
| /*03h*/ |
| |
| /**************************************************************************** |
| * Types |
| ****************************************************************************/ |
| |
| typedef enum |
| { |
| /* 0 ~ -29: commom */ |
| DRV_SUCCESS = 0, /* successed */ |
| DRV_ERROR = -1, /* failed */ |
| DRV_ERR_INVALID_IOCTL_CMD = -2, /* no this control command branch */ |
| DRV_ERR_NOT_SUPPORTED = -3, /* this function hasn't been supported */ |
| DRV_ERR_INVALID_PARAM = -4, /* the input parameter is invalid */ |
| DRV_ERR_MEM_ALLOC = -5, /* failed to malloc memory */ |
| DRV_ERR_HISR_CREATE_FAIL = -6, /* failed to create hisr */ |
| DRV_ERR_TIMEOUT = -7, /* timeout for a block waitting operation */ |
| DRV_ERR_BUSY = -8, /* busy now to do the request operation */ |
| DRV_ERR_NOT_OPENED = -9, /* the device to operate hasn't been opened yet */ |
| DRV_ERR_OPEN_TIMES = -10, /* try to open a device which has been opened already */ |
| DRV_ERR_NOT_STARTED = -11, /* the device to operate hasn't been started yet */ |
| DRV_ERR_START_TIMES = -12, /* try to open a device which has been opened already */ |
| /* reserved */ |
| |
| }T_DRVS_RETURN_TYPE; |
| |
| /**************************************************************************** |
| * Constants |
| ****************************************************************************/ |
| |
| /**************************************************************************** |
| * Global Variables |
| ****************************************************************************/ |
| |
| /**************************************************************************** |
| * Function Prototypes |
| ****************************************************************************/ |
| |
| typedef signed char SINT8; |
| typedef unsigned char UINT8; |
| |
| typedef signed short SINT16; |
| typedef unsigned short UINT16; |
| |
| typedef signed int SINT32; |
| typedef unsigned int UINT32; |
| |
| #if defined(CONFIG_ZX297520V3E_MIFI_MINI_XR819)||defined(CONFIG_ZX297520V3E_MIFI_MINI) |
| #define LED_WIFI_BLUE_GPIO GPIO39 //real wifi green led |
| #define LED_SMS_BLUE_GPIO GPIO40 //real sms green led |
| #define LED_BAT_RED_GPIO GPIO41 |
| #define LED_BAT_GREEN_GPIO GPIO42 |
| #define LED_MODEM_RED_GPIO GPIO124 |
| #define LED_MODEM_BLUE_GPIO GPIO125 //real modem green |
| #define LED_WIFI_BLUE_GPIO_FUN GPIO39_GPIO39 |
| #define LED_SMS_BLUE_GPIO_FUN GPIO40_GPIO40 |
| #define LED_BAT_RED_GPIO_FUN GPIO41_GPIO41 |
| #define LED_BAT_GREEN_GPIO_FUN GPIO42_GPIO42 |
| #define LED_MODEM_RED_GPIO_FUN GPIO124_GPIO124 |
| #define LED_MODEM_BLUE_GPIO_FUN GPIO125_GPIO125 |
| |
| #elif defined(CONFIG_ZX297520V3E_CPE_SWITCH) |
| #define LED_LTE_RED GPIO45 |
| #define LED_LTE_BLUE GPIO46 |
| #define LED_WIFI GPIO86 |
| #define LED_WPS GPIO72 |
| #define LED_RJ11 GPIO22 |
| #define LED_4G_1 GPIO29 |
| #define LED_4G_2 GPIO30 |
| #define LED_4G_3 GPIO73 |
| #define LED_4G_4 GPIO74 |
| #define LED_4G_5 GPIO75 |
| |
| #define LED_POWER_FUNC_SEL GPIO21_GPIO21 |
| #define LED_LTE_RED_FUNC_SEL GPIO45_GPIO45 |
| #define LED_LTE_BLUE_FUNC_SEL GPIO46_GPIO46 |
| #define LED_WIFI_FUNC_SEL GPIO86_GPIO86 |
| #define LED_WPS_FUNC_SEL GPIO72_GPIO72 |
| #define LED_RJ11_FUNC_SEL GPIO22_GPIO22 |
| #define LED_4G_1_FUNC_SEL GPIO29_GPIO29 |
| #define LED_4G_2_FUNC_SEL GPIO30_GPIO30 |
| #define LED_4G_3_FUNC_SEL GPIO73_GPIO73 |
| #define LED_4G_4_FUNC_SEL GPIO74_GPIO74 |
| #define LED_4G_5_FUNC_SEL GPIO75_GPIO75 |
| |
| #else |
| #define LED_WIFI_BLUE_GPIO GPIO39 //wifi blue led |
| #define LED_SMS_BLUE_GPIO GPIO40 //sms blue led |
| #define LED_BAT_RED_GPIO GPIO42 //bat red led |
| #define LED_BAT_GREEN_GPIO GPIO41 //bat_green led |
| #define LED_MODEM_RED_GPIO GPIO124 |
| #define LED_MODEM_BLUE_GPIO GPIO123 |
| #define LED_WIFI_BLUE_GPIO_FUN GPIO39_GPIO39//wifi blue led |
| #define LED_SMS_BLUE_GPIO_FUN GPIO40_GPIO40//sms blue led |
| #define LED_BAT_RED_GPIO_FUN GPIO42_GPIO42//bat red led change to green |
| #define LED_BAT_GREEN_GPIO_FUN GPIO41_GPIO41//bat_green led |
| #define LED_MODEM_RED_GPIO_FUN GPIO124_GPIO124 |
| #define LED_MODEM_BLUE_GPIO_FUN GPIO123_GPIO123 |
| #endif |
| |
| #define LED_BITFVAL(var, lsh) ( (var) << (lsh) ) |
| #define LED_BITFMASK(wid, lsh) ( ((1U << (wid)) - 1) << (lsh) ) |
| #define LED_BITFEXT(var, wid, lsh) ((var & LED_BITFMASK(wid, lsh)) >> (lsh)) |
| |
| /* adc & sink and sink current select */ |
| #if 0/* adc & sink and sink current select */ |
| #define ZX234290_REG_ADDR_SYS_CTRL 0x07 |
| #define ZX234290_REG_ADDR_SINK2_CUR_SEL 0x08 |
| #define ZX234290_REG_ADDR_SINK1_CUR_SEL 0x09 |
| #endif |
| typedef enum led_channel { |
| LED_WIFI_BLUE =0x0, //wifi green led |
| LED_SMS_BLUE, //sms green led |
| LED_BAT_RED, //bat red led |
| LED_BAT_GREEN, //bat_green led |
| LED_MODEM_BLUE, //modem green led |
| LED_MODEM_GREEN, //no |
| LED_MODEM_RED, //modem red |
| LED_CHANNEL_MAX, |
| }led_channel; |
| |
| typedef enum led_current { |
| LED_CURRENT_0 =0x0, |
| LED_CURRENT_5, |
| LED_CURRENT_10, |
| LED_CURRENT_15, |
| LED_CURRENT_20, |
| LED_CURRENT_25, |
| LED_CURRENT_30, |
| LED_CURRENT_35, |
| LED_CURRENT_40, |
| |
| SM5201_CURRENT_MAX, |
| }led_current; |
| |
| typedef enum led_status { |
| LED_STATUS_OFF = 0x0, |
| LED_STATUS_ON = 0x1, |
| |
| LED_STATUS_MAX, |
| }led_status; |
| |
| |
| /**************************************************************************** |
| * Constants |
| ****************************************************************************/ |
| |
| /**************************************************************************** |
| * Global Variables |
| ****************************************************************************/ |
| |
| /**************************************************************************** |
| * Function Prototypes |
| ****************************************************************************/ |
| |
| SINT32 led_SetStatus(led_channel channel, led_status status); |
| SINT32 led_SetBlink(led_channel channel, UINT32 delay_on, UINT32 delay_off); |
| SINT32 led_SetLEDcurrent(UINT8 sink, led_current current); |
| |
| void zx29_led_init(void); |
| void zx29_led_PowerOnLedOn(void); |
| |
| void zx29_led_PowerOnLedOff(void); |
| |
| #endif/*_DRVS_LED_H*/ |