Lines Matching full:gpio
55 struct gpio *gpio, in dal_gpio_open() argument
58 return dal_gpio_open_ex(gpio, mode); in dal_gpio_open()
62 struct gpio *gpio, in dal_gpio_open_ex() argument
65 if (gpio->pin) { in dal_gpio_open_ex()
70 // No action if allocation failed during gpio construct in dal_gpio_open_ex()
71 if (!gpio->hw_container.ddc) { in dal_gpio_open_ex()
75 gpio->mode = mode; in dal_gpio_open_ex()
77 return dal_gpio_service_open(gpio); in dal_gpio_open_ex()
81 const struct gpio *gpio, in dal_gpio_get_value() argument
84 if (!gpio->pin) { in dal_gpio_get_value()
89 return gpio->pin->funcs->get_value(gpio->pin, value); in dal_gpio_get_value()
93 const struct gpio *gpio, in dal_gpio_set_value() argument
96 if (!gpio->pin) { in dal_gpio_set_value()
101 return gpio->pin->funcs->set_value(gpio->pin, value); in dal_gpio_set_value()
105 const struct gpio *gpio) in dal_gpio_get_mode() argument
107 return gpio->mode; in dal_gpio_get_mode()
111 struct gpio *gpio) in dal_gpio_lock_pin() argument
113 return dal_gpio_service_lock(gpio->service, gpio->id, gpio->en); in dal_gpio_lock_pin()
117 struct gpio *gpio) in dal_gpio_unlock_pin() argument
119 return dal_gpio_service_unlock(gpio->service, gpio->id, gpio->en); in dal_gpio_unlock_pin()
123 struct gpio *gpio, in dal_gpio_change_mode() argument
126 if (!gpio->pin) { in dal_gpio_change_mode()
131 return gpio->pin->funcs->change_mode(gpio->pin, mode); in dal_gpio_change_mode()
135 const struct gpio *gpio) in dal_gpio_get_id() argument
137 return gpio->id; in dal_gpio_get_id()
141 const struct gpio *gpio) in dal_gpio_get_enum() argument
143 return gpio->en; in dal_gpio_get_enum()
147 struct gpio *gpio, in dal_gpio_set_config() argument
150 if (!gpio->pin) { in dal_gpio_set_config()
155 return gpio->pin->funcs->set_config(gpio->pin, config_data); in dal_gpio_set_config()
159 const struct gpio *gpio, in dal_gpio_get_pin_info() argument
162 return gpio->service->translate.funcs->id_to_offset( in dal_gpio_get_pin_info()
163 gpio->id, gpio->en, pin_info) ? in dal_gpio_get_pin_info()
168 const struct gpio *gpio) in dal_gpio_get_sync_source() argument
170 switch (gpio->id) { in dal_gpio_get_sync_source()
172 switch (gpio->en) { in dal_gpio_get_sync_source()
190 switch (gpio->en) { in dal_gpio_get_sync_source()
204 switch (gpio->en) { in dal_gpio_get_sync_source()
214 switch (gpio->en) { in dal_gpio_get_sync_source()
233 const struct gpio *gpio) in dal_gpio_get_output_state() argument
235 return gpio->output_state; in dal_gpio_get_output_state()
238 struct hw_ddc *dal_gpio_get_ddc(struct gpio *gpio) in dal_gpio_get_ddc() argument
240 return gpio->hw_container.ddc; in dal_gpio_get_ddc()
243 struct hw_hpd *dal_gpio_get_hpd(struct gpio *gpio) in dal_gpio_get_hpd() argument
245 return gpio->hw_container.hpd; in dal_gpio_get_hpd()
248 struct hw_generic *dal_gpio_get_generic(struct gpio *gpio) in dal_gpio_get_generic() argument
250 return gpio->hw_container.generic; in dal_gpio_get_generic()
254 struct gpio *gpio) in dal_gpio_close() argument
256 if (!gpio) in dal_gpio_close()
259 dal_gpio_service_close(gpio->service, &gpio->pin); in dal_gpio_close()
261 gpio->mode = GPIO_MODE_UNKNOWN; in dal_gpio_close()
269 struct gpio *dal_gpio_create( in dal_gpio_create()
275 struct gpio *gpio = kzalloc(sizeof(struct gpio), GFP_KERNEL); in dal_gpio_create() local
277 if (!gpio) { in dal_gpio_create()
282 gpio->service = service; in dal_gpio_create()
283 gpio->pin = NULL; in dal_gpio_create()
284 gpio->id = id; in dal_gpio_create()
285 gpio->en = en; in dal_gpio_create()
286 gpio->mode = GPIO_MODE_UNKNOWN; in dal_gpio_create()
287 gpio->output_state = output_state; in dal_gpio_create()
290 switch (gpio->id) { in dal_gpio_create()
292 gpio->service->factory.funcs->init_ddc_data(&gpio->hw_container.ddc, service->ctx, id, en); in dal_gpio_create()
295 gpio->service->factory.funcs->init_ddc_data(&gpio->hw_container.ddc, service->ctx, id, en); in dal_gpio_create()
298 gpio->service->factory.funcs->init_generic(&gpio->hw_container.generic, service->ctx, id, en); in dal_gpio_create()
301 gpio->service->factory.funcs->init_hpd(&gpio->hw_container.hpd, service->ctx, id, en); in dal_gpio_create()
303 // TODO: currently gpio for sync and gsl does not get created, might need it later in dal_gpio_create()
310 gpio->pin = NULL; in dal_gpio_create()
313 return gpio; in dal_gpio_create()
317 struct gpio **gpio) in dal_gpio_destroy() argument
319 if (!gpio || !*gpio) { in dal_gpio_destroy()
324 switch ((*gpio)->id) { in dal_gpio_destroy()
326 kfree((*gpio)->hw_container.ddc); in dal_gpio_destroy()
327 (*gpio)->hw_container.ddc = NULL; in dal_gpio_destroy()
331 kfree((*gpio)->hw_container.ddc); in dal_gpio_destroy()
332 (*gpio)->hw_container.ddc = NULL; in dal_gpio_destroy()
335 kfree((*gpio)->hw_container.generic); in dal_gpio_destroy()
336 (*gpio)->hw_container.generic = NULL; in dal_gpio_destroy()
339 kfree((*gpio)->hw_container.hpd); in dal_gpio_destroy()
340 (*gpio)->hw_container.hpd = NULL; in dal_gpio_destroy()
342 // TODO: currently gpio for sync and gsl does not get created, might need it later in dal_gpio_destroy()
351 kfree(*gpio); in dal_gpio_destroy()
353 *gpio = NULL; in dal_gpio_destroy()