aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-s3c64xx
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-10-17 04:41:08 -0400
committerKukjin Kim <kgene.kim@samsung.com>2012-10-17 04:41:08 -0400
commitb23bc66c394844ec6e64b3df070573db2cf898e8 (patch)
treee7a3376d92e1d3b4fe29b533b60f9682081f9ead /arch/arm/mach-s3c64xx
parent64aecb4a14f084f4c74cc1a0e0a3d223232e630a (diff)
ARM: S3C64XX: Handle new Amrut modules on Cragganmore
These use a different GPIO for the jack polarity selection. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/mach-s3c64xx')
-rw-r--r--arch/arm/mach-s3c64xx/mach-crag6410-module.c35
1 files changed, 32 insertions, 3 deletions
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410-module.c b/arch/arm/mach-s3c64xx/mach-crag6410-module.c
index 15e0c13dad5a..a6c156def7cc 100644
--- a/arch/arm/mach-s3c64xx/mach-crag6410-module.c
+++ b/arch/arm/mach-s3c64xx/mach-crag6410-module.c
@@ -187,12 +187,13 @@ static struct regulator_init_data wm8994_ldo2 = {
187 187
188static struct wm8994_pdata wm8994_pdata = { 188static struct wm8994_pdata wm8994_pdata = {
189 .gpio_base = CODEC_GPIO_BASE, 189 .gpio_base = CODEC_GPIO_BASE,
190 .micb2_delay = 150,
190 .gpio_defaults = { 191 .gpio_defaults = {
191 0x3, /* IRQ out, active high, CMOS */ 192 0x3, /* IRQ out, active high, CMOS */
192 }, 193 },
193 .ldo = { 194 .ldo = {
194 { .init_data = &wm8994_ldo1, }, 195 { .enable = S3C64XX_GPN(6), .init_data = &wm8994_ldo1, },
195 { .init_data = &wm8994_ldo2, }, 196 { .enable = S3C64XX_GPN(4), .init_data = &wm8994_ldo2, },
196 }, 197 },
197}; 198};
198 199
@@ -203,7 +204,7 @@ static const struct i2c_board_info wm1277_devs[] = {
203 }, 204 },
204}; 205};
205 206
206static struct arizona_pdata wm5102_pdata = { 207static struct arizona_pdata wm5102_reva_pdata = {
207 .ldoena = S3C64XX_GPN(7), 208 .ldoena = S3C64XX_GPN(7),
208 .gpio_base = CODEC_GPIO_BASE, 209 .gpio_base = CODEC_GPIO_BASE,
209 .irq_active_high = true, 210 .irq_active_high = true,
@@ -218,6 +219,31 @@ static struct s3c64xx_spi_csinfo wm5102_spi_csinfo = {
218 .line = S3C64XX_GPN(5), 219 .line = S3C64XX_GPN(5),
219}; 220};
220 221
222static struct spi_board_info wm5102_reva_spi_devs[] = {
223 [0] = {
224 .modalias = "wm5102",
225 .max_speed_hz = 10 * 1000 * 1000,
226 .bus_num = 0,
227 .chip_select = 1,
228 .mode = SPI_MODE_0,
229 .irq = GLENFARCLAS_PMIC_IRQ_BASE +
230 WM831X_IRQ_GPIO_2,
231 .controller_data = &wm5102_spi_csinfo,
232 .platform_data = &wm5102_reva_pdata,
233 },
234};
235
236static struct arizona_pdata wm5102_pdata = {
237 .ldoena = S3C64XX_GPN(7),
238 .gpio_base = CODEC_GPIO_BASE,
239 .irq_active_high = true,
240 .micd_pol_gpio = CODEC_GPIO_BASE + 2,
241 .gpio_defaults = {
242 [2] = 0x10000, /* AIF3TXLRCLK */
243 [3] = 0x4, /* OPCLK */
244 },
245};
246
221static struct spi_board_info wm5102_spi_devs[] = { 247static struct spi_board_info wm5102_spi_devs[] = {
222 [0] = { 248 [0] = {
223 .modalias = "wm5102", 249 .modalias = "wm5102",
@@ -278,6 +304,9 @@ static __devinitdata const struct {
278 { .id = 0x3c, .rev = 0xff, .name = "1273-EV1 Longmorn" }, 304 { .id = 0x3c, .rev = 0xff, .name = "1273-EV1 Longmorn" },
279 { .id = 0x3d, .rev = 0xff, .name = "1277-EV1 Littlemill", 305 { .id = 0x3d, .rev = 0xff, .name = "1277-EV1 Littlemill",
280 .i2c_devs = wm1277_devs, .num_i2c_devs = ARRAY_SIZE(wm1277_devs) }, 306 .i2c_devs = wm1277_devs, .num_i2c_devs = ARRAY_SIZE(wm1277_devs) },
307 { .id = 0x3e, .rev = 0, .name = "WM5102-6271-EV1-CS127 Amrut",
308 .spi_devs = wm5102_reva_spi_devs,
309 .num_spi_devs = ARRAY_SIZE(wm5102_reva_spi_devs) },
281 { .id = 0x3e, .rev = -1, .name = "WM5102-6271-EV1-CS127 Amrut", 310 { .id = 0x3e, .rev = -1, .name = "WM5102-6271-EV1-CS127 Amrut",
282 .spi_devs = wm5102_spi_devs, 311 .spi_devs = wm5102_spi_devs,
283 .num_spi_devs = ARRAY_SIZE(wm5102_spi_devs) }, 312 .num_spi_devs = ARRAY_SIZE(wm5102_spi_devs) },