Source
x
static int max77843_muic_set_debounce_time(struct max77843_muic_info *info,
// SPDX-License-Identifier: GPL-2.0+
//
// extcon-max77843.c - Maxim MAX77843 extcon driver to support
// MUIC(Micro USB Interface Controller)
//
// Copyright (C) 2015 Samsung Electronics
// Author: Jaewon Kim <jaewon02.kim@samsung.com>
/* unit: millisecond */
enum max77843_muic_status {
MAX77843_MUIC_STATUS1 = 0,
MAX77843_MUIC_STATUS2,
MAX77843_MUIC_STATUS3,
MAX77843_MUIC_STATUS_NUM,
};
struct max77843_muic_info {
struct device *dev;
struct max77693_dev *max77843;
struct extcon_dev *edev;
struct mutex mutex;
struct work_struct irq_work;
struct delayed_work wq_detcable;
u8 status[MAX77843_MUIC_STATUS_NUM];
int prev_cable_type;
int prev_chg_type;
int prev_gnd_type;
bool irq_adc;
bool irq_chg;
};
enum max77843_muic_cable_group {
MAX77843_CABLE_GROUP_ADC = 0,
MAX77843_CABLE_GROUP_ADC_GND,
MAX77843_CABLE_GROUP_CHG,
};
enum max77843_muic_adc_debounce_time {
MAX77843_DEBOUNCE_TIME_5MS = 0,
MAX77843_DEBOUNCE_TIME_10MS,
MAX77843_DEBOUNCE_TIME_25MS,
MAX77843_DEBOUNCE_TIME_38_62MS,
};
/* Define accessory cable type */
enum max77843_muic_accessory_type {
MAX77843_MUIC_ADC_GROUND = 0,
MAX77843_MUIC_ADC_SEND_END_BUTTON,
MAX77843_MUIC_ADC_REMOTE_S1_BUTTON,
MAX77843_MUIC_ADC_REMOTE_S2_BUTTON,
MAX77843_MUIC_ADC_REMOTE_S3_BUTTON,
MAX77843_MUIC_ADC_REMOTE_S4_BUTTON,
MAX77843_MUIC_ADC_REMOTE_S5_BUTTON,
MAX77843_MUIC_ADC_REMOTE_S6_BUTTON,
MAX77843_MUIC_ADC_REMOTE_S7_BUTTON,
MAX77843_MUIC_ADC_REMOTE_S8_BUTTON,
MAX77843_MUIC_ADC_REMOTE_S9_BUTTON,
MAX77843_MUIC_ADC_REMOTE_S10_BUTTON,
MAX77843_MUIC_ADC_REMOTE_S11_BUTTON,
MAX77843_MUIC_ADC_REMOTE_S12_BUTTON,
MAX77843_MUIC_ADC_RESERVED_ACC_1,
MAX77843_MUIC_ADC_RESERVED_ACC_2,
MAX77843_MUIC_ADC_RESERVED_ACC_3, /* SmartDock */
MAX77843_MUIC_ADC_RESERVED_ACC_4,
MAX77843_MUIC_ADC_RESERVED_ACC_5,
MAX77843_MUIC_ADC_AUDIO_DEVICE_TYPE2,
MAX77843_MUIC_ADC_PHONE_POWERED_DEV,
MAX77843_MUIC_ADC_TTY_CONVERTER,
MAX77843_MUIC_ADC_UART_CABLE,
MAX77843_MUIC_ADC_CEA936A_TYPE1_CHG,
MAX77843_MUIC_ADC_FACTORY_MODE_USB_OFF,
MAX77843_MUIC_ADC_FACTORY_MODE_USB_ON,
MAX77843_MUIC_ADC_AV_CABLE_NOLOAD,
MAX77843_MUIC_ADC_CEA936A_TYPE2_CHG,
MAX77843_MUIC_ADC_FACTORY_MODE_UART_OFF,
MAX77843_MUIC_ADC_FACTORY_MODE_UART_ON,
MAX77843_MUIC_ADC_AUDIO_DEVICE_TYPE1,