|
@@ -9,6 +9,7 @@
|
|
|
#include <linux/interrupt.h>
|
|
|
#include <linux/i2c.h>
|
|
|
#include <linux/spi/spi.h>
|
|
|
+#include <linux/gpio/machine.h>
|
|
|
|
|
|
#include <linux/mfd/wm831x/irq.h>
|
|
|
#include <linux/mfd/wm831x/gpio.h>
|
|
@@ -206,9 +207,6 @@ static const struct i2c_board_info wm1277_devs[] = {
|
|
|
};
|
|
|
|
|
|
static struct arizona_pdata wm5102_reva_pdata = {
|
|
|
- .ldo1 = {
|
|
|
- .ldoena = S3C64XX_GPN(7),
|
|
|
- },
|
|
|
.gpio_base = CODEC_GPIO_BASE,
|
|
|
.irq_flags = IRQF_TRIGGER_HIGH,
|
|
|
.micd_pol_gpio = CODEC_GPIO_BASE + 4,
|
|
@@ -237,10 +235,16 @@ static struct spi_board_info wm5102_reva_spi_devs[] = {
|
|
|
},
|
|
|
};
|
|
|
|
|
|
-static struct arizona_pdata wm5102_pdata = {
|
|
|
- .ldo1 = {
|
|
|
- .ldoena = S3C64XX_GPN(7),
|
|
|
+static struct gpiod_lookup_table wm5102_reva_gpiod_table = {
|
|
|
+ .dev_id = "spi0.1", /* SPI device name */
|
|
|
+ .table = {
|
|
|
+ GPIO_LOOKUP("GPION", 7,
|
|
|
+ "wlf,ldoena", GPIO_ACTIVE_HIGH),
|
|
|
+ { },
|
|
|
},
|
|
|
+};
|
|
|
+
|
|
|
+static struct arizona_pdata wm5102_pdata = {
|
|
|
.gpio_base = CODEC_GPIO_BASE,
|
|
|
.irq_flags = IRQF_TRIGGER_HIGH,
|
|
|
.micd_pol_gpio = CODEC_GPIO_BASE + 2,
|
|
@@ -264,6 +268,15 @@ static struct spi_board_info wm5102_spi_devs[] = {
|
|
|
},
|
|
|
};
|
|
|
|
|
|
+static struct gpiod_lookup_table wm5102_gpiod_table = {
|
|
|
+ .dev_id = "spi0.1", /* SPI device name */
|
|
|
+ .table = {
|
|
|
+ GPIO_LOOKUP("GPION", 7,
|
|
|
+ "wlf,ldo1ena", GPIO_ACTIVE_HIGH),
|
|
|
+ { },
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
static struct spi_board_info wm5110_spi_devs[] = {
|
|
|
[0] = {
|
|
|
.modalias = "wm5110",
|
|
@@ -366,6 +379,9 @@ static int wlf_gf_module_probe(struct i2c_client *i2c,
|
|
|
rev == gf_mods[i].rev))
|
|
|
break;
|
|
|
|
|
|
+ gpiod_add_lookup_table(&wm5102_reva_gpiod_table);
|
|
|
+ gpiod_add_lookup_table(&wm5102_gpiod_table);
|
|
|
+
|
|
|
if (i < ARRAY_SIZE(gf_mods)) {
|
|
|
dev_info(&i2c->dev, "%s revision %d\n",
|
|
|
gf_mods[i].name, rev + 1);
|