Lines Matching refs:gpio_ext

55 	struct netxbig_gpio_ext	*gpio_ext;
68 static void gpio_ext_set_addr(struct netxbig_gpio_ext *gpio_ext, int addr)
72 for (pin = 0; pin < gpio_ext->num_addr; pin++)
73 gpiod_set_value(gpio_ext->addr[pin], (addr >> pin) & 1);
76 static void gpio_ext_set_data(struct netxbig_gpio_ext *gpio_ext, int data)
80 for (pin = 0; pin < gpio_ext->num_data; pin++)
81 gpiod_set_value(gpio_ext->data[pin], (data >> pin) & 1);
84 static void gpio_ext_enable_select(struct netxbig_gpio_ext *gpio_ext)
87 gpiod_set_value(gpio_ext->enable, 0);
88 gpiod_set_value(gpio_ext->enable, 1);
91 static void gpio_ext_set_value(struct netxbig_gpio_ext *gpio_ext,
97 gpio_ext_set_addr(gpio_ext, addr);
98 gpio_ext_set_data(gpio_ext, value);
99 gpio_ext_enable_select(gpio_ext);
108 struct netxbig_gpio_ext *gpio_ext;
160 gpio_ext_set_value(led_dat->gpio_ext, led_dat->mode_addr, mode_val);
193 gpio_ext_set_value(led_dat->gpio_ext, led_dat->mode_addr, mode_val);
201 gpio_ext_set_value(led_dat->gpio_ext,
246 gpio_ext_set_value(led_dat->gpio_ext, led_dat->mode_addr, mode_val);
282 led_dat->gpio_ext = pdata->gpio_ext;
326 struct netxbig_gpio_ext *gpio_ext = data;
329 for (i = 0; i < gpio_ext->num_addr; i++)
330 gpiod_put(gpio_ext->addr[i]);
331 for (i = 0; i < gpio_ext->num_data; i++)
332 gpiod_put(gpio_ext->data[i]);
333 gpiod_put(gpio_ext->enable);
340 * @gpio_ext: the data structure holding the GPIO extension data
348 struct netxbig_gpio_ext *gpio_ext)
382 gpio_ext->addr = addr;
383 gpio_ext->num_addr = num_addr;
404 gpio_ext->data = data;
405 gpio_ext->num_data = num_data;
414 gpio_ext->enable = gpiod;
416 return devm_add_action_or_reset(dev, netxbig_gpio_ext_remove, gpio_ext);
427 struct netxbig_gpio_ext *gpio_ext;
448 gpio_ext = devm_kzalloc(dev, sizeof(*gpio_ext), GFP_KERNEL);
449 if (!gpio_ext) {
454 ret = netxbig_gpio_ext_get(dev, gpio_ext_dev, gpio_ext);
458 pdata->gpio_ext = gpio_ext;