Lines Matching refs:gpio_ext
38 static void gpio_ext_set_addr(struct netxbig_gpio_ext *gpio_ext, int addr) in gpio_ext_set_addr() argument
42 for (pin = 0; pin < gpio_ext->num_addr; pin++) in gpio_ext_set_addr()
43 gpio_set_value(gpio_ext->addr[pin], (addr >> pin) & 1); in gpio_ext_set_addr()
46 static void gpio_ext_set_data(struct netxbig_gpio_ext *gpio_ext, int data) in gpio_ext_set_data() argument
50 for (pin = 0; pin < gpio_ext->num_data; pin++) in gpio_ext_set_data()
51 gpio_set_value(gpio_ext->data[pin], (data >> pin) & 1); in gpio_ext_set_data()
54 static void gpio_ext_enable_select(struct netxbig_gpio_ext *gpio_ext) in gpio_ext_enable_select() argument
57 gpio_set_value(gpio_ext->enable, 0); in gpio_ext_enable_select()
58 gpio_set_value(gpio_ext->enable, 1); in gpio_ext_enable_select()
61 static void gpio_ext_set_value(struct netxbig_gpio_ext *gpio_ext, in gpio_ext_set_value() argument
67 gpio_ext_set_addr(gpio_ext, addr); in gpio_ext_set_value()
68 gpio_ext_set_data(gpio_ext, value); in gpio_ext_set_value()
69 gpio_ext_enable_select(gpio_ext); in gpio_ext_set_value()
73 static int gpio_ext_init(struct netxbig_gpio_ext *gpio_ext) in gpio_ext_init() argument
78 if (unlikely(!gpio_ext)) in gpio_ext_init()
82 for (i = 0; i < gpio_ext->num_addr; i++) { in gpio_ext_init()
83 err = gpio_request_one(gpio_ext->addr[i], GPIOF_OUT_INIT_LOW, in gpio_ext_init()
89 for (i = 0; i < gpio_ext->num_data; i++) { in gpio_ext_init()
90 err = gpio_request_one(gpio_ext->data[i], GPIOF_OUT_INIT_LOW, in gpio_ext_init()
96 err = gpio_request_one(gpio_ext->enable, GPIOF_OUT_INIT_LOW, in gpio_ext_init()
105 gpio_free(gpio_ext->data[i]); in gpio_ext_init()
106 i = gpio_ext->num_addr; in gpio_ext_init()
109 gpio_free(gpio_ext->addr[i]); in gpio_ext_init()
114 static void gpio_ext_free(struct netxbig_gpio_ext *gpio_ext) in gpio_ext_free() argument
118 gpio_free(gpio_ext->enable); in gpio_ext_free()
119 for (i = gpio_ext->num_addr - 1; i >= 0; i--) in gpio_ext_free()
120 gpio_free(gpio_ext->addr[i]); in gpio_ext_free()
121 for (i = gpio_ext->num_data - 1; i >= 0; i--) in gpio_ext_free()
122 gpio_free(gpio_ext->data[i]); in gpio_ext_free()
130 struct netxbig_gpio_ext *gpio_ext; member
183 gpio_ext_set_value(led_dat->gpio_ext, led_dat->mode_addr, mode_val); in netxbig_led_blink_set()
216 gpio_ext_set_value(led_dat->gpio_ext, led_dat->mode_addr, mode_val); in netxbig_led_set()
226 gpio_ext_set_value(led_dat->gpio_ext, in netxbig_led_set()
272 gpio_ext_set_value(led_dat->gpio_ext, led_dat->mode_addr, mode_val); in netxbig_led_sata_store()
315 led_dat->gpio_ext = pdata->gpio_ext; in create_netxbig_led()
336 led_dat->bright_max = (1 << pdata->gpio_ext->num_data) - 1; in create_netxbig_led()
364 ret = gpio_ext_init(pdata->gpio_ext); in netxbig_led_probe()
382 gpio_ext_free(pdata->gpio_ext); in netxbig_led_probe()
397 gpio_ext_free(pdata->gpio_ext); in netxbig_led_remove()