[alsa-devel] [PATCH] ASoC: rt5670: set platform data by dmi
This patch set specific data according to dmi data.
Signed-off-by: Jin Yao yao.jin@intel.com Signed-off-by: Bard Liao bardliao@realtek.com --- sound/soc/codecs/rt5670.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)
diff --git a/sound/soc/codecs/rt5670.c b/sound/soc/codecs/rt5670.c index 8bf3a56..6074f04 100644 --- a/sound/soc/codecs/rt5670.c +++ b/sound/soc/codecs/rt5670.c @@ -18,6 +18,7 @@ #include <linux/platform_device.h> #include <linux/acpi.h> #include <linux/spi/spi.h> +#include <linux/dmi.h> #include <sound/core.h> #include <sound/pcm.h> #include <sound/pcm_params.h> @@ -2549,6 +2550,17 @@ static struct acpi_device_id rt5670_acpi_match[] = { MODULE_DEVICE_TABLE(acpi, rt5670_acpi_match); #endif
+static const struct dmi_system_id dmi_platform_data[] __initconst = { + { + .ident = "Intel Braswell", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"), + DMI_MATCH(DMI_BOARD_NAME, "Braswell CRB"), + }, + }, + {} +}; + static int rt5670_i2c_probe(struct i2c_client *i2c, const struct i2c_device_id *id) { @@ -2568,6 +2580,12 @@ static int rt5670_i2c_probe(struct i2c_client *i2c, if (pdata) rt5670->pdata = *pdata;
+ if (dmi_check_system(dmi_platform_data)) { + rt5670->pdata.dmic_en = true; + rt5670->pdata.dmic1_data_pin = RT5670_DMIC_DATA_IN2P; + rt5670->pdata.jd_mode = 1; + } + rt5670->regmap = devm_regmap_init_i2c(i2c, &rt5670_regmap); if (IS_ERR(rt5670->regmap)) { ret = PTR_ERR(rt5670->regmap);
On Fri, Dec 12, 2014 at 04:06:07PM +0800, Bard Liao wrote:
+static const struct dmi_system_id dmi_platform_data[] __initconst = {
- {
.ident = "Intel Braswell",
- if (dmi_check_system(dmi_platform_data)) {
rt5670->pdata.dmic_en = true;
rt5670->pdata.dmic1_data_pin = RT5670_DMIC_DATA_IN2P;
rt5670->pdata.jd_mode = 1;
- }
This table is called dmi_platform_data but really it seems to be a list of machine IDs to use for this Braswell reference design so it should have a name refelecting that.
participants (2)
-
Bard Liao
-
Mark Brown