| From foo@baz Tue Oct 16 12:20:44 CEST 2018 |
| From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> |
| Date: Wed, 22 Aug 2018 22:49:36 -0500 |
| Subject: ASoC: wm8804: Add ACPI support |
| |
| From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> |
| |
| [ Upstream commit 960cdd50ca9fdfeb82c2757107bcb7f93c8d7d41 ] |
| |
| HID made of either Wolfson/CirrusLogic PCI ID + 8804 identifier. |
| |
| This helps enumerate the HifiBerry Digi+ HAT boards on the Up2 platform. |
| |
| The scripts at https://github.com/thesofproject/acpi-scripts can be |
| used to add the ACPI initrd overlays. |
| |
| Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> |
| Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| sound/soc/codecs/wm8804-i2c.c | 15 ++++++++++++++- |
| 1 file changed, 14 insertions(+), 1 deletion(-) |
| |
| --- a/sound/soc/codecs/wm8804-i2c.c |
| +++ b/sound/soc/codecs/wm8804-i2c.c |
| @@ -13,6 +13,7 @@ |
| #include <linux/init.h> |
| #include <linux/module.h> |
| #include <linux/i2c.h> |
| +#include <linux/acpi.h> |
| |
| #include "wm8804.h" |
| |
| @@ -40,17 +41,29 @@ static const struct i2c_device_id wm8804 |
| }; |
| MODULE_DEVICE_TABLE(i2c, wm8804_i2c_id); |
| |
| +#if defined(CONFIG_OF) |
| static const struct of_device_id wm8804_of_match[] = { |
| { .compatible = "wlf,wm8804", }, |
| { } |
| }; |
| MODULE_DEVICE_TABLE(of, wm8804_of_match); |
| +#endif |
| + |
| +#ifdef CONFIG_ACPI |
| +static const struct acpi_device_id wm8804_acpi_match[] = { |
| + { "1AEC8804", 0 }, /* Wolfson PCI ID + part ID */ |
| + { "10138804", 0 }, /* Cirrus Logic PCI ID + part ID */ |
| + { }, |
| +}; |
| +MODULE_DEVICE_TABLE(acpi, wm8804_acpi_match); |
| +#endif |
| |
| static struct i2c_driver wm8804_i2c_driver = { |
| .driver = { |
| .name = "wm8804", |
| .pm = &wm8804_pm, |
| - .of_match_table = wm8804_of_match, |
| + .of_match_table = of_match_ptr(wm8804_of_match), |
| + .acpi_match_table = ACPI_PTR(wm8804_acpi_match), |
| }, |
| .probe = wm8804_i2c_probe, |
| .remove = wm8804_i2c_remove, |