diff options
author | Olof Johansson <olof@lixom.net> | 2012-09-29 14:28:41 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2012-09-29 14:28:41 -0400 |
commit | 6590147b629949a2eba247b021e4ad0461c5e847 (patch) | |
tree | 69679e660f8882ca8432e42a142d13d086ad14e1 | |
parent | 5698bd757d55b1bb87edd1a9744ab09c142abfc2 (diff) | |
parent | fae9659a2cabcdaa01ea5a87568677e5cb037478 (diff) |
Merge branch 'samsung/boards' into next/dt2
* samsung/boards:
ARM: EXYNOS: Add generic PWM lookup support for SMDKV310
ARM: EXYNOS: Add generic PWM lookup support for SMDK4X12
ARM: EXYNOS: Use generic pwm driver in Origen board
ARM: dts: Add heartbeat gpio-leds support to Origen
ARM: dts: Use active low flag for gpio-keys on Origen
ARM: S3C64XX: Register audio platform devices for Bells on Cragganmore
ARM: S3C64XX: Update configuration for WM5102 module on Cragganmore
Add/add conflict in arch/arm/mach-exynos/mach-smdkv310.c.
Signed-off-by: Olof Johansson <olof@lixom.net>
-rw-r--r-- | arch/arm/boot/dts/exynos4210-origen.dts | 18 | ||||
-rw-r--r-- | arch/arm/mach-exynos/Kconfig | 3 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-origen.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-smdk4x12.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-smdkv310.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-s3c64xx/mach-crag6410-module.c | 36 | ||||
-rw-r--r-- | arch/arm/mach-s3c64xx/mach-crag6410.c | 12 |
7 files changed, 78 insertions, 10 deletions
diff --git a/arch/arm/boot/dts/exynos4210-origen.dts b/arch/arm/boot/dts/exynos4210-origen.dts index 0c49caa09978..d69a7999a12b 100644 --- a/arch/arm/boot/dts/exynos4210-origen.dts +++ b/arch/arm/boot/dts/exynos4210-origen.dts | |||
@@ -62,35 +62,43 @@ | |||
62 | 62 | ||
63 | up { | 63 | up { |
64 | label = "Up"; | 64 | label = "Up"; |
65 | gpios = <&gpx2 0 0 0 2>; | 65 | gpios = <&gpx2 0 0 0x10000 2>; |
66 | linux,code = <103>; | 66 | linux,code = <103>; |
67 | }; | 67 | }; |
68 | 68 | ||
69 | down { | 69 | down { |
70 | label = "Down"; | 70 | label = "Down"; |
71 | gpios = <&gpx2 1 0 0 2>; | 71 | gpios = <&gpx2 1 0 0x10000 2>; |
72 | linux,code = <108>; | 72 | linux,code = <108>; |
73 | }; | 73 | }; |
74 | 74 | ||
75 | back { | 75 | back { |
76 | label = "Back"; | 76 | label = "Back"; |
77 | gpios = <&gpx1 7 0 0 2>; | 77 | gpios = <&gpx1 7 0 0x10000 2>; |
78 | linux,code = <158>; | 78 | linux,code = <158>; |
79 | }; | 79 | }; |
80 | 80 | ||
81 | home { | 81 | home { |
82 | label = "Home"; | 82 | label = "Home"; |
83 | gpios = <&gpx1 6 0 0 2>; | 83 | gpios = <&gpx1 6 0 0x10000 2>; |
84 | linux,code = <102>; | 84 | linux,code = <102>; |
85 | }; | 85 | }; |
86 | 86 | ||
87 | menu { | 87 | menu { |
88 | label = "Menu"; | 88 | label = "Menu"; |
89 | gpios = <&gpx1 5 0 0 2>; | 89 | gpios = <&gpx1 5 0 0x10000 2>; |
90 | linux,code = <139>; | 90 | linux,code = <139>; |
91 | }; | 91 | }; |
92 | }; | 92 | }; |
93 | 93 | ||
94 | leds { | ||
95 | compatible = "gpio-leds"; | ||
96 | status { | ||
97 | gpios = <&gpx1 3 0 0x10000 2>; | ||
98 | linux,default-trigger = "heartbeat"; | ||
99 | }; | ||
100 | }; | ||
101 | |||
94 | keypad@100A0000 { | 102 | keypad@100A0000 { |
95 | status = "disabled"; | 103 | status = "disabled"; |
96 | }; | 104 | }; |
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig index b5b4c8c9db11..7ec64c8c9917 100644 --- a/arch/arm/mach-exynos/Kconfig +++ b/arch/arm/mach-exynos/Kconfig | |||
@@ -221,6 +221,7 @@ config MACH_SMDKV310 | |||
221 | select EXYNOS4_SETUP_KEYPAD | 221 | select EXYNOS4_SETUP_KEYPAD |
222 | select EXYNOS4_SETUP_SDHCI | 222 | select EXYNOS4_SETUP_SDHCI |
223 | select EXYNOS4_SETUP_USB_PHY | 223 | select EXYNOS4_SETUP_USB_PHY |
224 | select S3C24XX_PWM | ||
224 | help | 225 | help |
225 | Machine support for Samsung SMDKV310 | 226 | Machine support for Samsung SMDKV310 |
226 | 227 | ||
@@ -348,6 +349,7 @@ config MACH_ORIGEN | |||
348 | select EXYNOS4_SETUP_FIMD0 | 349 | select EXYNOS4_SETUP_FIMD0 |
349 | select EXYNOS4_SETUP_SDHCI | 350 | select EXYNOS4_SETUP_SDHCI |
350 | select EXYNOS4_SETUP_USB_PHY | 351 | select EXYNOS4_SETUP_USB_PHY |
352 | select S3C24XX_PWM | ||
351 | help | 353 | help |
352 | Machine support for ORIGEN based on Samsung EXYNOS4210 | 354 | Machine support for ORIGEN based on Samsung EXYNOS4210 |
353 | 355 | ||
@@ -383,6 +385,7 @@ config MACH_SMDK4212 | |||
383 | select EXYNOS4_SETUP_KEYPAD | 385 | select EXYNOS4_SETUP_KEYPAD |
384 | select EXYNOS4_SETUP_SDHCI | 386 | select EXYNOS4_SETUP_SDHCI |
385 | select EXYNOS4_SETUP_USB_PHY | 387 | select EXYNOS4_SETUP_USB_PHY |
388 | select S3C24XX_PWM | ||
386 | help | 389 | help |
387 | Machine support for Samsung SMDK4212 | 390 | Machine support for Samsung SMDK4212 |
388 | 391 | ||
diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c index 4e574c24581c..b45600fcf73e 100644 --- a/arch/arm/mach-exynos/mach-origen.c +++ b/arch/arm/mach-exynos/mach-origen.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
16 | #include <linux/io.h> | 16 | #include <linux/io.h> |
17 | #include <linux/input.h> | 17 | #include <linux/input.h> |
18 | #include <linux/pwm.h> | ||
18 | #include <linux/pwm_backlight.h> | 19 | #include <linux/pwm_backlight.h> |
19 | #include <linux/gpio_keys.h> | 20 | #include <linux/gpio_keys.h> |
20 | #include <linux/i2c.h> | 21 | #include <linux/i2c.h> |
@@ -614,6 +615,10 @@ static struct platform_device origen_lcd_hv070wsa = { | |||
614 | .dev.platform_data = &origen_lcd_hv070wsa_data, | 615 | .dev.platform_data = &origen_lcd_hv070wsa_data, |
615 | }; | 616 | }; |
616 | 617 | ||
618 | static struct pwm_lookup origen_pwm_lookup[] = { | ||
619 | PWM_LOOKUP("s3c24xx-pwm.0", 0, "pwm-backlight.0", NULL), | ||
620 | }; | ||
621 | |||
617 | #ifdef CONFIG_DRM_EXYNOS | 622 | #ifdef CONFIG_DRM_EXYNOS |
618 | static struct exynos_drm_fimd_pdata drm_fimd_pdata = { | 623 | static struct exynos_drm_fimd_pdata drm_fimd_pdata = { |
619 | .panel = { | 624 | .panel = { |
@@ -798,6 +803,7 @@ static void __init origen_machine_init(void) | |||
798 | 803 | ||
799 | platform_add_devices(origen_devices, ARRAY_SIZE(origen_devices)); | 804 | platform_add_devices(origen_devices, ARRAY_SIZE(origen_devices)); |
800 | 805 | ||
806 | pwm_add_table(origen_pwm_lookup, ARRAY_SIZE(origen_pwm_lookup)); | ||
801 | samsung_bl_set(&origen_bl_gpio_info, &origen_bl_data); | 807 | samsung_bl_set(&origen_bl_gpio_info, &origen_bl_data); |
802 | 808 | ||
803 | origen_bt_setup(); | 809 | origen_bt_setup(); |
diff --git a/arch/arm/mach-exynos/mach-smdk4x12.c b/arch/arm/mach-exynos/mach-smdk4x12.c index b26beb13ebef..81bf59c6f4bf 100644 --- a/arch/arm/mach-exynos/mach-smdk4x12.c +++ b/arch/arm/mach-exynos/mach-smdk4x12.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/mfd/max8997.h> | 17 | #include <linux/mfd/max8997.h> |
18 | #include <linux/mmc/host.h> | 18 | #include <linux/mmc/host.h> |
19 | #include <linux/platform_device.h> | 19 | #include <linux/platform_device.h> |
20 | #include <linux/pwm.h> | ||
20 | #include <linux/pwm_backlight.h> | 21 | #include <linux/pwm_backlight.h> |
21 | #include <linux/regulator/machine.h> | 22 | #include <linux/regulator/machine.h> |
22 | #include <linux/serial_core.h> | 23 | #include <linux/serial_core.h> |
@@ -222,6 +223,10 @@ static struct platform_pwm_backlight_data smdk4x12_bl_data = { | |||
222 | .pwm_period_ns = 1000, | 223 | .pwm_period_ns = 1000, |
223 | }; | 224 | }; |
224 | 225 | ||
226 | static struct pwm_lookup smdk4x12_pwm_lookup[] = { | ||
227 | PWM_LOOKUP("s3c24xx-pwm.1", 0, "pwm-backlight.0", NULL), | ||
228 | }; | ||
229 | |||
225 | static uint32_t smdk4x12_keymap[] __initdata = { | 230 | static uint32_t smdk4x12_keymap[] __initdata = { |
226 | /* KEY(row, col, keycode) */ | 231 | /* KEY(row, col, keycode) */ |
227 | KEY(1, 3, KEY_1), KEY(1, 4, KEY_2), KEY(1, 5, KEY_3), | 232 | KEY(1, 3, KEY_1), KEY(1, 4, KEY_2), KEY(1, 5, KEY_3), |
@@ -349,6 +354,7 @@ static void __init smdk4x12_machine_init(void) | |||
349 | ARRAY_SIZE(smdk4x12_i2c_devs7)); | 354 | ARRAY_SIZE(smdk4x12_i2c_devs7)); |
350 | 355 | ||
351 | samsung_bl_set(&smdk4x12_bl_gpio_info, &smdk4x12_bl_data); | 356 | samsung_bl_set(&smdk4x12_bl_gpio_info, &smdk4x12_bl_data); |
357 | pwm_add_table(smdk4x12_pwm_lookup, ARRAY_SIZE(smdk4x12_pwm_lookup)); | ||
352 | 358 | ||
353 | samsung_keypad_set_platdata(&smdk4x12_keypad_data); | 359 | samsung_keypad_set_platdata(&smdk4x12_keypad_data); |
354 | 360 | ||
diff --git a/arch/arm/mach-exynos/mach-smdkv310.c b/arch/arm/mach-exynos/mach-smdkv310.c index 73f2bce097e1..12a1db29e1a1 100644 --- a/arch/arm/mach-exynos/mach-smdkv310.c +++ b/arch/arm/mach-exynos/mach-smdkv310.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/io.h> | 18 | #include <linux/io.h> |
19 | #include <linux/i2c.h> | 19 | #include <linux/i2c.h> |
20 | #include <linux/input.h> | 20 | #include <linux/input.h> |
21 | #include <linux/pwm.h> | ||
21 | #include <linux/pwm_backlight.h> | 22 | #include <linux/pwm_backlight.h> |
22 | #include <linux/platform_data/s3c-hsotg.h> | 23 | #include <linux/platform_data/s3c-hsotg.h> |
23 | 24 | ||
@@ -360,6 +361,10 @@ static struct i2c_board_info hdmiphy_info = { | |||
360 | I2C_BOARD_INFO("hdmiphy-exynos4210", 0x38), | 361 | I2C_BOARD_INFO("hdmiphy-exynos4210", 0x38), |
361 | }; | 362 | }; |
362 | 363 | ||
364 | static struct pwm_lookup smdkv310_pwm_lookup[] = { | ||
365 | PWM_LOOKUP("s3c24xx-pwm.1", 0, "pwm-backlight.0", NULL), | ||
366 | }; | ||
367 | |||
363 | static void s5p_tv_setup(void) | 368 | static void s5p_tv_setup(void) |
364 | { | 369 | { |
365 | /* direct HPD to HDMI chip */ | 370 | /* direct HPD to HDMI chip */ |
@@ -399,6 +404,8 @@ static void __init smdkv310_machine_init(void) | |||
399 | samsung_keypad_set_platdata(&smdkv310_keypad_data); | 404 | samsung_keypad_set_platdata(&smdkv310_keypad_data); |
400 | 405 | ||
401 | samsung_bl_set(&smdkv310_bl_gpio_info, &smdkv310_bl_data); | 406 | samsung_bl_set(&smdkv310_bl_gpio_info, &smdkv310_bl_data); |
407 | pwm_add_table(smdkv310_pwm_lookup, ARRAY_SIZE(smdkv310_pwm_lookup)); | ||
408 | |||
402 | #ifdef CONFIG_DRM_EXYNOS | 409 | #ifdef CONFIG_DRM_EXYNOS |
403 | s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata; | 410 | s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata; |
404 | exynos4_fimd0_gpio_setup_24bpp(); | 411 | exynos4_fimd0_gpio_setup_24bpp(); |
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, |
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-s3c64xx/mach-crag6410.c index 09cd81207a3f..a095f7f6009d 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410.c | |||
@@ -287,6 +287,16 @@ static struct platform_device littlemill_device = { | |||
287 | .id = -1, | 287 | .id = -1, |
288 | }; | 288 | }; |
289 | 289 | ||
290 | static struct platform_device bells_wm5102_device = { | ||
291 | .name = "bells", | ||
292 | .id = 0, | ||
293 | }; | ||
294 | |||
295 | static struct platform_device bells_wm5110_device = { | ||
296 | .name = "bells", | ||
297 | .id = 1, | ||
298 | }; | ||
299 | |||
290 | static struct regulator_consumer_supply wallvdd_consumers[] = { | 300 | static struct regulator_consumer_supply wallvdd_consumers[] = { |
291 | REGULATOR_SUPPLY("SPKVDD", "1-001a"), | 301 | REGULATOR_SUPPLY("SPKVDD", "1-001a"), |
292 | REGULATOR_SUPPLY("SPKVDD1", "1-001a"), | 302 | REGULATOR_SUPPLY("SPKVDD1", "1-001a"), |
@@ -359,6 +369,8 @@ static struct platform_device *crag6410_devices[] __initdata = { | |||
359 | &tobermory_device, | 369 | &tobermory_device, |
360 | &littlemill_device, | 370 | &littlemill_device, |
361 | &lowland_device, | 371 | &lowland_device, |
372 | &bells_wm5102_device, | ||
373 | &bells_wm5110_device, | ||
362 | &wallvdd_device, | 374 | &wallvdd_device, |
363 | }; | 375 | }; |
364 | 376 | ||