From 58f8c0543a9b0d84bca43526aec3774110201bc8 Mon Sep 17 00:00:00 2001 From: Mark Brown Date: Wed, 20 Jun 2012 08:16:19 +0900 Subject: ARM: S3C64XX: Add module identification for Balblair Cragganmore module Signed-off-by: Mark Brown Signed-off-by: Kukjin Kim --- arch/arm/mach-s3c64xx/mach-crag6410-module.c | 1 + 1 file changed, 1 insertion(+) (limited to 'arch/arm/mach-s3c64xx') diff --git a/arch/arm/mach-s3c64xx/mach-crag6410-module.c b/arch/arm/mach-s3c64xx/mach-crag6410-module.c index 7a27f5603c7..f51cc70064a 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410-module.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410-module.c @@ -209,6 +209,7 @@ static __devinitdata const struct { .spi_devs = wm1253_devs, .num_spi_devs = ARRAY_SIZE(wm1253_devs) }, { .id = 0x32, .name = "XXXX-EV1 Caol Illa" }, { .id = 0x33, .name = "XXXX-EV1 Oban" }, + { .id = 0x34, .name = "WM0010-6320-CS42 Balblair" }, { .id = 0x39, .name = "1254-EV1 Dallas Dhu", .i2c_devs = wm1254_devs, .num_i2c_devs = ARRAY_SIZE(wm1254_devs) }, { .id = 0x3a, .name = "1259-EV1 Tobermory", -- cgit v1.2.3-70-g09d2 From 9b6e1b0e882a00d654a8313e22c189f13c321a20 Mon Sep 17 00:00:00 2001 From: Mark Brown Date: Wed, 20 Jun 2012 08:16:25 +0900 Subject: ARM: S3C64XX: Add WM5102 EVM to Cragganmore modules No platform data yet as driver is not yet merged. Signed-off-by: Mark Brown Signed-off-by: Kukjin Kim --- arch/arm/mach-s3c64xx/mach-crag6410-module.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'arch/arm/mach-s3c64xx') diff --git a/arch/arm/mach-s3c64xx/mach-crag6410-module.c b/arch/arm/mach-s3c64xx/mach-crag6410-module.c index f51cc70064a..497937222a2 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410-module.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410-module.c @@ -182,6 +182,11 @@ static const struct i2c_board_info wm1277_devs[] = { }, }; +static const struct i2c_board_info wm5102_devs[] = { + { I2C_BOARD_INFO("wm5102", 0x1a), + .irq = GLENFARCLAS_PMIC_IRQ_BASE + WM831X_IRQ_GPIO_2, }, +}; + static const struct i2c_board_info wm6230_i2c_devs[] = { { I2C_BOARD_INFO("wm9081", 0x6c), .platform_data = &wm9081_pdata, }, @@ -219,6 +224,8 @@ static __devinitdata const struct { { .id = 0x3c, .name = "1273-EV1 Longmorn" }, { .id = 0x3d, .name = "1277-EV1 Littlemill", .i2c_devs = wm1277_devs, .num_i2c_devs = ARRAY_SIZE(wm1277_devs) }, + { .id = 0x3e, .name = "WM5102-6271-EV1-CS127", + .i2c_devs = wm5102_devs, .num_i2c_devs = ARRAY_SIZE(wm5102_devs) }, }; static __devinit int wlf_gf_module_probe(struct i2c_client *i2c, -- cgit v1.2.3-70-g09d2 From 7d1d8ce5b50f4593f6d4b9d8149f978c122f617b Mon Sep 17 00:00:00 2001 From: Mark Brown Date: Wed, 20 Jun 2012 08:18:04 +0900 Subject: ARM: S3C64XX: Dynamically allocate the IRQ range for WM8994 on Cragganmore Use the new irqdomain support in the WM8994 driver to dynamically allocate the interrupt range for the WM8994 rather than doing it explicitly. This is more idiomatic for modern interrupt usage. Signed-off-by: Mark Brown Signed-off-by: Kukjin Kim --- arch/arm/mach-s3c64xx/include/mach/crag6410.h | 1 - arch/arm/mach-s3c64xx/mach-crag6410-module.c | 1 - 2 files changed, 2 deletions(-) (limited to 'arch/arm/mach-s3c64xx') diff --git a/arch/arm/mach-s3c64xx/include/mach/crag6410.h b/arch/arm/mach-s3c64xx/include/mach/crag6410.h index 4cb2f951f1e..ec97c15b109 100644 --- a/arch/arm/mach-s3c64xx/include/mach/crag6410.h +++ b/arch/arm/mach-s3c64xx/include/mach/crag6410.h @@ -15,7 +15,6 @@ #define BANFF_PMIC_IRQ_BASE IRQ_BOARD_START #define GLENFARCLAS_PMIC_IRQ_BASE (IRQ_BOARD_START + 64) -#define CODEC_IRQ_BASE (IRQ_BOARD_START + 128) #define PCA935X_GPIO_BASE GPIO_BOARD_START #define CODEC_GPIO_BASE (GPIO_BOARD_START + 8) diff --git a/arch/arm/mach-s3c64xx/mach-crag6410-module.c b/arch/arm/mach-s3c64xx/mach-crag6410-module.c index 497937222a2..4a83b4e7ab3 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410-module.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410-module.c @@ -168,7 +168,6 @@ static struct wm8994_pdata wm8994_pdata = { .gpio_defaults = { 0x3, /* IRQ out, active high, CMOS */ }, - .irq_base = CODEC_IRQ_BASE, .ldo = { { .init_data = &wm8994_ldo1, }, { .init_data = &wm8994_ldo2, }, -- cgit v1.2.3-70-g09d2 From 4f057aa0dcb2660bb09ead75d829a19ec71319f1 Mon Sep 17 00:00:00 2001 From: Mark Brown Date: Wed, 20 Jun 2012 08:18:07 +0900 Subject: ARM: S3C64XX: Dynamically assign interrupts for CPU PMIC on Cragganmore Now that the WM831x driver uses irq_domain we can happily allow it to assign its own IRQs. Signed-off-by: Mark Brown Signed-off-by: Kukjin Kim --- arch/arm/mach-s3c64xx/include/mach/crag6410.h | 3 +-- arch/arm/mach-s3c64xx/mach-crag6410.c | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) (limited to 'arch/arm/mach-s3c64xx') diff --git a/arch/arm/mach-s3c64xx/include/mach/crag6410.h b/arch/arm/mach-s3c64xx/include/mach/crag6410.h index ec97c15b109..4c3c9994fc2 100644 --- a/arch/arm/mach-s3c64xx/include/mach/crag6410.h +++ b/arch/arm/mach-s3c64xx/include/mach/crag6410.h @@ -13,8 +13,7 @@ #include -#define BANFF_PMIC_IRQ_BASE IRQ_BOARD_START -#define GLENFARCLAS_PMIC_IRQ_BASE (IRQ_BOARD_START + 64) +#define GLENFARCLAS_PMIC_IRQ_BASE IRQ_BOARD_START #define PCA935X_GPIO_BASE GPIO_BOARD_START #define CODEC_GPIO_BASE (GPIO_BOARD_START + 8) diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-s3c64xx/mach-crag6410.c index d0c352d861f..161c3b6218a 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410.c @@ -525,7 +525,6 @@ static struct wm831x_touch_pdata touch_pdata __initdata = { static struct wm831x_pdata crag_pmic_pdata __initdata = { .wm831x_num = 1, - .irq_base = BANFF_PMIC_IRQ_BASE, .gpio_base = BANFF_PMIC_GPIO_BASE, .soft_shutdown = true, -- cgit v1.2.3-70-g09d2 From 1521109318466c2e064dcbd732aa64f99a62852f Mon Sep 17 00:00:00 2001 From: Dimitris Papastamos Date: Thu, 21 Jun 2012 03:43:57 +0900 Subject: ARM: S3C64XX: Add IRQ mapping for wm0010 on Cragganmore Signed-off-by: Dimitris Papastamos Signed-off-by: Kukjin Kim --- arch/arm/mach-s3c64xx/mach-crag6410-module.c | 1 + 1 file changed, 1 insertion(+) (limited to 'arch/arm/mach-s3c64xx') diff --git a/arch/arm/mach-s3c64xx/mach-crag6410-module.c b/arch/arm/mach-s3c64xx/mach-crag6410-module.c index 4a83b4e7ab3..4645aa15c82 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410-module.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410-module.c @@ -39,6 +39,7 @@ static struct spi_board_info wm1253_devs[] = { .bus_num = 0, .chip_select = 0, .mode = SPI_MODE_0, + .irq = S3C_EINT(5), .controller_data = &wm0010_spi_csinfo, }, }; -- cgit v1.2.3-70-g09d2 From 067eb26f44a095c2e3cd6b61697633e9ed5c82ff Mon Sep 17 00:00:00 2001 From: Mark Brown Date: Thu, 12 Jul 2012 16:32:11 +0900 Subject: ARM: S3C64XX: Don't specify an irq_base for WM1192-EV1 board None of the GPIO IRQs are connected so there is no reason to specify a base. Signed-off-by: Mark Brown Signed-off-by: Kukjin Kim --- arch/arm/mach-s3c64xx/mach-smdk6410.c | 1 - 1 file changed, 1 deletion(-) (limited to 'arch/arm/mach-s3c64xx') diff --git a/arch/arm/mach-s3c64xx/mach-smdk6410.c b/arch/arm/mach-s3c64xx/mach-smdk6410.c index df3103d450e..0fe4f1503f4 100644 --- a/arch/arm/mach-s3c64xx/mach-smdk6410.c +++ b/arch/arm/mach-s3c64xx/mach-smdk6410.c @@ -566,7 +566,6 @@ static struct wm831x_status_pdata wm1192_led8_pdata = { static struct wm831x_pdata smdk6410_wm1192_pdata = { .pre_init = wm1192_pre_init, - .irq_base = IRQ_BOARD_START, .backlight = &wm1192_backlight_pdata, .dcdc = { -- cgit v1.2.3-70-g09d2 From f91149d3169580b574f18b60204c654ede2c8549 Mon Sep 17 00:00:00 2001 From: Mark Brown Date: Thu, 19 Jul 2012 14:30:23 +0900 Subject: ARM: S3C64XX: Clean up after SPI driver platform data updates Commit 1c20c2 (spi: s3c64xx: Remove the 'set_level' callback from controller data) didn't update all the users, breaking the build. Fix that. Signed-off-by: Mark Brown Signed-off-by: Kukjin Kim --- arch/arm/mach-s3c64xx/mach-crag6410-module.c | 1 - 1 file changed, 1 deletion(-) (limited to 'arch/arm/mach-s3c64xx') diff --git a/arch/arm/mach-s3c64xx/mach-crag6410-module.c b/arch/arm/mach-s3c64xx/mach-crag6410-module.c index 4645aa15c82..9e382e7c77c 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410-module.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410-module.c @@ -29,7 +29,6 @@ #include static struct s3c64xx_spi_csinfo wm0010_spi_csinfo = { - .set_level = gpio_set_value, .line = S3C64XX_GPC(3), }; -- cgit v1.2.3-70-g09d2 From 70660e5d1aa1376a6e9ad2de94bfaf39c2d1545c Mon Sep 17 00:00:00 2001 From: Mark Brown Date: Thu, 19 Jul 2012 14:45:26 +0900 Subject: ARM: S3C64XX: Mark most Cragganmore initdata devinitdata With the greater use of deferred probes we need to be more sure that initdata is actually used only at system init rather than being used by devices when they probe (which could happen after the main kernel init has completed and is much more likely to now). Signed-off-by: Mark Brown Signed-off-by: Kukjin Kim --- arch/arm/mach-s3c64xx/mach-crag6410.c | 68 +++++++++++++++++------------------ 1 file changed, 34 insertions(+), 34 deletions(-) (limited to 'arch/arm/mach-s3c64xx') diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-s3c64xx/mach-crag6410.c index 161c3b6218a..7eb586515fb 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410.c @@ -171,7 +171,7 @@ static struct fb_videomode crag6410_lcd_timing = { }; /* 405566 clocks per frame => 60Hz refresh requires 24333960Hz clock */ -static struct s3c_fb_platdata crag6410_lcd_pdata __initdata = { +static struct s3c_fb_platdata crag6410_lcd_pdata __devinitdata = { .setup_gpio = s3c64xx_fb_gpio_setup_24bpp, .vtiming = &crag6410_lcd_timing, .win[0] = &crag6410_fb_win0, @@ -181,7 +181,7 @@ static struct s3c_fb_platdata crag6410_lcd_pdata __initdata = { /* 2x6 keypad */ -static uint32_t crag6410_keymap[] __initdata = { +static uint32_t crag6410_keymap[] __devinitdata = { /* KEY(row, col, keycode) */ KEY(0, 0, KEY_VOLUMEUP), KEY(0, 1, KEY_HOME), @@ -197,12 +197,12 @@ static uint32_t crag6410_keymap[] __initdata = { KEY(1, 5, KEY_CAMERA), }; -static struct matrix_keymap_data crag6410_keymap_data __initdata = { +static struct matrix_keymap_data crag6410_keymap_data __devinitdata = { .keymap = crag6410_keymap, .keymap_size = ARRAY_SIZE(crag6410_keymap), }; -static struct samsung_keypad_platdata crag6410_keypad_data __initdata = { +static struct samsung_keypad_platdata crag6410_keypad_data __devinitdata = { .keymap_data = &crag6410_keymap_data, .rows = 2, .cols = 6, @@ -373,11 +373,11 @@ static struct wm831x_buckv_pdata vddarm_pdata = { .dvs_gpio = S3C64XX_GPK(0), }; -static struct regulator_consumer_supply vddarm_consumers[] __initdata = { +static struct regulator_consumer_supply vddarm_consumers[] __devinitdata = { REGULATOR_SUPPLY("vddarm", NULL), }; -static struct regulator_init_data vddarm __initdata = { +static struct regulator_init_data vddarm __devinitdata = { .constraints = { .name = "VDDARM", .min_uV = 1000000, @@ -391,11 +391,11 @@ static struct regulator_init_data vddarm __initdata = { .driver_data = &vddarm_pdata, }; -static struct regulator_consumer_supply vddint_consumers[] __initdata = { +static struct regulator_consumer_supply vddint_consumers[] __devinitdata = { REGULATOR_SUPPLY("vddint", NULL), }; -static struct regulator_init_data vddint __initdata = { +static struct regulator_init_data vddint __devinitdata = { .constraints = { .name = "VDDINT", .min_uV = 1000000, @@ -408,27 +408,27 @@ static struct regulator_init_data vddint __initdata = { .supply_regulator = "WALLVDD", }; -static struct regulator_init_data vddmem __initdata = { +static struct regulator_init_data vddmem __devinitdata = { .constraints = { .name = "VDDMEM", .always_on = 1, }, }; -static struct regulator_init_data vddsys __initdata = { +static struct regulator_init_data vddsys __devinitdata = { .constraints = { .name = "VDDSYS,VDDEXT,VDDPCM,VDDSS", .always_on = 1, }, }; -static struct regulator_consumer_supply vddmmc_consumers[] __initdata = { +static struct regulator_consumer_supply vddmmc_consumers[] __devinitdata = { REGULATOR_SUPPLY("vmmc", "s3c-sdhci.0"), REGULATOR_SUPPLY("vmmc", "s3c-sdhci.1"), REGULATOR_SUPPLY("vmmc", "s3c-sdhci.2"), }; -static struct regulator_init_data vddmmc __initdata = { +static struct regulator_init_data vddmmc __devinitdata = { .constraints = { .name = "VDDMMC,UH", .always_on = 1, @@ -438,7 +438,7 @@ static struct regulator_init_data vddmmc __initdata = { .supply_regulator = "WALLVDD", }; -static struct regulator_init_data vddotgi __initdata = { +static struct regulator_init_data vddotgi __devinitdata = { .constraints = { .name = "VDDOTGi", .always_on = 1, @@ -446,7 +446,7 @@ static struct regulator_init_data vddotgi __initdata = { .supply_regulator = "WALLVDD", }; -static struct regulator_init_data vddotg __initdata = { +static struct regulator_init_data vddotg __devinitdata = { .constraints = { .name = "VDDOTG", .always_on = 1, @@ -454,7 +454,7 @@ static struct regulator_init_data vddotg __initdata = { .supply_regulator = "WALLVDD", }; -static struct regulator_init_data vddhi __initdata = { +static struct regulator_init_data vddhi __devinitdata = { .constraints = { .name = "VDDHI", .always_on = 1, @@ -462,7 +462,7 @@ static struct regulator_init_data vddhi __initdata = { .supply_regulator = "WALLVDD", }; -static struct regulator_init_data vddadc __initdata = { +static struct regulator_init_data vddadc __devinitdata = { .constraints = { .name = "VDDADC,VDDDAC", .always_on = 1, @@ -470,7 +470,7 @@ static struct regulator_init_data vddadc __initdata = { .supply_regulator = "WALLVDD", }; -static struct regulator_init_data vddmem0 __initdata = { +static struct regulator_init_data vddmem0 __devinitdata = { .constraints = { .name = "VDDMEM0", .always_on = 1, @@ -478,7 +478,7 @@ static struct regulator_init_data vddmem0 __initdata = { .supply_regulator = "WALLVDD", }; -static struct regulator_init_data vddpll __initdata = { +static struct regulator_init_data vddpll __devinitdata = { .constraints = { .name = "VDDPLL", .always_on = 1, @@ -486,7 +486,7 @@ static struct regulator_init_data vddpll __initdata = { .supply_regulator = "WALLVDD", }; -static struct regulator_init_data vddlcd __initdata = { +static struct regulator_init_data vddlcd __devinitdata = { .constraints = { .name = "VDDLCD", .always_on = 1, @@ -494,7 +494,7 @@ static struct regulator_init_data vddlcd __initdata = { .supply_regulator = "WALLVDD", }; -static struct regulator_init_data vddalive __initdata = { +static struct regulator_init_data vddalive __devinitdata = { .constraints = { .name = "VDDALIVE", .always_on = 1, @@ -502,28 +502,28 @@ static struct regulator_init_data vddalive __initdata = { .supply_regulator = "WALLVDD", }; -static struct wm831x_backup_pdata banff_backup_pdata __initdata = { +static struct wm831x_backup_pdata banff_backup_pdata __devinitdata = { .charger_enable = 1, .vlim = 2500, /* mV */ .ilim = 200, /* uA */ }; -static struct wm831x_status_pdata banff_red_led __initdata = { +static struct wm831x_status_pdata banff_red_led __devinitdata = { .name = "banff:red:", .default_src = WM831X_STATUS_MANUAL, }; -static struct wm831x_status_pdata banff_green_led __initdata = { +static struct wm831x_status_pdata banff_green_led __devinitdata = { .name = "banff:green:", .default_src = WM831X_STATUS_MANUAL, }; -static struct wm831x_touch_pdata touch_pdata __initdata = { +static struct wm831x_touch_pdata touch_pdata __devinitdata = { .data_irq = S3C_EINT(26), .pd_irq = S3C_EINT(27), }; -static struct wm831x_pdata crag_pmic_pdata __initdata = { +static struct wm831x_pdata crag_pmic_pdata __devinitdata = { .wm831x_num = 1, .gpio_base = BANFF_PMIC_GPIO_BASE, .soft_shutdown = true, @@ -567,7 +567,7 @@ static struct wm831x_pdata crag_pmic_pdata __initdata = { .touch = &touch_pdata, }; -static struct i2c_board_info i2c_devs0[] __initdata = { +static struct i2c_board_info i2c_devs0[] __devinitdata = { { I2C_BOARD_INFO("24c08", 0x50), }, { I2C_BOARD_INFO("tca6408", 0x20), .platform_data = &crag6410_pca_data, @@ -582,12 +582,12 @@ static struct s3c2410_platform_i2c i2c0_pdata = { .frequency = 400000, }; -static struct regulator_consumer_supply pvdd_1v2_consumers[] __initdata = { +static struct regulator_consumer_supply pvdd_1v2_consumers[] __devinitdata = { REGULATOR_SUPPLY("DCVDD", "spi0.0"), REGULATOR_SUPPLY("AVDD", "spi0.0"), }; -static struct regulator_init_data pvdd_1v2 __initdata = { +static struct regulator_init_data pvdd_1v2 __devinitdata = { .constraints = { .name = "PVDD_1V2", .valid_ops_mask = REGULATOR_CHANGE_STATUS, @@ -597,7 +597,7 @@ static struct regulator_init_data pvdd_1v2 __initdata = { .num_consumer_supplies = ARRAY_SIZE(pvdd_1v2_consumers), }; -static struct regulator_consumer_supply pvdd_1v8_consumers[] __initdata = { +static struct regulator_consumer_supply pvdd_1v8_consumers[] __devinitdata = { REGULATOR_SUPPLY("LDOVDD", "1-001a"), REGULATOR_SUPPLY("PLLVDD", "1-001a"), REGULATOR_SUPPLY("DBVDD", "1-001a"), @@ -611,7 +611,7 @@ static struct regulator_consumer_supply pvdd_1v8_consumers[] __initdata = { REGULATOR_SUPPLY("DBVDD", "spi0.0"), }; -static struct regulator_init_data pvdd_1v8 __initdata = { +static struct regulator_init_data pvdd_1v8 __devinitdata = { .constraints = { .name = "PVDD_1V8", .always_on = 1, @@ -621,12 +621,12 @@ static struct regulator_init_data pvdd_1v8 __initdata = { .num_consumer_supplies = ARRAY_SIZE(pvdd_1v8_consumers), }; -static struct regulator_consumer_supply pvdd_3v3_consumers[] __initdata = { +static struct regulator_consumer_supply pvdd_3v3_consumers[] __devinitdata = { REGULATOR_SUPPLY("MICVDD", "1-001a"), REGULATOR_SUPPLY("AVDD1", "1-001a"), }; -static struct regulator_init_data pvdd_3v3 __initdata = { +static struct regulator_init_data pvdd_3v3 __devinitdata = { .constraints = { .name = "PVDD_3V3", .always_on = 1, @@ -636,7 +636,7 @@ static struct regulator_init_data pvdd_3v3 __initdata = { .num_consumer_supplies = ARRAY_SIZE(pvdd_3v3_consumers), }; -static struct wm831x_pdata glenfarclas_pmic_pdata __initdata = { +static struct wm831x_pdata glenfarclas_pmic_pdata __devinitdata = { .wm831x_num = 2, .irq_base = GLENFARCLAS_PMIC_IRQ_BASE, .gpio_base = GLENFARCLAS_PMIC_GPIO_BASE, @@ -668,7 +668,7 @@ static struct wm1250_ev1_pdata wm1250_ev1_pdata = { }, }; -static struct i2c_board_info i2c_devs1[] __initdata = { +static struct i2c_board_info i2c_devs1[] __devinitdata = { { I2C_BOARD_INFO("wm8311", 0x34), .irq = S3C_EINT(0), .platform_data = &glenfarclas_pmic_pdata }, -- cgit v1.2.3-70-g09d2