aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mfd
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/mfd')
-rw-r--r--include/linux/mfd/max77693-private.h28
-rw-r--r--include/linux/mfd/max77693.h22
-rw-r--r--include/linux/mfd/max8997.h41
-rw-r--r--include/linux/mfd/s5m87xx/s5m-core.h2
4 files changed, 80 insertions, 13 deletions
diff --git a/include/linux/mfd/max77693-private.h b/include/linux/mfd/max77693-private.h
index ff0b1a2..7a2c536 100644
--- a/include/linux/mfd/max77693-private.h
+++ b/include/linux/mfd/max77693-private.h
@@ -177,9 +177,11 @@ enum max77693_haptic_reg {
/* MAX77693 STATUS2 register */
#define STATUS2_CHGTYP_SHIFT 0
#define STATUS2_CHGDETRUN_SHIFT 3
+#define STATUS2_DXOVP_SHIFT 5
#define STATUS2_VBVOLT_SHIFT 6
#define STATUS2_CHGTYP_MASK (0x7 << STATUS2_CHGTYP_SHIFT)
#define STATUS2_CHGDETRUN_MASK (0x1 << STATUS2_CHGDETRUN_SHIFT)
+#define STATUS2_DXOVP_MASK (0x1 << STATUS2_DXOVP_SHIFT)
#define STATUS2_VBVOLT_MASK (0x1 << STATUS2_VBVOLT_SHIFT)
/* MAX77693 CDETCTRL1 register */
@@ -232,7 +234,12 @@ enum max77693_reg_ctrl1_val {
MAX77693_MUIC_CTRL1_BIN_6_110 = 0x06,
MAX77693_MUIC_CTRL1_BIN_7_111 = 0x07,
};
-
+#if defined(CONFIG_SWITCH_DUAL_MODEM)
+enum max77693_switch_sel_val {
+ MAX77693_SWITCH_SEL_1st_BIT_USB = 0x3 << 0,
+ MAX77693_SWITCH_SEL_2nd_BIT_UART = 0x3 << 2,
+};
+#else
enum max77693_switch_sel_val {
MAX77693_SWITCH_SEL_1st_BIT_USB = 0x1 << 0,
MAX77693_SWITCH_SEL_2nd_BIT_UART = 0x1 << 1,
@@ -240,6 +247,7 @@ enum max77693_switch_sel_val {
MAX77693_SWITCH_SEL_3rd_BIT_LTE_UART = 0x1 << 2,
#endif
};
+#endif
enum max77693_reg_ctrl1_type {
CTRL1_AP_USB =
@@ -349,6 +357,10 @@ enum max77693_types {
TYPE_MAX77693,
};
+#ifdef CONFIG_FAST_BOOT
+extern bool fake_shut_down;
+#endif
+
extern struct device *switch_dev;
extern int max77693_irq_init(struct max77693_dev *max77693);
extern void max77693_irq_exit(struct max77693_dev *max77693);
@@ -385,6 +397,12 @@ enum cable_type_muic {
CABLE_TYPE_MHL_MUIC,
CABLE_TYPE_MHL_VB_MUIC,
CABLE_TYPE_SMARTDOCK_MUIC,
+ CABLE_TYPE_SMARTDOCK_TA_MUIC,
+ CABLE_TYPE_SMARTDOCK_USB_MUIC,
+ CABLE_TYPE_AUDIODOCK_MUIC,
+#if defined(CONFIG_MUIC_DET_JACK)
+ CABLE_TYPE_EARJACK_MUIC,
+#endif
CABLE_TYPE_UNKNOWN_MUIC
};
@@ -392,6 +410,10 @@ enum {
AP_USB_MODE = 0,
CP_USB_MODE,
AUDIO_MODE,
+#if defined(CONFIG_SWITCH_DUAL_MODEM)
+ CP_ESC_USB_MODE,
+#endif
+
};
enum {
@@ -400,6 +422,10 @@ enum {
#ifdef CONFIG_LTE_VIA_SWITCH
UART_PATH_LTE,
#endif
+#if defined(CONFIG_SWITCH_DUAL_MODEM)
+ UART_PATH_CP_ESC,
+#endif
+
};
#endif /* CONFIG_MFD_MAX77693 */
diff --git a/include/linux/mfd/max77693.h b/include/linux/mfd/max77693.h
index 07f2162..274693a 100644
--- a/include/linux/mfd/max77693.h
+++ b/include/linux/mfd/max77693.h
@@ -35,6 +35,14 @@ enum {
MAX77693_MUIC_ATTACHED
};
+enum {
+ MAX77693_MUIC_DOCK_DETACHED = 0,
+ MAX77693_MUIC_DOCK_DESKDOCK,
+ MAX77693_MUIC_DOCK_CARDOCK,
+ MAX77693_MUIC_DOCK_AUDIODOCK = 7,
+ MAX77693_MUIC_DOCK_SMARTDOCK = 8
+};
+
/* MAX77686 regulator IDs */
enum max77693_regulators {
MAX77693_ESAFEOUT1 = 0,
@@ -63,6 +71,7 @@ struct max77693_charger_platform_data {
#ifdef CONFIG_VIBETONZ
#define MAX8997_MOTOR_REG_CONFIG2 0x2
#define MOTOR_LRA (1<<7)
+#define MOTOR_ERM (0<<7)
#define MOTOR_EN (1<<6)
#define EXT_PWM (0<<5)
#define DIVIDER_128 (1<<1)
@@ -117,14 +126,17 @@ struct max77693_muic_data {
void (*usb_cb) (u8 attached);
void (*uart_cb) (u8 attached);
int (*charger_cb) (enum cable_type_muic);
- void (*deskdock_cb) (bool attached);
- void (*cardock_cb) (bool attached);
+ void (*dock_cb) (int type);
void (*mhl_cb) (int attached);
void (*init_cb) (void);
int (*set_safeout) (int path);
bool(*is_mhl_attached) (void);
int (*cfg_uart_gpio) (void);
void (*jig_uart_cb) (int path);
+#if defined(CONFIG_MUIC_DET_JACK)
+ void (*earjack_cb) (int attached);
+ void (*earjackkey_cb) (int pressed, unsigned int code);
+#endif
int (*host_notify_cb) (int enable);
int gpio_usb_sel;
int sw_path;
@@ -135,7 +147,11 @@ struct max77693_muic_data {
};
#if defined(CONFIG_MACH_M0_CTC)
-int max7693_muic_cp_usb_state(void);
+extern int max7693_muic_cp_usb_state(void);
#endif
+#if defined(CONFIG_MUIC_MAX77693_SUPPORT_OTG_AUDIO_DOCK)
+extern void max77693_muic_attach_audio_dock(void);
+#endif /* CONFIG_MUIC_MAX77693_SUPPORT_OTG_AUDIO_DOCK */
+
#endif /* __LINUX_MFD_MAX77693_H */
diff --git a/include/linux/mfd/max8997.h b/include/linux/mfd/max8997.h
index 256ed57..0658eba 100644
--- a/include/linux/mfd/max8997.h
+++ b/include/linux/mfd/max8997.h
@@ -24,8 +24,7 @@
#define __LINUX_MFD_MAX8997_H
#include <linux/regulator/machine.h>
-
-#if defined(CONFIG_MACH_Q1_BD)
+#if defined(CONFIG_MACH_Q1_BD) || defined(CONFIG_MACH_U1_NA_USCC)
#define MAX8997_SUPPORT_TORCH
#endif /* CONFIG_MACH_Q1_BD */
@@ -125,6 +124,35 @@ enum {
UART_PATH_AP,
};
+enum {
+ USB_SEL_IF = 0,
+ USB_SEL_CP,
+};
+
+enum muic_acc_type {
+ MUIC_ACC_TYPE_NONE = 0,
+ MUIC_ACC_TYPE_OTG,
+ MUIC_ACC_TYPE_MHL,
+ MUIC_ACC_TYPE_STATION,
+ MUIC_ACC_TYPE_JIG_USB_OFF,
+ MUIC_ACC_TYPE_JIG_USB_ON,
+ MUIC_ACC_TYPE_DESKDOCK,
+ MUIC_ACC_TYPE_JIG_UART_OFF,
+ MUIC_ACC_TYPE_JIG_UART_ON,
+ MUIC_ACC_TYPE_CARDOCK,
+ MUIC_ACC_TYPE_TA,
+ MUIC_ACC_TYPE_USB,
+ MUIC_ACC_TYPE_UNKNOWN
+};
+
+enum muic_chg_type {
+ MUIC_CHG_TYPE_NONE = 0,
+ MUIC_CHG_TYPE_USB,
+ MUIC_CHG_TYPE_TA,
+ MUIC_CHG_TYPE_MHL_VB,
+ MUIC_CHG_TYPE_UNKNOWN
+};
+
enum cable_type {
CABLE_TYPE_NONE = 0,
CABLE_TYPE_USB,
@@ -153,18 +181,13 @@ struct max8997_muic_data {
void (*init_cb) (void);
int (*set_safeout) (int path);
bool (*is_mhl_attached) (void);
-#if !defined(CONFIG_MACH_U1CAMERA_BD)
int (*cfg_uart_gpio) (void);
-#endif /* CONFIG_MACH_U1CAMERA_BD */
void (*jig_uart_cb) (int path);
int (*host_notify_cb) (int enable);
-#if !defined(CONFIG_MACH_U1CAMERA_BD)
int gpio_usb_sel;
-#endif /* CONFIG_MACH_U1CAMERA_BD */
- int sw_path;
-#if !defined(CONFIG_MACH_U1CAMERA_BD)
+ int gpio_uart_sel;
+ int usb_path;
int uart_path;
-#endif /* CONFIG_MACH_U1CAMERA_BD */
};
struct max8997_buck1_dvs_funcs {
diff --git a/include/linux/mfd/s5m87xx/s5m-core.h b/include/linux/mfd/s5m87xx/s5m-core.h
index 5afc005..5ba71a2 100644
--- a/include/linux/mfd/s5m87xx/s5m-core.h
+++ b/include/linux/mfd/s5m87xx/s5m-core.h
@@ -145,6 +145,7 @@ enum s5m8767_reg {
S5M8767_REG_LDO26CTRL,
S5M8767_REG_LDO27CTRL,
S5M8767_REG_LDO28CTRL,
+ S5M8767_REG_BUCK1DVS2 = 0xE2,
};
/* S5M8763 registers */
@@ -377,6 +378,7 @@ struct s5m_platform_data {
bool wtsr_smpl;
+ int buck1_init;
int buck2_init;
int buck3_init;
int buck4_init;