Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cc47aed9 authored by Inha Song's avatar Inha Song Committed by Lee Jones
Browse files

mfd: arizona: Add support for INn_Mode register control



Some boards need to set the INn_MODE[1:0] register to change
the input signal patch. This wlf,inmode property is optional.
If present, values must be specified less than or equal to
the number of input singals. If values less than the number
of input signals, elements that has not been specifed are set
to 0 by default.

Example:
   - wlf,inmode = <2 0 2>;	/* IN1, IN3 use DMIC */

Signed-off-by: default avatarInha Song <ideal.song@samsung.com>
Reviewed-by: default avatarCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent c24084db
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -534,7 +534,11 @@ EXPORT_SYMBOL_GPL(arizona_of_get_named_gpio);
static int arizona_of_get_core_pdata(struct arizona *arizona)
{
	struct arizona_pdata *pdata = &arizona->pdata;
	struct property *prop;
	const __be32 *cur;
	u32 val;
	int ret, i;
	int count = 0;

	pdata->reset = arizona_of_get_named_gpio(arizona, "wlf,reset", true);

@@ -560,6 +564,15 @@ static int arizona_of_get_core_pdata(struct arizona *arizona)
			ret);
	}

	of_property_for_each_u32(arizona->dev->of_node, "wlf,inmode", prop,
				 cur, val) {
		if (count == ARRAY_SIZE(arizona->pdata.inmode))
			break;

		arizona->pdata.inmode[count] = val;
		count++;
	}

	return 0;
}