mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 13:14:07 +08:00
extcon: max8997: Set default UART/USB path on probe
This patch set default H/W line path according to platfomr data. The MAX8997 MUIC device can possibly set UART/USB or UART_AUX /USB_AUX to internal H/W line path of MUIC device. Namely, only one H/W line is used for two operation. For example, if H/W line path of MAX8997 device set UART/USB, micro usb cable is connected to AP(Application Processor) and if H/W line path set UART_AUX/USB_AUX, micro usb cable is connected to CP(Coprocessor). Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com> Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
This commit is contained in:
parent
f73f6232af
commit
685dc9a7db
@ -127,6 +127,13 @@ struct max8997_muic_info {
|
|||||||
|
|
||||||
struct max8997_muic_platform_data *muic_pdata;
|
struct max8997_muic_platform_data *muic_pdata;
|
||||||
enum max8997_muic_charger_type pre_charger_type;
|
enum max8997_muic_charger_type pre_charger_type;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Default usb/uart path whether UART/USB or AUX_UART/AUX_USB
|
||||||
|
* h/w path of COMP2/COMN1 on CONTROL1 register.
|
||||||
|
*/
|
||||||
|
int path_usb;
|
||||||
|
int path_uart;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
@ -322,7 +329,7 @@ static int max8997_muic_handle_usb(struct max8997_muic_info *info,
|
|||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
if (usb_type == MAX8997_USB_HOST) {
|
if (usb_type == MAX8997_USB_HOST) {
|
||||||
ret = max8997_muic_set_path(info, CONTROL1_SW_USB, attached);
|
ret = max8997_muic_set_path(info, info->path_usb, attached);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_err(info->dev, "failed to update muic register\n");
|
dev_err(info->dev, "failed to update muic register\n");
|
||||||
return ret;
|
return ret;
|
||||||
@ -378,7 +385,7 @@ static int max8997_muic_handle_jig_uart(struct max8997_muic_info *info,
|
|||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
/* switch to UART */
|
/* switch to UART */
|
||||||
ret = max8997_muic_set_path(info, CONTROL1_SW_UART, attached);
|
ret = max8997_muic_set_path(info, info->path_uart, attached);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(info->dev, "failed to update muic register\n");
|
dev_err(info->dev, "failed to update muic register\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@ -694,6 +701,23 @@ static int max8997_muic_probe(struct platform_device *pdev)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Default usb/uart path whether UART/USB or AUX_UART/AUX_USB
|
||||||
|
* h/w path of COMP2/COMN1 on CONTROL1 register.
|
||||||
|
*/
|
||||||
|
if (pdata->muic_pdata->path_uart)
|
||||||
|
info->path_uart = pdata->muic_pdata->path_uart;
|
||||||
|
else
|
||||||
|
info->path_uart = CONTROL1_SW_UART;
|
||||||
|
|
||||||
|
if (pdata->muic_pdata->path_usb)
|
||||||
|
info->path_usb = pdata->muic_pdata->path_usb;
|
||||||
|
else
|
||||||
|
info->path_usb = CONTROL1_SW_USB;
|
||||||
|
|
||||||
|
/* Set initial path for UART */
|
||||||
|
max8997_muic_set_path(info, info->path_uart, true);
|
||||||
|
|
||||||
/* Set ADC debounce time */
|
/* Set ADC debounce time */
|
||||||
max8997_muic_set_debounce_time(info, ADC_DEBOUNCE_TIME_25MS);
|
max8997_muic_set_debounce_time(info, ADC_DEBOUNCE_TIME_25MS);
|
||||||
|
|
||||||
|
@ -92,6 +92,13 @@ struct max8997_muic_reg_data {
|
|||||||
struct max8997_muic_platform_data {
|
struct max8997_muic_platform_data {
|
||||||
struct max8997_muic_reg_data *init_data;
|
struct max8997_muic_reg_data *init_data;
|
||||||
int num_init_data;
|
int num_init_data;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Default usb/uart path whether UART/USB or AUX_UART/AUX_USB
|
||||||
|
* h/w path of COMP2/COMN1 on CONTROL1 register.
|
||||||
|
*/
|
||||||
|
int path_usb;
|
||||||
|
int path_uart;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum max8997_haptic_motor_type {
|
enum max8997_haptic_motor_type {
|
||||||
|
Loading…
Reference in New Issue
Block a user