static u32 alloc_pin(user_gpio_set_t *gpio_list) { u32 pin_handle = 0; pin_handle = sunxi_gpio_request_array(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; }
static int __init aw_pin_test_init(void) { int ret; u32 gpio_handle; printk("aw_pin_test_init: enter\n"); ret = script_parser_mainkey_get_gpio_cfg("uart_para", (void *)gpio_set, 38); if(!ret) { gpio_handle = sunxi_gpio_request_array(gpio_set, 38); printk("gpio_handle=0x%08x, ret=%d\n", gpio_handle,ret); ret = gpio_release(gpio_handle, 2); printk("gpio_Release: ret=%d\n", ret); } else { printk("ERR: script_parser_mainkey_get_gpio_cfg\n"); } return 0; }