mvebu fixes for v3.9 (round 2)

- mvebu
     - interrupt fix
     - DT pinctrl definition for sdio
 
  - kirkwood
     - chip-delay for GoFlex Net (fix reading nand)
     - set mvsdio unused pins to invalid value for legacy boards (0 is valid)
 
  - orion5x
     - fix typo in gpio parameters
     - use correct irq in dtsi
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.19 (GNU/Linux)
 
 iQEcBAABAgAGBQJRVIcVAAoJEAi3KVZQDZAev1wH/0oIYEZvAeE8Nh49bn7EKgwH
 ef44bin9g/JkEZ/3YndUE+1wqq/4nBaJN2IWGsPmbKGZFWNaoaPG1gFr0VsOepge
 GpKdwrxUMAgIzLO+4FtN85Zy3Qe4Jn8YWjJcZXZbl404cyQx5bDID0clYsn0m2jW
 F6nWva5ULAbWNBsUpRQ3h8nYfKi9QsWvhOgFxsaAiR3VCpLOk+MKK7Y0cwqpi60K
 p2ALUultfXGckqJyFCoZNHwN52dlllsXD09i/lRzM91nT/VEPzwWNhPcoNjwiQwu
 qfloTU97Lfq7168G4PTSEq8V7LP/NLbAlwwJ3VW3HCrtVTefSQFdUF9EA9bjl8I=
 =EExD
 -----END PGP SIGNATURE-----

Merge tag 'mvebu_fixes_for_v3.9_round2' of git://git.infradead.org/users/jcooper/linux into fixes

From Jason Cooper <jason@lakedaemon.net>:

mvebu fixes for v3.9 (round 2)

 - mvebu
    - interrupt fix
    - DT pinctrl definition for sdio

 - kirkwood
    - chip-delay for GoFlex Net (fix reading nand)
    - set mvsdio unused pins to invalid value for legacy boards (0 is valid)

 - orion5x
    - fix typo in gpio parameters
    - use correct irq in dtsi

* tag 'mvebu_fixes_for_v3.9_round2' of git://git.infradead.org/users/jcooper/linux:
  arm: mvebu: Fix pinctrl for Armada 370 Mirabox SDIO port.
  arm: orion5x: correct IRQ used in dtsi for mv_cesa
  arm: orion5x: fix orion5x.dtsi gpio parameters
  ARM: Kirkwood: fix unused mvsdio gpio pins
  arm: mvebu: Use local interrupt only for the timer 0
  ARM: kirkwood: Fix chip-delay for GoFlex Net

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2013-03-29 00:04:23 +01:00
Родитель d5b1598c12 879d68a445
Коммит 76a254f764
8 изменённых файлов: 24 добавлений и 6 удалений

Просмотреть файл

