|
@@ -143,3 +143,140 @@ static struct resource sti_resources[] = {
|
|
|
[0] = {
|
|
|
.name = "STI",
|
|
|
.start = 0xe0180000,
|
|
|
+ .end = 0xe0180053,
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
+ },
|
|
|
+ [1] = {
|
|
|
+ .start = 157,
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device sti_device = {
|
|
|
+ .name = "em_sti",
|
|
|
+ .id = 0,
|
|
|
+ .resource = sti_resources,
|
|
|
+ .num_resources = ARRAY_SIZE(sti_resources),
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
+/* GIO */
|
|
|
+static struct gpio_em_config gio0_config = {
|
|
|
+ .gpio_base = 0,
|
|
|
+ .irq_base = EMEV2_GPIO_IRQ(0),
|
|
|
+ .number_of_pins = 32,
|
|
|
+};
|
|
|
+
|
|
|
+static struct resource gio0_resources[] = {
|
|
|
+ [0] = {
|
|
|
+ .name = "GIO_000",
|
|
|
+ .start = 0xe0050000,
|
|
|
+ .end = 0xe005002b,
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
+ },
|
|
|
+ [1] = {
|
|
|
+ .name = "GIO_000",
|
|
|
+ .start = 0xe0050040,
|
|
|
+ .end = 0xe005005f,
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
+ },
|
|
|
+ [2] = {
|
|
|
+ .start = 99,
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
+ },
|
|
|
+ [3] = {
|
|
|
+ .start = 100,
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device gio0_device = {
|
|
|
+ .name = "em_gio",
|
|
|
+ .id = 0,
|
|
|
+ .resource = gio0_resources,
|
|
|
+ .num_resources = ARRAY_SIZE(gio0_resources),
|
|
|
+ .dev = {
|
|
|
+ .platform_data = &gio0_config,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct gpio_em_config gio1_config = {
|
|
|
+ .gpio_base = 32,
|
|
|
+ .irq_base = EMEV2_GPIO_IRQ(32),
|
|
|
+ .number_of_pins = 32,
|
|
|
+};
|
|
|
+
|
|
|
+static struct resource gio1_resources[] = {
|
|
|
+ [0] = {
|
|
|
+ .name = "GIO_032",
|
|
|
+ .start = 0xe0050080,
|
|
|
+ .end = 0xe00500ab,
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
+ },
|
|
|
+ [1] = {
|
|
|
+ .name = "GIO_032",
|
|
|
+ .start = 0xe00500c0,
|
|
|
+ .end = 0xe00500df,
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
+ },
|
|
|
+ [2] = {
|
|
|
+ .start = 101,
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
+ },
|
|
|
+ [3] = {
|
|
|
+ .start = 102,
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device gio1_device = {
|
|
|
+ .name = "em_gio",
|
|
|
+ .id = 1,
|
|
|
+ .resource = gio1_resources,
|
|
|
+ .num_resources = ARRAY_SIZE(gio1_resources),
|
|
|
+ .dev = {
|
|
|
+ .platform_data = &gio1_config,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct gpio_em_config gio2_config = {
|
|
|
+ .gpio_base = 64,
|
|
|
+ .irq_base = EMEV2_GPIO_IRQ(64),
|
|
|
+ .number_of_pins = 32,
|
|
|
+};
|
|
|
+
|
|
|
+static struct resource gio2_resources[] = {
|
|
|
+ [0] = {
|
|
|
+ .name = "GIO_064",
|
|
|
+ .start = 0xe0050100,
|
|
|
+ .end = 0xe005012b,
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
+ },
|
|
|
+ [1] = {
|
|
|
+ .name = "GIO_064",
|
|
|
+ .start = 0xe0050140,
|
|
|
+ .end = 0xe005015f,
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
+ },
|
|
|
+ [2] = {
|
|
|
+ .start = 103,
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
+ },
|
|
|
+ [3] = {
|
|
|
+ .start = 104,
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device gio2_device = {
|
|
|
+ .name = "em_gio",
|
|
|
+ .id = 2,
|
|
|
+ .resource = gio2_resources,
|
|
|
+ .num_resources = ARRAY_SIZE(gio2_resources),
|
|
|
+ .dev = {
|
|
|
+ .platform_data = &gio2_config,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static struct gpio_em_config gio3_config = {
|
|
|
+ .gpio_base = 96,
|