Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5ae30b47 authored by Sascha Hauer's avatar Sascha Hauer
Browse files

ARM i.MX: Move gpio initialization to SoC specific files



This saves us from soc level dispatching in generic files

Signed-off-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
parent 9685a360
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -23,6 +23,8 @@

#include <mach/common.h>
#include <mach/hardware.h>
#include <mach/gpio.h>
#include <mach/irqs.h>

static struct map_desc imx_io_desc[] __initdata = {
	imx_map_entry(MX1, IO, MT_DEVICE),
@@ -39,10 +41,15 @@ void __init imx1_init_early(void)
	mxc_arch_reset_init(MX1_IO_ADDRESS(MX1_WDT_BASE_ADDR));
}

int imx1_register_gpios(void);
static struct mxc_gpio_port imx1_gpio_ports[] = {
	DEFINE_IMX_GPIO_PORT_IRQ(MX1, 0, 1, MX1_GPIO_INT_PORTA),
	DEFINE_IMX_GPIO_PORT_IRQ(MX1, 1, 2, MX1_GPIO_INT_PORTB),
	DEFINE_IMX_GPIO_PORT_IRQ(MX1, 2, 3, MX1_GPIO_INT_PORTC),
	DEFINE_IMX_GPIO_PORT_IRQ(MX1, 3, 4, MX1_GPIO_INT_PORTD),
};

void __init mx1_init_irq(void)
{
	mxc_init_irq(MX1_IO_ADDRESS(MX1_AVIC_BASE_ADDR));
	imx1_register_gpios();
	mxc_gpio_init(imx1_gpio_ports,	ARRAY_SIZE(imx1_gpio_ports));
}
+11 −2
Original line number Diff line number Diff line
@@ -24,6 +24,8 @@
#include <mach/common.h>
#include <asm/pgtable.h>
#include <asm/mach/map.h>
#include <mach/gpio.h>
#include <mach/irqs.h>

/* MX21 memory map definition */
static struct map_desc imx21_io_desc[] __initdata = {
@@ -65,10 +67,17 @@ void __init imx21_init_early(void)
	mxc_arch_reset_init(MX21_IO_ADDRESS(MX21_WDOG_BASE_ADDR));
}

int imx21_register_gpios(void);
static struct mxc_gpio_port imx21_gpio_ports[] = {
	DEFINE_IMX_GPIO_PORT_IRQ(MX21, 0, 1, MX21_INT_GPIO),
	DEFINE_IMX_GPIO_PORT(MX21, 1, 2),
	DEFINE_IMX_GPIO_PORT(MX21, 2, 3),
	DEFINE_IMX_GPIO_PORT(MX21, 3, 4),
	DEFINE_IMX_GPIO_PORT(MX21, 4, 5),
	DEFINE_IMX_GPIO_PORT(MX21, 5, 6),
};

void __init mx21_init_irq(void)
{
	mxc_init_irq(MX21_IO_ADDRESS(MX21_AVIC_BASE_ADDR));
	imx21_register_gpios();
	mxc_gpio_init(imx21_gpio_ports,	ARRAY_SIZE(imx21_gpio_ports));
}
+9 −2
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@
#include <mach/hardware.h>
#include <mach/mx25.h>
#include <mach/iomux-v3.h>
#include <mach/gpio.h>
#include <mach/irqs.h>

