Lines Matching full:ddc
474 struct ddc *dal_gpio_create_ddc( in dal_gpio_create_ddc()
482 struct ddc *ddc; in dal_gpio_create_ddc() local
487 ddc = kzalloc(sizeof(struct ddc), GFP_KERNEL); in dal_gpio_create_ddc()
489 if (!ddc) { in dal_gpio_create_ddc()
494 ddc->pin_data = dal_gpio_create( in dal_gpio_create_ddc()
497 if (!ddc->pin_data) { in dal_gpio_create_ddc()
502 ddc->pin_clock = dal_gpio_create( in dal_gpio_create_ddc()
505 if (!ddc->pin_clock) { in dal_gpio_create_ddc()
510 ddc->hw_info = *info; in dal_gpio_create_ddc()
512 ddc->ctx = service->ctx; in dal_gpio_create_ddc()
514 return ddc; in dal_gpio_create_ddc()
517 dal_gpio_destroy(&ddc->pin_data); in dal_gpio_create_ddc()
520 kfree(ddc); in dal_gpio_create_ddc()
526 struct ddc **ddc) in dal_gpio_destroy_ddc() argument
528 if (!ddc || !*ddc) { in dal_gpio_destroy_ddc()
533 dal_ddc_close(*ddc); in dal_gpio_destroy_ddc()
534 dal_gpio_destroy(&(*ddc)->pin_data); in dal_gpio_destroy_ddc()
535 dal_gpio_destroy(&(*ddc)->pin_clock); in dal_gpio_destroy_ddc()
536 kfree(*ddc); in dal_gpio_destroy_ddc()
538 *ddc = NULL; in dal_gpio_destroy_ddc()
542 struct ddc *ddc, in dal_ddc_open() argument
552 result = dal_gpio_open_ex(ddc->pin_data, mode); in dal_ddc_open()
559 result = dal_gpio_open_ex(ddc->pin_clock, mode); in dal_ddc_open()
566 /* DDC clock and data pins should belong in dal_ddc_open()
567 * to the same DDC block id, in dal_ddc_open()
577 config_data.config.ddc.type = config_type; in dal_ddc_open()
579 hw_data = FROM_HW_GPIO_PIN(ddc->pin_data->pin); in dal_ddc_open()
580 hw_clock = FROM_HW_GPIO_PIN(ddc->pin_clock->pin); in dal_ddc_open()
582 config_data.config.ddc.data_en_bit_present = hw_data->store.en != 0; in dal_ddc_open()
583 config_data.config.ddc.clock_en_bit_present = hw_clock->store.en != 0; in dal_ddc_open()
585 result = dal_gpio_set_config(ddc->pin_data, &config_data); in dal_ddc_open()
592 dal_gpio_close(ddc->pin_clock); in dal_ddc_open()
595 dal_gpio_close(ddc->pin_data); in dal_ddc_open()
601 struct ddc *ddc, in dal_ddc_change_mode() argument
607 dal_gpio_get_mode(ddc->pin_data); in dal_ddc_change_mode()
609 result = dal_gpio_change_mode(ddc->pin_data, mode); in dal_ddc_change_mode()
619 result = dal_gpio_change_mode(ddc->pin_clock, mode); in dal_ddc_change_mode()
624 dal_gpio_change_mode(ddc->pin_clock, original_mode); in dal_ddc_change_mode()
627 dal_gpio_change_mode(ddc->pin_data, original_mode); in dal_ddc_change_mode()
633 const struct ddc *ddc) in dal_ddc_get_line() argument
635 return (enum gpio_ddc_line)dal_gpio_get_enum(ddc->pin_data); in dal_ddc_get_line()
639 struct ddc *ddc, in dal_ddc_set_config() argument
646 config_data.config.ddc.type = config_type; in dal_ddc_set_config()
647 config_data.config.ddc.data_en_bit_present = false; in dal_ddc_set_config()
648 config_data.config.ddc.clock_en_bit_present = false; in dal_ddc_set_config()
650 return dal_gpio_set_config(ddc->pin_data, &config_data); in dal_ddc_set_config()
654 struct ddc *ddc) in dal_ddc_close() argument
656 if (ddc != NULL) { in dal_ddc_close()
657 dal_gpio_close(ddc->pin_clock); in dal_ddc_close()
658 dal_gpio_close(ddc->pin_data); in dal_ddc_close()