diff options
Diffstat (limited to 'arch/arm/mach-s3c64xx/mach-crag6410-module.c')
-rw-r--r-- | arch/arm/mach-s3c64xx/mach-crag6410-module.c | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410-module.c b/arch/arm/mach-s3c64xx/mach-crag6410-module.c index 9e382e7c77cb..7f4f9ebee25d 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410-module.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410-module.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/mfd/wm831x/irq.h> | 16 | #include <linux/mfd/wm831x/irq.h> |
17 | #include <linux/mfd/wm831x/gpio.h> | 17 | #include <linux/mfd/wm831x/gpio.h> |
18 | #include <linux/mfd/wm8994/pdata.h> | 18 | #include <linux/mfd/wm8994/pdata.h> |
19 | #include <linux/mfd/arizona/pdata.h> | ||
19 | 20 | ||
20 | #include <linux/regulator/machine.h> | 21 | #include <linux/regulator/machine.h> |
21 | 22 | ||
@@ -181,9 +182,33 @@ static const struct i2c_board_info wm1277_devs[] = { | |||
181 | }, | 182 | }, |
182 | }; | 183 | }; |
183 | 184 | ||
184 | static const struct i2c_board_info wm5102_devs[] = { | 185 | static struct arizona_pdata wm5102_pdata = { |
185 | { I2C_BOARD_INFO("wm5102", 0x1a), | 186 | .ldoena = S3C64XX_GPN(7), |
186 | .irq = GLENFARCLAS_PMIC_IRQ_BASE + WM831X_IRQ_GPIO_2, }, | 187 | .gpio_base = CODEC_GPIO_BASE, |
188 | .irq_active_high = true, | ||
189 | .micd_pol_gpio = CODEC_GPIO_BASE + 4, | ||
190 | .gpio_defaults = { | ||
191 | [2] = 0x10000, /* AIF3TXLRCLK */ | ||
192 | [3] = 0x4, /* OPCLK */ | ||
193 | }, | ||
194 | }; | ||
195 | |||
196 | static struct s3c64xx_spi_csinfo wm5102_spi_csinfo = { | ||
197 | .line = S3C64XX_GPN(5), | ||
198 | }; | ||
199 | |||
200 | static struct spi_board_info wm5102_spi_devs[] = { | ||
201 | [0] = { | ||
202 | .modalias = "wm5102", | ||
203 | .max_speed_hz = 10 * 1000 * 1000, | ||
204 | .bus_num = 0, | ||
205 | .chip_select = 0, | ||
206 | .mode = SPI_MODE_0, | ||
207 | .irq = GLENFARCLAS_PMIC_IRQ_BASE + | ||
208 | WM831X_IRQ_GPIO_2, | ||
209 | .controller_data = &wm5102_spi_csinfo, | ||
210 | .platform_data = &wm5102_pdata, | ||
211 | }, | ||
187 | }; | 212 | }; |
188 | 213 | ||
189 | static const struct i2c_board_info wm6230_i2c_devs[] = { | 214 | static const struct i2c_board_info wm6230_i2c_devs[] = { |
@@ -223,8 +248,9 @@ static __devinitdata const struct { | |||
223 | { .id = 0x3c, .name = "1273-EV1 Longmorn" }, | 248 | { .id = 0x3c, .name = "1273-EV1 Longmorn" }, |
224 | { .id = 0x3d, .name = "1277-EV1 Littlemill", | 249 | { .id = 0x3d, .name = "1277-EV1 Littlemill", |
225 | .i2c_devs = wm1277_devs, .num_i2c_devs = ARRAY_SIZE(wm1277_devs) }, | 250 | .i2c_devs = wm1277_devs, .num_i2c_devs = ARRAY_SIZE(wm1277_devs) }, |
226 | { .id = 0x3e, .name = "WM5102-6271-EV1-CS127", | 251 | { .id = 0x3e, .name = "WM5102-6271-EV1-CS127 Amrut", |
227 | .i2c_devs = wm5102_devs, .num_i2c_devs = ARRAY_SIZE(wm5102_devs) }, | 252 | .spi_devs = wm5102_spi_devs, |
253 | .num_spi_devs = ARRAY_SIZE(wm5102_spi_devs) }, | ||
228 | }; | 254 | }; |
229 | 255 | ||
230 | static __devinit int wlf_gf_module_probe(struct i2c_client *i2c, | 256 | static __devinit int wlf_gf_module_probe(struct i2c_client *i2c, |