static int gpio_sw_pull_set(struct gpio_sw_classdev *gpio_sw_cdev,int pull) { struct gpio_sw *gpio = to_gpio(gpio_sw_cdev); struct gpio_sw_platdata *pd = gpio->pdata; int ret ; GPIO_SW_DEBUG("attending gpio_sw_pull_set \n"); GPIO_SW_DEBUG("pio_hdle is %x \n",gpio->cdev.pio_hdle); ret = gpio_set_one_pin_pull (gpio->cdev.pio_hdle, pull, pd->name); if ( !ret ) gpio_sw_cdev->pull=pull; GPIO_SW_DEBUG("left gpio_sw_pull_set \n"); return ret ; }
/* ******************************************************************************* * pin_init * * Description: * void * * Parameters: * void * * Return value: * void * * note: * void * ******************************************************************************* */ static u32 alloc_pin(user_gpio_set_t *gpio_list) { u32 pin_handle = 0; pin_handle = gpio_request(gpio_list, 1); if(pin_handle == 0){ DMSG_PANIC("ERR: gpio_request failed\n"); return 0; } /* set config, ouput */ gpio_set_one_pin_io_status(pin_handle, 1, NULL); /* reserved is pull down */ gpio_set_one_pin_pull(pin_handle, 2, NULL); return pin_handle; }