Lines Matching full:gpio

53 	struct gpio *gpio,  in dal_gpio_open()  argument
56 return dal_gpio_open_ex(gpio, mode); in dal_gpio_open()
60 struct gpio *gpio, in dal_gpio_open_ex() argument
63 if (gpio->pin) { in dal_gpio_open_ex()
68 // No action if allocation failed during gpio construct in dal_gpio_open_ex()
69 if (!gpio->hw_container.ddc) { in dal_gpio_open_ex()
73 gpio->mode = mode; in dal_gpio_open_ex()
75 return dal_gpio_service_open(gpio); in dal_gpio_open_ex()
79 const struct gpio *gpio, in dal_gpio_get_value() argument
82 if (!gpio->pin) { in dal_gpio_get_value()
87 return gpio->pin->funcs->get_value(gpio->pin, value); in dal_gpio_get_value()
91 const struct gpio *gpio, in dal_gpio_set_value() argument
94 if (!gpio->pin) { in dal_gpio_set_value()
99 return gpio->pin->funcs->set_value(gpio->pin, value); in dal_gpio_set_value()
103 const struct gpio *gpio) in dal_gpio_get_mode() argument
105 return gpio->mode; in dal_gpio_get_mode()
109 struct gpio *gpio) in dal_gpio_lock_pin() argument
111 return dal_gpio_service_lock(gpio->service, gpio->id, gpio->en); in dal_gpio_lock_pin()
115 struct gpio *gpio) in dal_gpio_unlock_pin() argument
117 return dal_gpio_service_unlock(gpio->service, gpio->id, gpio->en); in dal_gpio_unlock_pin()
121 struct gpio *gpio, in dal_gpio_change_mode() argument
124 if (!gpio->pin) { in dal_gpio_change_mode()
129 return gpio->pin->funcs->change_mode(gpio->pin, mode); in dal_gpio_change_mode()
133 const struct gpio *gpio) in dal_gpio_get_id() argument
135 return gpio->id; in dal_gpio_get_id()
139 const struct gpio *gpio) in dal_gpio_get_enum() argument
141 return gpio->en; in dal_gpio_get_enum()
145 struct gpio *gpio, in dal_gpio_set_config() argument
148 if (!gpio->pin) { in dal_gpio_set_config()
153 return gpio->pin->funcs->set_config(gpio->pin, config_data); in dal_gpio_set_config()
157 const struct gpio *gpio, in dal_gpio_get_pin_info() argument
160 return gpio->service->translate.funcs->id_to_offset( in dal_gpio_get_pin_info()
161 gpio->id, gpio->en, pin_info) ? in dal_gpio_get_pin_info()
166 const struct gpio *gpio) in dal_gpio_get_sync_source() argument
168 switch (gpio->id) { in dal_gpio_get_sync_source()
170 switch (gpio->en) { in dal_gpio_get_sync_source()
188 switch (gpio->en) { in dal_gpio_get_sync_source()
202 switch (gpio->en) { in dal_gpio_get_sync_source()
212 switch (gpio->en) { in dal_gpio_get_sync_source()
231 const struct gpio *gpio) in dal_gpio_get_output_state() argument
233 return gpio->output_state; in dal_gpio_get_output_state()
236 struct hw_ddc *dal_gpio_get_ddc(struct gpio *gpio) in dal_gpio_get_ddc() argument
238 return gpio->hw_container.ddc; in dal_gpio_get_ddc()
241 struct hw_hpd *dal_gpio_get_hpd(struct gpio *gpio) in dal_gpio_get_hpd() argument
243 return gpio->hw_container.hpd; in dal_gpio_get_hpd()
246 struct hw_generic *dal_gpio_get_generic(struct gpio *gpio) in dal_gpio_get_generic() argument
248 return gpio->hw_container.generic; in dal_gpio_get_generic()
252 struct gpio *gpio) in dal_gpio_close() argument
254 if (!gpio) in dal_gpio_close()
257 dal_gpio_service_close(gpio->service, &gpio->pin); in dal_gpio_close()
259 gpio->mode = GPIO_MODE_UNKNOWN; in dal_gpio_close()
267 struct gpio *dal_gpio_create( in dal_gpio_create()
273 struct gpio *gpio = kzalloc(sizeof(struct gpio), GFP_KERNEL); in dal_gpio_create() local
275 if (!gpio) { in dal_gpio_create()
280 gpio->service = service; in dal_gpio_create()
281 gpio->pin = NULL; in dal_gpio_create()
282 gpio->id = id; in dal_gpio_create()
283 gpio->en = en; in dal_gpio_create()
284 gpio->mode = GPIO_MODE_UNKNOWN; in dal_gpio_create()
285 gpio->output_state = output_state; in dal_gpio_create()
288 switch (gpio->id) { in dal_gpio_create()
290 gpio->service->factory.funcs->init_ddc_data(&gpio->hw_container.ddc, service->ctx, id, en); in dal_gpio_create()
293 gpio->service->factory.funcs->init_ddc_data(&gpio->hw_container.ddc, service->ctx, id, en); in dal_gpio_create()
296 gpio->service->factory.funcs->init_generic(&gpio->hw_container.generic, service->ctx, id, en); in dal_gpio_create()
299 gpio->service->factory.funcs->init_hpd(&gpio->hw_container.hpd, service->ctx, id, en); in dal_gpio_create()
301 // TODO: currently gpio for sync and gsl does not get created, might need it later in dal_gpio_create()
308 gpio->pin = NULL; in dal_gpio_create()
311 return gpio; in dal_gpio_create()
315 struct gpio **gpio) in dal_gpio_destroy() argument
317 if (!gpio || !*gpio) { in dal_gpio_destroy()
322 switch ((*gpio)->id) { in dal_gpio_destroy()
324 kfree((*gpio)->hw_container.ddc); in dal_gpio_destroy()
325 (*gpio)->hw_container.ddc = NULL; in dal_gpio_destroy()
329 kfree((*gpio)->hw_container.ddc); in dal_gpio_destroy()
330 (*gpio)->hw_container.ddc = NULL; in dal_gpio_destroy()
333 kfree((*gpio)->hw_container.generic); in dal_gpio_destroy()
334 (*gpio)->hw_container.generic = NULL; in dal_gpio_destroy()
337 kfree((*gpio)->hw_container.hpd); in dal_gpio_destroy()
338 (*gpio)->hw_container.hpd = NULL; in dal_gpio_destroy()
340 // TODO: currently gpio for sync and gsl does not get created, might need it later in dal_gpio_destroy()
349 kfree(*gpio); in dal_gpio_destroy()
351 *gpio = NULL; in dal_gpio_destroy()