Lines Matching refs:proxy

27 gpio_shared_proxy_set_unlocked(struct gpio_shared_proxy_data *proxy,  in gpio_shared_proxy_set_unlocked()  argument
31 struct gpio_shared_desc *shared_desc = proxy->shared_desc; in gpio_shared_proxy_set_unlocked()
39 if (proxy->voted_high) in gpio_shared_proxy_set_unlocked()
55 proxy->voted_high = true; in gpio_shared_proxy_set_unlocked()
61 if (!proxy->voted_high) in gpio_shared_proxy_set_unlocked()
74 proxy->voted_high = false; in gpio_shared_proxy_set_unlocked()
78 dev_dbg(proxy->dev, in gpio_shared_proxy_set_unlocked()
82 dev_dbg(proxy->dev, "Voted for value 'low', effective value is 'low'\n"); in gpio_shared_proxy_set_unlocked()
89 struct gpio_shared_proxy_data *proxy = gpiochip_get_data(gc); in gpio_shared_proxy_request() local
90 struct gpio_shared_desc *shared_desc = proxy->shared_desc; in gpio_shared_proxy_request()
94 proxy->shared_desc->usecnt++; in gpio_shared_proxy_request()
96 dev_dbg(proxy->dev, "Shared GPIO requested, number of users: %u\n", in gpio_shared_proxy_request()
97 proxy->shared_desc->usecnt); in gpio_shared_proxy_request()
104 struct gpio_shared_proxy_data *proxy = gpiochip_get_data(gc); in gpio_shared_proxy_free() local
105 struct gpio_shared_desc *shared_desc = proxy->shared_desc; in gpio_shared_proxy_free()
110 if (proxy->voted_high) { in gpio_shared_proxy_free()
111 ret = gpio_shared_proxy_set_unlocked(proxy, in gpio_shared_proxy_free()
114 dev_err(proxy->dev, in gpio_shared_proxy_free()
118 proxy->shared_desc->usecnt--; in gpio_shared_proxy_free()
120 dev_dbg(proxy->dev, "Shared GPIO freed, number of users: %u\n", in gpio_shared_proxy_free()
121 proxy->shared_desc->usecnt); in gpio_shared_proxy_free()
127 struct gpio_shared_proxy_data *proxy = gpiochip_get_data(gc); in gpio_shared_proxy_set_config() local
128 struct gpio_shared_desc *shared_desc = proxy->shared_desc; in gpio_shared_proxy_set_config()
136 dev_dbg(proxy->dev, in gpio_shared_proxy_set_config()
139 dev_dbg(proxy->dev, "Equal config requested, nothing to do\n"); in gpio_shared_proxy_set_config()
155 struct gpio_shared_proxy_data *proxy = gpiochip_get_data(gc); in gpio_shared_proxy_direction_input() local
156 struct gpio_shared_desc *shared_desc = proxy->shared_desc; in gpio_shared_proxy_direction_input()
163 dev_dbg(proxy->dev, in gpio_shared_proxy_direction_input()
174 dev_dbg(proxy->dev, in gpio_shared_proxy_direction_input()
185 struct gpio_shared_proxy_data *proxy = gpiochip_get_data(gc); in gpio_shared_proxy_direction_output() local
186 struct gpio_shared_desc *shared_desc = proxy->shared_desc; in gpio_shared_proxy_direction_output()
193 dev_dbg(proxy->dev, in gpio_shared_proxy_direction_output()
202 proxy->voted_high = true; in gpio_shared_proxy_direction_output()
205 proxy->voted_high = false; in gpio_shared_proxy_direction_output()
217 dev_dbg(proxy->dev, in gpio_shared_proxy_direction_output()
222 return gpio_shared_proxy_set_unlocked(proxy, gpiod_direction_output, value); in gpio_shared_proxy_direction_output()
227 struct gpio_shared_proxy_data *proxy = gpiochip_get_data(gc); in gpio_shared_proxy_get() local
229 return gpiod_get_value(proxy->shared_desc->desc); in gpio_shared_proxy_get()
235 struct gpio_shared_proxy_data *proxy = gpiochip_get_data(gc); in gpio_shared_proxy_get_cansleep() local
237 return gpiod_get_value_cansleep(proxy->shared_desc->desc); in gpio_shared_proxy_get_cansleep()
240 static int gpio_shared_proxy_do_set(struct gpio_shared_proxy_data *proxy, in gpio_shared_proxy_do_set() argument
244 guard(gpio_shared_desc_lock)(proxy->shared_desc); in gpio_shared_proxy_do_set()
246 return gpio_shared_proxy_set_unlocked(proxy, set_func, value); in gpio_shared_proxy_do_set()
252 struct gpio_shared_proxy_data *proxy = gpiochip_get_data(gc); in gpio_shared_proxy_set() local
254 return gpio_shared_proxy_do_set(proxy, gpiod_set_value, value); in gpio_shared_proxy_set()
260 struct gpio_shared_proxy_data *proxy = gpiochip_get_data(gc); in gpio_shared_proxy_set_cansleep() local
262 return gpio_shared_proxy_do_set(proxy, gpiod_set_value_cansleep, value); in gpio_shared_proxy_set_cansleep()
268 struct gpio_shared_proxy_data *proxy = gpiochip_get_data(gc); in gpio_shared_proxy_get_direction() local
270 return gpiod_get_direction(proxy->shared_desc->desc); in gpio_shared_proxy_get_direction()
275 struct gpio_shared_proxy_data *proxy = gpiochip_get_data(gc); in gpio_shared_proxy_to_irq() local
277 return gpiod_to_irq(proxy->shared_desc->desc); in gpio_shared_proxy_to_irq()
283 struct gpio_shared_proxy_data *proxy; in gpio_shared_proxy_probe() local
292 proxy = devm_kzalloc(dev, sizeof(*proxy), GFP_KERNEL); in gpio_shared_proxy_probe()
293 if (!proxy) in gpio_shared_proxy_probe()
296 proxy->shared_desc = shared_desc; in gpio_shared_proxy_probe()
297 proxy->dev = dev; in gpio_shared_proxy_probe()
299 gc = &proxy->gc; in gpio_shared_proxy_probe()
322 return devm_gpiochip_add_data(dev, &proxy->gc, proxy); in gpio_shared_proxy_probe()