Commit 6590147b authored by Olof Johansson's avatar Olof Johansson

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: default avatarOlof Johansson <olof@lixom.net>
parents 5698bd75 fae9659a
...@@ -62,35 +62,43 @@ gpio_keys { ...@@ -62,35 +62,43 @@ gpio_keys {
up { up {
label = "Up"; label = "Up";
gpios = <&gpx2 0 0 0 2>; gpios = <&gpx2 0 0 0x10000 2>;
linux,code = <103>; linux,code = <103>;
}; };
down { down {
label = "Down"; label = "Down";
gpios = <&gpx2 1 0 0 2>; gpios = <&gpx2 1 0 0x10000 2>;
linux,code = <108>; linux,code = <108>;
}; };
back { back {
label = "Back"; label = "Back";
gpios = <&gpx1 7 0 0 2>; gpios = <&gpx1 7 0 0x10000 2>;
linux,code = <158>; linux,code = <158>;
}; };
home { home {
label = "Home"; label = "Home";
gpios = <&gpx1 6 0 0 2>; gpios = <&gpx1 6 0 0x10000 2>;
linux,code = <102>; linux,code = <102>;
}; };
menu { menu {
label = "Menu"; label = "Menu";
gpios = <&gpx1 5 0 0 2>; gpios = <&gpx1 5 0 0x10000 2>;
linux,code = <139>; linux,code = <139>;
}; };
}; };
leds {
compatible = "gpio-leds";
status {
gpios = <&gpx1 3 0 0x10000 2>;
linux,default-trigger = "heartbeat";
};
};
keypad@100A0000 { keypad@100A0000 {
status = "disabled"; status = "disabled";
}; };
......
...@@ -221,6 +221,7 @@ config MACH_SMDKV310 ...@@ -221,6 +221,7 @@ config MACH_SMDKV310
select EXYNOS4_SETUP_KEYPAD select EXYNOS4_SETUP_KEYPAD
select EXYNOS4_SETUP_SDHCI select EXYNOS4_SETUP_SDHCI
select EXYNOS4_SETUP_USB_PHY select EXYNOS4_SETUP_USB_PHY
select S3C24XX_PWM
help help
Machine support for Samsung SMDKV310 Machine support for Samsung SMDKV310
...@@ -348,6 +349,7 @@ config MACH_ORIGEN ...@@ -348,6 +349,7 @@ config MACH_ORIGEN
select EXYNOS4_SETUP_FIMD0 select EXYNOS4_SETUP_FIMD0
select EXYNOS4_SETUP_SDHCI select EXYNOS4_SETUP_SDHCI
select EXYNOS4_SETUP_USB_PHY select EXYNOS4_SETUP_USB_PHY
select S3C24XX_PWM
help help
Machine support for ORIGEN based on Samsung EXYNOS4210 Machine support for ORIGEN based on Samsung EXYNOS4210
...@@ -383,6 +385,7 @@ config MACH_SMDK4212 ...@@ -383,6 +385,7 @@ config MACH_SMDK4212
select EXYNOS4_SETUP_KEYPAD select EXYNOS4_SETUP_KEYPAD
select EXYNOS4_SETUP_SDHCI select EXYNOS4_SETUP_SDHCI
select EXYNOS4_SETUP_USB_PHY select EXYNOS4_SETUP_USB_PHY
select S3C24XX_PWM
help help
Machine support for Samsung SMDK4212 Machine support for Samsung SMDK4212
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/input.h> #include <linux/input.h>
#include <linux/pwm.h>
#include <linux/pwm_backlight.h> #include <linux/pwm_backlight.h>
#include <linux/gpio_keys.h> #include <linux/gpio_keys.h>
#include <linux/i2c.h> #include <linux/i2c.h>
...@@ -614,6 +615,10 @@ static struct platform_device origen_lcd_hv070wsa = { ...@@ -614,6 +615,10 @@ static struct platform_device origen_lcd_hv070wsa = {
.dev.platform_data = &origen_lcd_hv070wsa_data, .dev.platform_data = &origen_lcd_hv070wsa_data,
}; };
static struct pwm_lookup origen_pwm_lookup[] = {
PWM_LOOKUP("s3c24xx-pwm.0", 0, "pwm-backlight.0", NULL),
};
#ifdef CONFIG_DRM_EXYNOS #ifdef CONFIG_DRM_EXYNOS
static struct exynos_drm_fimd_pdata drm_fimd_pdata = { static struct exynos_drm_fimd_pdata drm_fimd_pdata = {
.panel = { .panel = {
...@@ -798,6 +803,7 @@ static void __init origen_machine_init(void) ...@@ -798,6 +803,7 @@ static void __init origen_machine_init(void)
platform_add_devices(origen_devices, ARRAY_SIZE(origen_devices)); platform_add_devices(origen_devices, ARRAY_SIZE(origen_devices));
pwm_add_table(origen_pwm_lookup, ARRAY_SIZE(origen_pwm_lookup));
samsung_bl_set(&origen_bl_gpio_info, &origen_bl_data); samsung_bl_set(&origen_bl_gpio_info, &origen_bl_data);
origen_bt_setup(); origen_bt_setup();
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include <linux/mfd/max8997.h> #include <linux/mfd/max8997.h>
#include <linux/mmc/host.h> #include <linux/mmc/host.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/pwm.h>
#include <linux/pwm_backlight.h> #include <linux/pwm_backlight.h>
#include <linux/regulator/machine.h> #include <linux/regulator/machine.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
...@@ -222,6 +223,10 @@ static struct platform_pwm_backlight_data smdk4x12_bl_data = { ...@@ -222,6 +223,10 @@ static struct platform_pwm_backlight_data smdk4x12_bl_data = {
.pwm_period_ns = 1000, .pwm_period_ns = 1000,
}; };
static struct pwm_lookup smdk4x12_pwm_lookup[] = {
PWM_LOOKUP("s3c24xx-pwm.1", 0, "pwm-backlight.0", NULL),
};
static uint32_t smdk4x12_keymap[] __initdata = { static uint32_t smdk4x12_keymap[] __initdata = {
/* KEY(row, col, keycode) */ /* KEY(row, col, keycode) */
KEY(1, 3, KEY_1), KEY(1, 4, KEY_2), KEY(1, 5, KEY_3), 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,6 +354,7 @@ static void __init smdk4x12_machine_init(void)
ARRAY_SIZE(smdk4x12_i2c_devs7)); ARRAY_SIZE(smdk4x12_i2c_devs7));
samsung_bl_set(&smdk4x12_bl_gpio_info, &smdk4x12_bl_data); samsung_bl_set(&smdk4x12_bl_gpio_info, &smdk4x12_bl_data);
pwm_add_table(smdk4x12_pwm_lookup, ARRAY_SIZE(smdk4x12_pwm_lookup));
samsung_keypad_set_platdata(&smdk4x12_keypad_data); samsung_keypad_set_platdata(&smdk4x12_keypad_data);
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include <linux/io.h> #include <linux/io.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/input.h> #include <linux/input.h>
#include <linux/pwm.h>
#include <linux/pwm_backlight.h> #include <linux/pwm_backlight.h>
#include <linux/platform_data/s3c-hsotg.h> #include <linux/platform_data/s3c-hsotg.h>
...@@ -360,6 +361,10 @@ static struct i2c_board_info hdmiphy_info = { ...@@ -360,6 +361,10 @@ static struct i2c_board_info hdmiphy_info = {
I2C_BOARD_INFO("hdmiphy-exynos4210", 0x38), I2C_BOARD_INFO("hdmiphy-exynos4210", 0x38),
}; };
static struct pwm_lookup smdkv310_pwm_lookup[] = {
PWM_LOOKUP("s3c24xx-pwm.1", 0, "pwm-backlight.0", NULL),
};
static void s5p_tv_setup(void) static void s5p_tv_setup(void)
{ {
/* direct HPD to HDMI chip */ /* direct HPD to HDMI chip */
...@@ -399,6 +404,8 @@ static void __init smdkv310_machine_init(void) ...@@ -399,6 +404,8 @@ static void __init smdkv310_machine_init(void)
samsung_keypad_set_platdata(&smdkv310_keypad_data); samsung_keypad_set_platdata(&smdkv310_keypad_data);
samsung_bl_set(&smdkv310_bl_gpio_info, &smdkv310_bl_data); samsung_bl_set(&smdkv310_bl_gpio_info, &smdkv310_bl_data);
pwm_add_table(smdkv310_pwm_lookup, ARRAY_SIZE(smdkv310_pwm_lookup));
#ifdef CONFIG_DRM_EXYNOS #ifdef CONFIG_DRM_EXYNOS
s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata; s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata;
exynos4_fimd0_gpio_setup_24bpp(); exynos4_fimd0_gpio_setup_24bpp();
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include <linux/mfd/wm831x/irq.h> #include <linux/mfd/wm831x/irq.h>
#include <linux/mfd/wm831x/gpio.h> #include <linux/mfd/wm831x/gpio.h>
#include <linux/mfd/wm8994/pdata.h> #include <linux/mfd/wm8994/pdata.h>
#include <linux/mfd/arizona/pdata.h>
#include <linux/regulator/machine.h> #include <linux/regulator/machine.h>
...@@ -181,9 +182,33 @@ static const struct i2c_board_info wm1277_devs[] = { ...@@ -181,9 +182,33 @@ static const struct i2c_board_info wm1277_devs[] = {
}, },
}; };
static const struct i2c_board_info wm5102_devs[] = { static struct arizona_pdata wm5102_pdata = {
{ I2C_BOARD_INFO("wm5102", 0x1a), .ldoena = S3C64XX_GPN(7),
.irq = GLENFARCLAS_PMIC_IRQ_BASE + WM831X_IRQ_GPIO_2, }, .gpio_base = CODEC_GPIO_BASE,
.irq_active_high = true,
.micd_pol_gpio = CODEC_GPIO_BASE + 4,
.gpio_defaults = {
[2] = 0x10000, /* AIF3TXLRCLK */
[3] = 0x4, /* OPCLK */
},
};
static struct s3c64xx_spi_csinfo wm5102_spi_csinfo = {
.line = S3C64XX_GPN(5),
};
static struct spi_board_info wm5102_spi_devs[] = {
[0] = {
.modalias = "wm5102",
.max_speed_hz = 10 * 1000 * 1000,
.bus_num = 0,
.chip_select = 0,
.mode = SPI_MODE_0,
.irq = GLENFARCLAS_PMIC_IRQ_BASE +
WM831X_IRQ_GPIO_2,
.controller_data = &wm5102_spi_csinfo,
.platform_data = &wm5102_pdata,
},
}; };
static const struct i2c_board_info wm6230_i2c_devs[] = { static const struct i2c_board_info wm6230_i2c_devs[] = {
...@@ -223,8 +248,9 @@ static __devinitdata const struct { ...@@ -223,8 +248,9 @@ static __devinitdata const struct {
{ .id = 0x3c, .name = "1273-EV1 Longmorn" }, { .id = 0x3c, .name = "1273-EV1 Longmorn" },
{ .id = 0x3d, .name = "1277-EV1 Littlemill", { .id = 0x3d, .name = "1277-EV1 Littlemill",
.i2c_devs = wm1277_devs, .num_i2c_devs = ARRAY_SIZE(wm1277_devs) }, .i2c_devs = wm1277_devs, .num_i2c_devs = ARRAY_SIZE(wm1277_devs) },
{ .id = 0x3e, .name = "WM5102-6271-EV1-CS127", { .id = 0x3e, .name = "WM5102-6271-EV1-CS127 Amrut",
.i2c_devs = wm5102_devs, .num_i2c_devs = ARRAY_SIZE(wm5102_devs) }, .spi_devs = wm5102_spi_devs,
.num_spi_devs = ARRAY_SIZE(wm5102_spi_devs) },
}; };
static __devinit int wlf_gf_module_probe(struct i2c_client *i2c, static __devinit int wlf_gf_module_probe(struct i2c_client *i2c,
......
...@@ -287,6 +287,16 @@ static struct platform_device littlemill_device = { ...@@ -287,6 +287,16 @@ static struct platform_device littlemill_device = {
.id = -1, .id = -1,
}; };
static struct platform_device bells_wm5102_device = {
.name = "bells",
.id = 0,
};
static struct platform_device bells_wm5110_device = {
.name = "bells",
.id = 1,
};
static struct regulator_consumer_supply wallvdd_consumers[] = { static struct regulator_consumer_supply wallvdd_consumers[] = {
REGULATOR_SUPPLY("SPKVDD", "1-001a"), REGULATOR_SUPPLY("SPKVDD", "1-001a"),
REGULATOR_SUPPLY("SPKVDD1", "1-001a"), REGULATOR_SUPPLY("SPKVDD1", "1-001a"),
...@@ -359,6 +369,8 @@ static struct platform_device *crag6410_devices[] __initdata = { ...@@ -359,6 +369,8 @@ static struct platform_device *crag6410_devices[] __initdata = {
&tobermory_device, &tobermory_device,
&littlemill_device, &littlemill_device,
&lowland_device, &lowland_device,
&bells_wm5102_device,
&bells_wm5110_device,
&wallvdd_device, &wallvdd_device,
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment