Commit f78a88d4 authored by Olof Johansson's avatar Olof Johansson

Merge tag 'ux500-core-updates' of...

Merge tag 'ux500-core-updates' of http://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson into next/fixes-non-critical

This is three ux500 core updates with no direct relation
but grouped in a pull request:
- Set the proper GIC flags to mask when suspended and
  skip wake.
- Fix a build error introduced from the PMU patch set
- Provide a fixed regulator for the Snowball when not
  using DT.

* tag 'ux500-core-updates' of http://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson:
  ARM: ux500: Provide SMSC911x fixed-regulator when not booting DT
  ARM: ux500: Fix build error due to missing include of asm/pmu.h in cpu-db8500.c
  ARM: ux500: set proper GIC flags
parents 1a876762 0b5ea1e2
...@@ -28,6 +28,7 @@ config MACH_MOP500 ...@@ -28,6 +28,7 @@ config MACH_MOP500
select I2C select I2C
select I2C_NOMADIK select I2C_NOMADIK
select SOC_BUS select SOC_BUS
select REGULATOR_FIXED_VOLTAGE
help help
Include support for the MOP500 development platform. Include support for the MOP500 development platform.
......
...@@ -13,6 +13,21 @@ ...@@ -13,6 +13,21 @@
#include <linux/regulator/ab8500.h> #include <linux/regulator/ab8500.h>
#include "board-mop500-regulators.h" #include "board-mop500-regulators.h"
static struct regulator_consumer_supply gpio_en_3v3_consumers[] = {
REGULATOR_SUPPLY("vdd33a", "smsc911x.0"),
};
struct regulator_init_data gpio_en_3v3_regulator = {
.constraints = {
.name = "EN-3V3",
.min_uV = 3300000,
.max_uV = 3300000,
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
},
.num_consumer_supplies = ARRAY_SIZE(gpio_en_3v3_consumers),
.consumer_supplies = gpio_en_3v3_consumers,
};
/* /*
* TPS61052 regulator * TPS61052 regulator
*/ */
......
...@@ -18,5 +18,6 @@ extern struct ab8500_regulator_reg_init ...@@ -18,5 +18,6 @@ extern struct ab8500_regulator_reg_init
ab8500_regulator_reg_init[AB8500_NUM_REGULATOR_REGISTERS]; ab8500_regulator_reg_init[AB8500_NUM_REGULATOR_REGISTERS];
extern struct regulator_init_data ab8500_regulators[AB8500_NUM_REGULATORS]; extern struct regulator_init_data ab8500_regulators[AB8500_NUM_REGULATORS];
extern struct regulator_init_data tps61052_regulator; extern struct regulator_init_data tps61052_regulator;
extern struct regulator_init_data gpio_en_3v3_regulator;
#endif #endif
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include <linux/spi/spi.h> #include <linux/spi/spi.h>
#include <linux/mfd/abx500/ab8500.h> #include <linux/mfd/abx500/ab8500.h>
#include <linux/regulator/ab8500.h> #include <linux/regulator/ab8500.h>
#include <linux/regulator/fixed.h>
#include <linux/mfd/tc3589x.h> #include <linux/mfd/tc3589x.h>
#include <linux/mfd/tps6105x.h> #include <linux/mfd/tps6105x.h>
#include <linux/mfd/abx500/ab8500-gpio.h> #include <linux/mfd/abx500/ab8500-gpio.h>
...@@ -76,6 +77,23 @@ static struct platform_device snowball_led_dev = { ...@@ -76,6 +77,23 @@ static struct platform_device snowball_led_dev = {
}, },
}; };
static struct fixed_voltage_config snowball_gpio_en_3v3_data = {
.supply_name = "EN-3V3",
.gpio = SNOWBALL_EN_3V3_ETH_GPIO,
.microvolts = 3300000,
.enable_high = 1,
.init_data = &gpio_en_3v3_regulator,
.startup_delay = 5000, /* 1200us */
};
static struct platform_device snowball_gpio_en_3v3_regulator_dev = {
.name = "reg-fixed-voltage",
.id = 1,
.dev = {
.platform_data = &snowball_gpio_en_3v3_data,
},
};
static struct ab8500_gpio_platform_data ab8500_gpio_pdata = { static struct ab8500_gpio_platform_data ab8500_gpio_pdata = {
.gpio_base = MOP500_AB8500_PIN_GPIO(1), .gpio_base = MOP500_AB8500_PIN_GPIO(1),
.irq_base = MOP500_AB8500_VIR_GPIO_IRQ_BASE, .irq_base = MOP500_AB8500_VIR_GPIO_IRQ_BASE,
...@@ -586,6 +604,7 @@ static struct platform_device *snowball_platform_devs[] __initdata = { ...@@ -586,6 +604,7 @@ static struct platform_device *snowball_platform_devs[] __initdata = {
&snowball_led_dev, &snowball_led_dev,
&snowball_key_dev, &snowball_key_dev,
&snowball_sbnet_dev, &snowball_sbnet_dev,
&snowball_gpio_en_3v3_regulator_dev,
}; };
static void __init mop500_init_machine(void) static void __init mop500_init_machine(void)
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include <linux/io.h> #include <linux/io.h>
#include <linux/mfd/abx500/ab8500.h> #include <linux/mfd/abx500/ab8500.h>
#include <asm/pmu.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/pmu.h> #include <asm/pmu.h>
#include <plat/gpio-nomadik.h> #include <plat/gpio-nomadik.h>
......
...@@ -51,6 +51,8 @@ void __init ux500_init_irq(void) ...@@ -51,6 +51,8 @@ void __init ux500_init_irq(void)
void __iomem *dist_base; void __iomem *dist_base;
void __iomem *cpu_base; void __iomem *cpu_base;
gic_arch_extn.flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_MASK_ON_SUSPEND;
if (cpu_is_u8500_family()) { if (cpu_is_u8500_family()) {
dist_base = __io_address(U8500_GIC_DIST_BASE); dist_base = __io_address(U8500_GIC_DIST_BASE);
cpu_base = __io_address(U8500_GIC_CPU_BASE); cpu_base = __io_address(U8500_GIC_CPU_BASE);
......
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