/*
 * This table defines static virtual address mappings for I/O regions.
@@ -55,11 +57,16 @@ void __init imx25_init_early(void)
	mxc_arch_reset_init(MX25_IO_ADDRESS(MX25_WDOG_BASE_ADDR));
}

int imx25_register_gpios(void);
static struct mxc_gpio_port imx25_gpio_ports[] = {
	DEFINE_IMX_GPIO_PORT_IRQ(MX25, 0, 1, MX25_INT_GPIO1),
	DEFINE_IMX_GPIO_PORT_IRQ(MX25, 1, 2, MX25_INT_GPIO2),
	DEFINE_IMX_GPIO_PORT_IRQ(MX25, 2, 3, MX25_INT_GPIO3),
	DEFINE_IMX_GPIO_PORT_IRQ(MX25, 3, 4, MX25_INT_GPIO4),
};

void __init mx25_init_irq(void)
{
	mxc_init_irq(MX25_IO_ADDRESS(MX25_AVIC_BASE_ADDR));
	imx25_register_gpios();
	mxc_gpio_init(imx25_gpio_ports,	ARRAY_SIZE(imx25_gpio_ports));
}
+11 −2
Original line number Diff line number Diff line
@@ -24,6 +24,8 @@
#include <mach/common.h>
#include <asm/pgtable.h>
#include <asm/mach/map.h>
#include <mach/gpio.h>
#include <mach/irqs.h>

/* MX27 memory map definition */
static struct map_desc imx27_io_desc[] __initdata = {
@@ -65,10 +67,17 @@ void __init imx27_init_early(void)
	mxc_arch_reset_init(MX27_IO_ADDRESS(MX27_WDOG_BASE_ADDR));
}

int imx27_register_gpios(void);
static struct mxc_gpio_port imx27_gpio_ports[] = {
	DEFINE_IMX_GPIO_PORT_IRQ(MX27, 0, 1, MX27_INT_GPIO),
	DEFINE_IMX_GPIO_PORT(MX27, 1, 2),
	DEFINE_IMX_GPIO_PORT(MX27, 2, 3),
	DEFINE_IMX_GPIO_PORT(MX27, 3, 4),
	DEFINE_IMX_GPIO_PORT(MX27, 4, 5),
	DEFINE_IMX_GPIO_PORT(MX27, 5, 6),
};

void __init mx27_init_irq(void)
{
	mxc_init_irq(MX27_IO_ADDRESS(MX27_AVIC_BASE_ADDR));
	imx27_register_gpios();
	mxc_gpio_init(imx27_gpio_ports,	ARRAY_SIZE(imx27_gpio_ports));
}
+16 −4
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@
#include <mach/common.h>
#include <mach/hardware.h>
#include <mach/iomux-v3.h>
#include <mach/gpio.h>
#include <mach/irqs.h>

#ifdef CONFIG_SOC_IMX31
static struct map_desc mx31_io_desc[] __initdata = {
@@ -53,11 +55,16 @@ void __init imx31_init_early(void)
	mxc_arch_reset_init(MX31_IO_ADDRESS(MX31_WDOG_BASE_ADDR));
}

int imx31_register_gpios(void);
static struct mxc_gpio_port imx31_gpio_ports[] = {
	DEFINE_IMX_GPIO_PORT_IRQ(MX31, 0, 1, MX31_INT_GPIO1),
	DEFINE_IMX_GPIO_PORT_IRQ(MX31, 1, 2, MX31_INT_GPIO2),
	DEFINE_IMX_GPIO_PORT_IRQ(MX31, 2, 3, MX31_INT_GPIO3),
};

void __init mx31_init_irq(void)
{
	mxc_init_irq(MX31_IO_ADDRESS(MX31_AVIC_BASE_ADDR));
	imx31_register_gpios();
	mxc_gpio_init(imx31_gpio_ports,	ARRAY_SIZE(imx31_gpio_ports));
}
#endif /* ifdef CONFIG_SOC_IMX31 */

@@ -82,11 +89,16 @@ void __init imx35_init_early(void)
	mxc_arch_reset_init(MX35_IO_ADDRESS(MX35_WDOG_BASE_ADDR));
}

int imx35_register_gpios(void);
static struct mxc_gpio_port imx35_gpio_ports[] = {
	DEFINE_IMX_GPIO_PORT_IRQ(MX35, 0, 1, MX35_INT_GPIO1),
	DEFINE_IMX_GPIO_PORT_IRQ(MX35, 1, 2, MX35_INT_GPIO2),
	DEFINE_IMX_GPIO_PORT_IRQ(MX35, 2, 3, MX35_INT_GPIO3),
};

void __init mx35_init_irq(void)
{
	mxc_init_irq(MX35_IO_ADDRESS(MX35_AVIC_BASE_ADDR));
	imx35_register_gpios();
	mxc_gpio_init(imx35_gpio_ports,	ARRAY_SIZE(imx35_gpio_ports));
}
#endif /* ifdef CONFIG_SOC_IMX35 */

Loading