@ -54,7 +54,7 @@
}; };
mvsdio@d00d4000 { mvsdio@d00d4000 {
pinctrl-0 = <&sdio_pins2>; pinctrl-0 = <&sdio_pins3>;
pinctrl-names = "default"; pinctrl-names = "default";
status = "okay"; status = "okay";
/* /*

Просмотреть файл

@ -59,6 +59,12 @@
"mpp50", "mpp51", "mpp52"; "mpp50", "mpp51", "mpp52";
marvell,function = "sd0"; marvell,function = "sd0";
}; };
sdio_pins3: sdio-pins3 {
marvell,pins = "mpp48", "mpp49", "mpp50",
"mpp51", "mpp52", "mpp53";
marvell,function = "sd0";
};
}; };
gpio0: gpio@d0018100 { gpio0: gpio@d0018100 {

Просмотреть файл

@ -77,6 +77,7 @@
}; };
nand@3000000 { nand@3000000 {
chip-delay = <40>;
status = "okay"; status = "okay";
partition@0 { partition@0 {

Просмотреть файл

@ -13,6 +13,9 @@
compatible = "marvell,orion5x"; compatible = "marvell,orion5x";
interrupt-parent = <&intc>; interrupt-parent = <&intc>;
aliases {
gpio0 = &gpio0;
};
intc: interrupt-controller { intc: interrupt-controller {
compatible = "marvell,orion-intc", "marvell,intc"; compatible = "marvell,orion-intc", "marvell,intc";
interrupt-controller; interrupt-controller;
@ -32,7 +35,9 @@
#gpio-cells = <2>; #gpio-cells = <2>;
gpio-controller; gpio-controller;
reg = <0x10100 0x40>; reg = <0x10100 0x40>;
ngpio = <32>; ngpios = <32>;
interrupt-controller;
#interrupt-cells = <2>;
interrupts = <6>, <7>, <8>, <9>; interrupts = <6>, <7>, <8>, <9>;
}; };
@ -91,7 +96,7 @@
reg = <0x90000 0x10000>, reg = <0x90000 0x10000>,
<0xf2200000 0x800>; <0xf2200000 0x800>;
reg-names = "regs", "sram"; reg-names = "regs", "sram";
interrupts = <22>; interrupts = <28>;
status = "okay"; status = "okay";
}; };
}; };

Просмотреть файл

@ -53,6 +53,8 @@ static struct mv_sata_platform_data guruplug_sata_data = {
static struct mvsdio_platform_data guruplug_mvsdio_data = { static struct mvsdio_platform_data guruplug_mvsdio_data = {
/* unfortunately the CD signal has not been connected */ /* unfortunately the CD signal has not been connected */
.gpio_card_detect = -1,
.gpio_write_protect = -1,
}; };
static struct gpio_led guruplug_led_pins[] = { static struct gpio_led guruplug_led_pins[] = {

Просмотреть файл

@ -55,6 +55,7 @@ static struct mv_sata_platform_data openrd_sata_data = {
static struct mvsdio_platform_data openrd_mvsdio_data = { static struct mvsdio_platform_data openrd_mvsdio_data = {
.gpio_card_detect = 29, /* MPP29 used as SD card detect */ .gpio_card_detect = 29, /* MPP29 used as SD card detect */
.gpio_write_protect = -1,
}; };
static unsigned int openrd_mpp_config[] __initdata = { static unsigned int openrd_mpp_config[] __initdata = {

Просмотреть файл

@ -69,6 +69,7 @@ static struct mv_sata_platform_data rd88f6281_sata_data = {
static struct mvsdio_platform_data rd88f6281_mvsdio_data = { static struct mvsdio_platform_data rd88f6281_mvsdio_data = {
.gpio_card_detect = 28, .gpio_card_detect = 28,
.gpio_write_protect = -1,
}; };
static unsigned int rd88f6281_mpp_config[] __initdata = { static unsigned int rd88f6281_mpp_config[] __initdata = {

Просмотреть файл

@ -44,6 +44,8 @@
#define ARMADA_370_XP_MAX_PER_CPU_IRQS (28) #define ARMADA_370_XP_MAX_PER_CPU_IRQS (28)
#define ARMADA_370_XP_TIMER0_PER_CPU_IRQ (5)
#define ACTIVE_DOORBELLS (8) #define ACTIVE_DOORBELLS (8)
static DEFINE_RAW_SPINLOCK(irq_controller_lock); static DEFINE_RAW_SPINLOCK(irq_controller_lock);
@ -62,7 +64,7 @@ static void armada_370_xp_irq_mask(struct irq_data *d)
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
irq_hw_number_t hwirq = irqd_to_hwirq(d); irq_hw_number_t hwirq = irqd_to_hwirq(d);
if (hwirq > ARMADA_370_XP_MAX_PER_CPU_IRQS) if (hwirq != ARMADA_370_XP_TIMER0_PER_CPU_IRQ)
writel(hwirq, main_int_base + writel(hwirq, main_int_base +
ARMADA_370_XP_INT_CLEAR_ENABLE_OFFS); ARMADA_370_XP_INT_CLEAR_ENABLE_OFFS);
else else
@ -79,7 +81,7 @@ static void armada_370_xp_irq_unmask(struct irq_data *d)
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
irq_hw_number_t hwirq = irqd_to_hwirq(d); irq_hw_number_t hwirq = irqd_to_hwirq(d);
if (hwirq > ARMADA_370_XP_MAX_PER_CPU_IRQS) if (hwirq != ARMADA_370_XP_TIMER0_PER_CPU_IRQ)
writel(hwirq, main_int_base + writel(hwirq, main_int_base +
ARMADA_370_XP_INT_SET_ENABLE_OFFS); ARMADA_370_XP_INT_SET_ENABLE_OFFS);
else else
@ -147,7 +149,7 @@ static int armada_370_xp_mpic_irq_map(struct irq_domain *h,
writel(hw, main_int_base + ARMADA_370_XP_INT_SET_ENABLE_OFFS); writel(hw, main_int_base + ARMADA_370_XP_INT_SET_ENABLE_OFFS);
irq_set_status_flags(virq, IRQ_LEVEL); irq_set_status_flags(virq, IRQ_LEVEL);
if (hw < ARMADA_370_XP_MAX_PER_CPU_IRQS) { if (hw == ARMADA_370_XP_TIMER0_PER_CPU_IRQ) {
irq_set_percpu_devid(virq); irq_set_percpu_devid(virq);
irq_set_chip_and_handler(virq, &armada_370_xp_irq_chip, irq_set_chip_and_handler(virq, &armada_370_xp_irq_chip,
handle_percpu_devid_irq); handle_percpu_devid_irq);