Lines Matching refs:shared_desc
21 struct gpio_shared_desc *shared_desc; member
31 struct gpio_shared_desc *shared_desc = proxy->shared_desc; in gpio_shared_proxy_set_unlocked() local
32 struct gpio_desc *desc = shared_desc->desc; in gpio_shared_proxy_set_unlocked()
35 gpio_shared_lockdep_assert(shared_desc); in gpio_shared_proxy_set_unlocked()
44 if (!shared_desc->highcnt) { in gpio_shared_proxy_set_unlocked()
54 shared_desc->highcnt++; in gpio_shared_proxy_set_unlocked()
66 if (shared_desc->highcnt == 1) { in gpio_shared_proxy_set_unlocked()
73 shared_desc->highcnt--; in gpio_shared_proxy_set_unlocked()
77 if (shared_desc->highcnt) in gpio_shared_proxy_set_unlocked()
80 str_high_low(value), shared_desc->highcnt); in gpio_shared_proxy_set_unlocked()
90 struct gpio_shared_desc *shared_desc = proxy->shared_desc; in gpio_shared_proxy_request() local
92 guard(gpio_shared_desc_lock)(shared_desc); in gpio_shared_proxy_request()
94 proxy->shared_desc->usecnt++; in gpio_shared_proxy_request()
97 proxy->shared_desc->usecnt); in gpio_shared_proxy_request()
105 struct gpio_shared_desc *shared_desc = proxy->shared_desc; in gpio_shared_proxy_free() local
108 guard(gpio_shared_desc_lock)(shared_desc); in gpio_shared_proxy_free()
112 shared_desc->can_sleep ? gpiod_set_value_cansleep : gpiod_set_value, 0); in gpio_shared_proxy_free()
118 proxy->shared_desc->usecnt--; in gpio_shared_proxy_free()
121 proxy->shared_desc->usecnt); in gpio_shared_proxy_free()
128 struct gpio_shared_desc *shared_desc = proxy->shared_desc; in gpio_shared_proxy_set_config() local
129 struct gpio_desc *desc = shared_desc->desc; in gpio_shared_proxy_set_config()
132 guard(gpio_shared_desc_lock)(shared_desc); in gpio_shared_proxy_set_config()
134 if (shared_desc->usecnt > 1) { in gpio_shared_proxy_set_config()
135 if (shared_desc->cfg != cfg) { in gpio_shared_proxy_set_config()
148 shared_desc->cfg = cfg; in gpio_shared_proxy_set_config()
156 struct gpio_shared_desc *shared_desc = proxy->shared_desc; in gpio_shared_proxy_direction_input() local
157 struct gpio_desc *desc = shared_desc->desc; in gpio_shared_proxy_direction_input()
160 guard(gpio_shared_desc_lock)(shared_desc); in gpio_shared_proxy_direction_input()
162 if (shared_desc->usecnt == 1) { in gpio_shared_proxy_direction_input()
186 struct gpio_shared_desc *shared_desc = proxy->shared_desc; in gpio_shared_proxy_direction_output() local
187 struct gpio_desc *desc = shared_desc->desc; in gpio_shared_proxy_direction_output()
190 guard(gpio_shared_desc_lock)(shared_desc); in gpio_shared_proxy_direction_output()
192 if (shared_desc->usecnt == 1) { in gpio_shared_proxy_direction_output()
203 shared_desc->highcnt = 1; in gpio_shared_proxy_direction_output()
206 shared_desc->highcnt = 0; in gpio_shared_proxy_direction_output()
229 return gpiod_get_value(proxy->shared_desc->desc); in gpio_shared_proxy_get()
237 return gpiod_get_value_cansleep(proxy->shared_desc->desc); in gpio_shared_proxy_get_cansleep()
244 guard(gpio_shared_desc_lock)(proxy->shared_desc); in gpio_shared_proxy_do_set()
270 return gpiod_get_direction(proxy->shared_desc->desc); in gpio_shared_proxy_get_direction()
277 return gpiod_to_irq(proxy->shared_desc->desc); in gpio_shared_proxy_to_irq()
284 struct gpio_shared_desc *shared_desc; in gpio_shared_proxy_probe() local
288 shared_desc = devm_gpiod_shared_get(dev); in gpio_shared_proxy_probe()
289 if (IS_ERR(shared_desc)) in gpio_shared_proxy_probe()
290 return PTR_ERR(shared_desc); in gpio_shared_proxy_probe()
296 proxy->shared_desc = shared_desc; in gpio_shared_proxy_probe()
305 gc->can_sleep = shared_desc->can_sleep; in gpio_shared_proxy_probe()