Lines Matching full:ddc

466 struct ddc *dal_gpio_create_ddc(  in dal_gpio_create_ddc()
474 struct ddc *ddc; in dal_gpio_create_ddc() local
479 ddc = kzalloc(sizeof(struct ddc), GFP_KERNEL); in dal_gpio_create_ddc()
481 if (!ddc) { in dal_gpio_create_ddc()
486 ddc->pin_data = dal_gpio_create( in dal_gpio_create_ddc()
489 if (!ddc->pin_data) { in dal_gpio_create_ddc()
494 ddc->pin_clock = dal_gpio_create( in dal_gpio_create_ddc()
497 if (!ddc->pin_clock) { in dal_gpio_create_ddc()
502 ddc->hw_info = *info; in dal_gpio_create_ddc()
504 ddc->ctx = service->ctx; in dal_gpio_create_ddc()
506 return ddc; in dal_gpio_create_ddc()
509 dal_gpio_destroy(&ddc->pin_data); in dal_gpio_create_ddc()
512 kfree(ddc); in dal_gpio_create_ddc()
518 struct ddc **ddc) in dal_gpio_destroy_ddc() argument
520 if (!ddc || !*ddc) { in dal_gpio_destroy_ddc()
525 dal_ddc_close(*ddc); in dal_gpio_destroy_ddc()
526 dal_gpio_destroy(&(*ddc)->pin_data); in dal_gpio_destroy_ddc()
527 dal_gpio_destroy(&(*ddc)->pin_clock); in dal_gpio_destroy_ddc()
528 kfree(*ddc); in dal_gpio_destroy_ddc()
530 *ddc = NULL; in dal_gpio_destroy_ddc()
534 struct ddc *ddc, in dal_ddc_open() argument
544 result = dal_gpio_open_ex(ddc->pin_data, mode); in dal_ddc_open()
551 result = dal_gpio_open_ex(ddc->pin_clock, mode); in dal_ddc_open()
558 /* DDC clock and data pins should belong in dal_ddc_open()
559 * to the same DDC block id, in dal_ddc_open()
569 config_data.config.ddc.type = config_type; in dal_ddc_open()
571 hw_data = FROM_HW_GPIO_PIN(ddc->pin_data->pin); in dal_ddc_open()
572 hw_clock = FROM_HW_GPIO_PIN(ddc->pin_clock->pin); in dal_ddc_open()
574 config_data.config.ddc.data_en_bit_present = hw_data->store.en != 0; in dal_ddc_open()
575 config_data.config.ddc.clock_en_bit_present = hw_clock->store.en != 0; in dal_ddc_open()
577 result = dal_gpio_set_config(ddc->pin_data, &config_data); in dal_ddc_open()
584 dal_gpio_close(ddc->pin_clock); in dal_ddc_open()
587 dal_gpio_close(ddc->pin_data); in dal_ddc_open()
593 struct ddc *ddc, in dal_ddc_change_mode() argument
599 dal_gpio_get_mode(ddc->pin_data); in dal_ddc_change_mode()
601 result = dal_gpio_change_mode(ddc->pin_data, mode); in dal_ddc_change_mode()
611 result = dal_gpio_change_mode(ddc->pin_clock, mode); in dal_ddc_change_mode()
616 dal_gpio_change_mode(ddc->pin_clock, original_mode); in dal_ddc_change_mode()
619 dal_gpio_change_mode(ddc->pin_data, original_mode); in dal_ddc_change_mode()
625 const struct ddc *ddc) in dal_ddc_get_line() argument
627 return (enum gpio_ddc_line)dal_gpio_get_enum(ddc->pin_data); in dal_ddc_get_line()
631 struct ddc *ddc, in dal_ddc_set_config() argument
638 config_data.config.ddc.type = config_type; in dal_ddc_set_config()
639 config_data.config.ddc.data_en_bit_present = false; in dal_ddc_set_config()
640 config_data.config.ddc.clock_en_bit_present = false; in dal_ddc_set_config()
642 return dal_gpio_set_config(ddc->pin_data, &config_data); in dal_ddc_set_config()
646 struct ddc *ddc) in dal_ddc_close() argument
648 if (ddc != NULL) { in dal_ddc_close()
649 dal_gpio_close(ddc->pin_clock); in dal_ddc_close()
650 dal_gpio_close(ddc->pin_data); in dal_ddc_close()