@@ -31,10 +31,6 @@
#define REGISTER_VAL(x) ((x) - 1)
/* mt6359 accdet capability */
-#define ACCDET_PMIC_EINT0 BIT(2)
-#define ACCDET_PMIC_EINT1 BIT(3)
-#define ACCDET_PMIC_BI_EINT BIT(4)
-
#define ACCDET_PMIC_RSV_EINT BIT(7)
#define ACCDET_RSV_KEY BIT(11)
@@ -84,17 +80,10 @@ static unsigned int adjust_eint_analog_setting(struct mt6359_accdet *priv)
{
/* ESD switches off */
regmap_update_bits(priv->regmap, RG_ACCDETSPARE_ADDR, 1 << 8, 0);
- if (priv->caps & ACCDET_PMIC_EINT0) {
- /* enable RG_EINT0CONFIGACCDET */
- regmap_update_bits(priv->regmap, RG_EINT0CONFIGACCDET_ADDR,
- RG_EINT0CONFIGACCDET_MASK_SFT,
- BIT(RG_EINT0CONFIGACCDET_SFT));
- } else if (priv->caps & ACCDET_PMIC_EINT1) {
- /* enable RG_EINT1CONFIGACCDET */
- regmap_update_bits(priv->regmap, RG_EINT1CONFIGACCDET_ADDR,
- RG_EINT1CONFIGACCDET_MASK_SFT,
- BIT(RG_EINT1CONFIGACCDET_SFT));
- }
+ /* enable RG_EINT0CONFIGACCDET */
+ regmap_update_bits(priv->regmap, RG_EINT0CONFIGACCDET_ADDR,
+ RG_EINT0CONFIGACCDET_MASK_SFT,
+ BIT(RG_EINT0CONFIGACCDET_SFT));
/*select 500k, use internal resistor */
regmap_update_bits(priv->regmap, RG_EINT0HIRENB_ADDR,
RG_EINT0HIRENB_MASK_SFT, BIT(RG_EINT0HIRENB_SFT));
@@ -103,27 +92,13 @@ static unsigned int adjust_eint_analog_setting(struct mt6359_accdet *priv)
static unsigned int adjust_eint_digital_setting(struct mt6359_accdet *priv)
{
- if (priv->caps & ACCDET_PMIC_EINT0) {
- /* disable inverter */
- regmap_update_bits(priv->regmap,
- ACCDET_EINT0_INVERTER_SW_EN_ADDR,
- ACCDET_EINT0_INVERTER_SW_EN_MASK_SFT, 0);
- } else if (priv->caps & ACCDET_PMIC_EINT1) {
- /* disable inverter */
- regmap_update_bits(priv->regmap,
- ACCDET_EINT1_INVERTER_SW_EN_ADDR,
- ACCDET_EINT1_INVERTER_SW_EN_MASK_SFT, 0);
- }
+ /* disable inverter */
+ regmap_update_bits(priv->regmap, ACCDET_EINT0_INVERTER_SW_EN_ADDR,
+ ACCDET_EINT0_INVERTER_SW_EN_MASK_SFT, 0);
- if (priv->caps & ACCDET_PMIC_EINT0) {
- /* set DA stable signal */
- regmap_update_bits(priv->regmap, ACCDET_DA_STABLE_ADDR,
- ACCDET_EINT0_CEN_STABLE_MASK_SFT, 0);
- } else if (priv->caps & ACCDET_PMIC_EINT1) {
- /* set DA stable signal */
- regmap_update_bits(priv->regmap, ACCDET_DA_STABLE_ADDR,
- ACCDET_EINT1_CEN_STABLE_MASK_SFT, 0);
- }
+ /* set DA stable signal */
+ regmap_update_bits(priv->regmap, ACCDET_DA_STABLE_ADDR,
+ ACCDET_EINT0_CEN_STABLE_MASK_SFT, 0);
return 0;
}
@@ -149,55 +124,26 @@ static void recover_eint_analog_setting(struct mt6359_accdet *priv)
{
/* ESD switches on */
regmap_update_bits(priv->regmap, RG_ACCDETSPARE_ADDR, 1 << 8, 1 << 8);
- if (priv->caps & ACCDET_PMIC_EINT0) {
- /* disable RG_EINT0CONFIGACCDET */
- regmap_update_bits(priv->regmap, RG_EINT0CONFIGACCDET_ADDR,
- RG_EINT0CONFIGACCDET_MASK_SFT, 0);
- } else if (priv->caps & ACCDET_PMIC_EINT1) {
- /* disable RG_EINT1CONFIGACCDET */
- regmap_update_bits(priv->regmap, RG_EINT1CONFIGACCDET_ADDR,
- RG_EINT1CONFIGACCDET_MASK_SFT, 0);
- }
+ /* disable RG_EINT0CONFIGACCDET */
+ regmap_update_bits(priv->regmap, RG_EINT0CONFIGACCDET_ADDR,
+ RG_EINT0CONFIGACCDET_MASK_SFT, 0);
regmap_update_bits(priv->regmap, RG_EINT0HIRENB_ADDR,
RG_EINT0HIRENB_MASK_SFT, 0);
}
static void recover_eint_digital_setting(struct mt6359_accdet *priv)
{
- if (priv->caps & ACCDET_PMIC_EINT0) {
- regmap_update_bits(priv->regmap,
- ACCDET_EINT0_M_SW_EN_ADDR,
- ACCDET_EINT0_M_SW_EN_MASK_SFT, 0);
- } else if (priv->caps & ACCDET_PMIC_EINT1) {
- regmap_update_bits(priv->regmap,
- ACCDET_EINT1_M_SW_EN_ADDR,
- ACCDET_EINT1_M_SW_EN_MASK_SFT, 0);
- }
- if (priv->caps & ACCDET_PMIC_EINT0) {
- /* enable eint0cen */
- regmap_update_bits(priv->regmap, ACCDET_DA_STABLE_ADDR,
- ACCDET_EINT0_CEN_STABLE_MASK_SFT,
- BIT(ACCDET_EINT0_CEN_STABLE_SFT));
- } else if (priv->caps & ACCDET_PMIC_EINT1) {
- /* enable eint1cen */
- regmap_update_bits(priv->regmap, ACCDET_DA_STABLE_ADDR,
- ACCDET_EINT1_CEN_STABLE_MASK_SFT,
- BIT(ACCDET_EINT1_CEN_STABLE_SFT));
- }
-
- if (priv->caps & ACCDET_PMIC_EINT0) {
- /* enable inverter */
- regmap_update_bits(priv->regmap,
- ACCDET_EINT0_INVERTER_SW_EN_ADDR,
- ACCDET_EINT0_INVERTER_SW_EN_MASK_SFT,
- BIT(ACCDET_EINT0_INVERTER_SW_EN_SFT));
- } else if (priv->caps & ACCDET_PMIC_EINT1) {
- /* enable inverter */
- regmap_update_bits(priv->regmap,
- ACCDET_EINT1_INVERTER_SW_EN_ADDR,
- ACCDET_EINT1_INVERTER_SW_EN_MASK_SFT,
- BIT(ACCDET_EINT1_INVERTER_SW_EN_SFT));
- }
+ regmap_update_bits(priv->regmap, ACCDET_EINT0_M_SW_EN_ADDR,
+ ACCDET_EINT0_M_SW_EN_MASK_SFT, 0);
+ /* enable eint0cen */
+ regmap_update_bits(priv->regmap, ACCDET_DA_STABLE_ADDR,
+ ACCDET_EINT0_CEN_STABLE_MASK_SFT,
+ BIT(ACCDET_EINT0_CEN_STABLE_SFT));
+
+ /* enable inverter */
+ regmap_update_bits(priv->regmap, ACCDET_EINT0_INVERTER_SW_EN_ADDR,
+ ACCDET_EINT0_INVERTER_SW_EN_MASK_SFT,
+ BIT(ACCDET_EINT0_INVERTER_SW_EN_SFT));
}
static void recover_eint_setting(struct mt6359_accdet *priv)
@@ -486,10 +432,8 @@ static irqreturn_t mt6359_accdet_irq(int irq, void *data)
static int mt6359_accdet_parse_dt(struct mt6359_accdet *priv)
{
- int ret;
struct device *dev = priv->dev;
struct device_node *node = NULL;
- unsigned int tmp = 0;
node = of_get_child_by_name(dev->parent->of_node, "accdet");
if (!node)
@@ -497,16 +441,6 @@ static int mt6359_accdet_parse_dt(struct mt6359_accdet *priv)
priv->data->hp_eint_high = of_property_read_bool(node, "mediatek,hp-eint-high");
- ret = of_property_read_u32(node, "mediatek,eint-num", &tmp);
- if (ret)
- tmp = 0;
- if (tmp == 0)
- priv->caps |= ACCDET_PMIC_EINT0;
- else if (tmp == 1)
- priv->caps |= ACCDET_PMIC_EINT1;
- else if (tmp == 2)
- priv->caps |= ACCDET_PMIC_BI_EINT;
-
of_node_put(node);
dev_warn(priv->dev, "accdet caps=%x\n", priv->caps);
@@ -520,13 +454,8 @@ static void config_digital_init_by_mode(struct mt6359_accdet *priv)
(ACCDET_EINT_CMPMEN_PWM_WIDTH_400MS << 4 |
ACCDET_EINT_CMPMEN_PWM_THRESH_2MS));
/* DA signal stable */
- if (priv->caps & ACCDET_PMIC_EINT0) {
- regmap_write(priv->regmap, ACCDET_DA_STABLE_ADDR,
- ACCDET_EINT0_STABLE_VAL);
- } else if (priv->caps & ACCDET_PMIC_EINT1) {
- regmap_write(priv->regmap, ACCDET_DA_STABLE_ADDR,
- ACCDET_EINT1_STABLE_VAL);
- }
+ regmap_write(priv->regmap, ACCDET_DA_STABLE_ADDR,
+ ACCDET_EINT0_STABLE_VAL);
/* after receive n+1 number, interrupt issued. */
regmap_update_bits(priv->regmap, ACCDET_EINT_M_PLUG_IN_NUM_ADDR,
ACCDET_EINT_M_PLUG_IN_NUM_MASK_SFT,
@@ -543,17 +472,9 @@ static void config_digital_init_by_mode(struct mt6359_accdet *priv)
/* enable PWM */
regmap_write(priv->regmap, ACCDET_CMP_PWM_EN_ADDR, 0x67);
/* enable inverter detection */
- if (priv->caps & ACCDET_PMIC_EINT0) {
- regmap_update_bits(priv->regmap,
- ACCDET_EINT0_INVERTER_SW_EN_ADDR,
- ACCDET_EINT0_INVERTER_SW_EN_MASK_SFT,
- BIT(ACCDET_EINT0_INVERTER_SW_EN_SFT));
- } else if (priv->caps & ACCDET_PMIC_EINT1) {
- regmap_update_bits(priv->regmap,
- ACCDET_EINT1_INVERTER_SW_EN_ADDR,
- ACCDET_EINT1_INVERTER_SW_EN_MASK_SFT,
- BIT(ACCDET_EINT1_INVERTER_SW_EN_SFT));
- }
+ regmap_update_bits(priv->regmap, ACCDET_EINT0_INVERTER_SW_EN_ADDR,
+ ACCDET_EINT0_INVERTER_SW_EN_MASK_SFT,
+ BIT(ACCDET_EINT0_INVERTER_SW_EN_SFT));
if (priv->data->hp_eint_high) {
/* EINT polarity inverse */
@@ -571,13 +492,8 @@ static void config_eint_init_by_mode(struct mt6359_accdet *priv)
{
unsigned int val = 0;
- if (priv->caps & ACCDET_PMIC_EINT0) {
- regmap_update_bits(priv->regmap, RG_EINT0EN_ADDR,
- RG_EINT0EN_MASK_SFT, BIT(RG_EINT0EN_SFT));
- } else if (priv->caps & ACCDET_PMIC_EINT1) {
- regmap_update_bits(priv->regmap, RG_EINT1EN_ADDR,
- RG_EINT1EN_MASK_SFT, BIT(RG_EINT1EN_SFT));
- }
+ regmap_update_bits(priv->regmap, RG_EINT0EN_ADDR, RG_EINT0EN_MASK_SFT,
+ BIT(RG_EINT0EN_SFT));
/* ESD switches on */
regmap_update_bits(priv->regmap, RG_ACCDETSPARE_ADDR,
1 << 8, 1 << 8);
@@ -727,35 +643,18 @@ static int mt6359_accdet_probe(struct platform_device *pdev)
}
}
- if (priv->caps & ACCDET_PMIC_EINT0) {
- priv->accdet_eint0 = platform_get_irq(pdev, 1);
- if (priv->accdet_eint0 >= 0) {
- ret = devm_request_threaded_irq(&pdev->dev,
- priv->accdet_eint0,
- NULL, mt6359_accdet_irq,
- IRQF_TRIGGER_HIGH | IRQF_ONESHOT,
- "ACCDET_EINT0", priv);
- if (ret) {
- dev_err(&pdev->dev,
- "Failed to request eint0 IRQ (%d)\n",
- ret);
- return ret;
- }
- }
- } else if (priv->caps & ACCDET_PMIC_EINT1) {
- priv->accdet_eint1 = platform_get_irq(pdev, 2);
- if (priv->accdet_eint1 >= 0) {
- ret = devm_request_threaded_irq(&pdev->dev,
- priv->accdet_eint1,
- NULL, mt6359_accdet_irq,
- IRQF_TRIGGER_HIGH | IRQF_ONESHOT,
- "ACCDET_EINT1", priv);
- if (ret) {
- dev_err(&pdev->dev,
- "Failed to request eint1 IRQ (%d)\n",
- ret);
- return ret;
- }
+ priv->accdet_eint0 = platform_get_irq(pdev, 1);
+ if (priv->accdet_eint0 >= 0) {
+ ret = devm_request_threaded_irq(&pdev->dev,
+ priv->accdet_eint0,
+ NULL, mt6359_accdet_irq,
+ IRQF_TRIGGER_HIGH | IRQF_ONESHOT,
+ "ACCDET_EINT0", priv);
+ if (ret) {
+ dev_err(&pdev->dev,
+ "Failed to request eint0 IRQ (%d)\n",
+ ret);
+ return ret;
}
}
@@ -58,7 +58,6 @@ struct mt6359_accdet {
unsigned int caps;
int accdet_irq;
int accdet_eint0;
- int accdet_eint1;
struct mutex res_lock; /* lock protection */
bool jack_plugged;
unsigned int jack_type;