#include #include #include #include "led-generic.h" #include "pushbutton.h" #include "bspgpio.h" //#include /*linux-2.6.19*/ #include //ccwei: 120208-WPS #define WPS_PIN RTL8192CD_GPIO_2 #define LOW_ACTIVE 1 #if LOW_ACTIVE #define GPIO_SET(w, op) do { \ gpioConfig(w, GPIO_FUNC_OUTPUT); \ if (LED_ON==op) gpioClear(w); \ else gpioSet(w); \ } while (0); #define GPIO_READ(w) (!gpioRead(w)) #else #define GPIO_SET(w, op) do { \ gpioConfig(w, GPIO_FUNC_OUTPUT); \ if (LED_ON==op) gpioSet(w); \ else gpioClear(w); \ } while (0); #define GPIO_READ(w) (gpioRead(w)) #endif void PCIE_reset_pin(int *reset){ *reset = GPIO_12; } EXPORT_SYMBOL(PCIE_reset_pin); #ifdef CONFIG_USE_PCIE_SLOT_1 void PCIE1_reset_pin(int *reset){ *reset = GPIO_59; } EXPORT_SYMBOL(PCIE1_reset_pin); #endif //ccwei: 120208-WPS #if defined (CONFIG_RTL8192CD) || defined (CONFIG_RTL8192CD_MODULE) void get_wifi_wake_pin(int *gpio_num) { *gpio_num = GPIO_45; } void get_wifi_wps_pin(int *gpio_num) { *gpio_num = (WPS_PIN - RTL8192CD_GPIO_0); } #endif //end static void board_01_handle_set(int which, int op) { //printk("%s: led %d op %d\n", __FUNCTION__, which, op); #if 0 /* 2012-4-12 krammer add */ switch (which) { #ifdef CONFIG_SW_USB_LED1 case LED_USB_1: GPIO_SET(GPIO_F_6, op); break; #endif //CONFIG_SW_USB_LED1 case LED_DSL: GPIO_SET(GPIO_H_3, op); break; #ifdef CONFIG_SW_USB_LED0 case LED_USB_0: GPIO_SET(GPIO_F_5, op); break; #endif //CONFIG_SW_USB_LED0 case LED_POWER_GREEN: GPIO_SET(GPIO_B_4, op); break; case LED_POWER_RED: GPIO_SET(GPIO_B_5, op); break; case LED_INTERNET_RED: case LED_PPP_RED: GPIO_SET(GPIO_B_6, op); break; case LED_WPS_GREEN: GPIO_SET(GPIO_C_3, op); break; case LED_WPS_RED: GPIO_SET(GPIO_C_4, op); break; case LED_WPS_YELLOW: GPIO_SET(GPIO_C_5, op); break; case LED_INTERNET_GREEN: case LED_PPP_GREEN: GPIO_SET(GPIO_D_1, op); break; default: led_handle_set(which, op); } #else #endif /* 2012-4-12 krammer add */ } static void board_01_handle_init(void) { board_01_handle_set(LED_POWER_GREEN, LED_OFF); board_01_handle_set(LED_POWER_RED, LED_ON); board_01_handle_set(LED_DSL, LED_OFF); board_01_handle_set(LED_INTERNET_GREEN, LED_OFF); board_01_handle_set(LED_INTERNET_RED, LED_OFF); board_01_handle_set(LED_WPS_GREEN, LED_OFF); board_01_handle_set(LED_WPS_RED, LED_OFF); board_01_handle_set(LED_WPS_YELLOW, LED_OFF); #ifdef CONFIG_SW_USB_LED1 board_01_handle_set(LED_USB_1, LED_OFF); #endif //CONFIG_SW_USB_LED1 #ifdef CONFIG_SW_USB_LED0 board_01_handle_set(LED_USB_0, LED_OFF); #endif //CONFIG_SW_USB_LED0 }; static struct led_operations board_01_operation = { .name = "board_01", .handle_init = board_01_handle_init, .handle_set = board_01_handle_set, }; static void board_01_pb_init(void) { }; static int board_01_pb_is_pushed(int which) { switch(which) { #if 0//now we don't have WPS botton on hw case PB_RESET: return GPIO_READ(GPIO_0); case PB_WIFISW: return GPIO_READ(GPIO_45); #if defined (CONFIG_RTL8192CD) || defined (CONFIG_RTL8192CD_MODULE) case PB_WPS: //120208-WPS return GPIO_READ(WPS_PIN); //return GPIO_READ(RTL8192CD_GPIO_2); #endif #endif default: return 0; } } static struct pushbutton_operations board_01_pb_op = { .handle_init = board_01_pb_init, .handle_is_pushed = board_01_pb_is_pushed, }; static int __init board_01_led_init(void) { #if 0//krammer mark first #ifndef CONFIG_JTAG_USABLE unsigned int sicr; sicr = REG32(BSP_MISC_PINMUX); if ( sicr & BSP_JTAG_GPIO_PINMUX ) { printk( "<<<<<<