Commit 44658dfb authored by Magnus Damm's avatar Magnus Damm Committed by Paul Mundt

sh: sh3 scif pdata (sh7705/sh770x/sh7710/sh7720)

This patch breaks out the sh3 scif serial port platform
data from a shared platform device to one platform
device per port. Also, add serial ports to the list of
early platform devices.
Signed-off-by: default avatarMagnus Damm <damm@opensource.se>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent be091d20
...@@ -67,27 +67,33 @@ static struct intc_prio_reg prio_registers[] __initdata = { ...@@ -67,27 +67,33 @@ static struct intc_prio_reg prio_registers[] __initdata = {
static DECLARE_INTC_DESC(intc_desc, "sh7705", vectors, NULL, static DECLARE_INTC_DESC(intc_desc, "sh7705", vectors, NULL,
NULL, prio_registers, NULL); NULL, prio_registers, NULL);
static struct plat_sci_port sci_platform_data[] = { static struct plat_sci_port scif0_platform_data = {
{ .mapbase = 0xa4410000,
.mapbase = 0xa4410000, .flags = UPF_BOOT_AUTOCONF,
.flags = UPF_BOOT_AUTOCONF, .type = PORT_SCIF,
.type = PORT_SCIF, .irqs = { 56, 56, 56 },
.irqs = { 56, 56, 56 }, };
}, {
.mapbase = 0xa4400000, static struct platform_device scif0_device = {
.flags = UPF_BOOT_AUTOCONF,
.type = PORT_SCIF,
.irqs = { 52, 52, 52 },
}, {
.flags = 0,
}
};
static struct platform_device sci_device = {
.name = "sh-sci", .name = "sh-sci",
.id = -1, .id = 0,
.dev = {
.platform_data = &scif0_platform_data,
},
};
static struct plat_sci_port scif1_platform_data = {
.mapbase = 0xa4400000,
.flags = UPF_BOOT_AUTOCONF,
.type = PORT_SCIF,
.irqs = { 52, 52, 52 },
};
static struct platform_device scif1_device = {
.name = "sh-sci",
.id = 1,
.dev = { .dev = {
.platform_data = sci_platform_data, .platform_data = &scif1_platform_data,
}, },
}; };
...@@ -210,10 +216,11 @@ static struct platform_device tmu2_device = { ...@@ -210,10 +216,11 @@ static struct platform_device tmu2_device = {
}; };
static struct platform_device *sh7705_devices[] __initdata = { static struct platform_device *sh7705_devices[] __initdata = {
&scif0_device,
&scif1_device,
&tmu0_device, &tmu0_device,
&tmu1_device, &tmu1_device,
&tmu2_device, &tmu2_device,
&sci_device,
&rtc_device, &rtc_device,
}; };
...@@ -225,6 +232,8 @@ static int __init sh7705_devices_setup(void) ...@@ -225,6 +232,8 @@ static int __init sh7705_devices_setup(void)
arch_initcall(sh7705_devices_setup); arch_initcall(sh7705_devices_setup);
static struct platform_device *sh7705_early_devices[] __initdata = { static struct platform_device *sh7705_early_devices[] __initdata = {
&scif0_device,
&scif1_device,
&tmu0_device, &tmu0_device,
&tmu1_device, &tmu1_device,
&tmu2_device, &tmu2_device,
......
...@@ -106,44 +106,55 @@ static struct platform_device rtc_device = { ...@@ -106,44 +106,55 @@ static struct platform_device rtc_device = {
.resource = rtc_resources, .resource = rtc_resources,
}; };
static struct plat_sci_port sci_platform_data[] = { static struct plat_sci_port scif0_platform_data = {
{ .mapbase = 0xfffffe80,
.mapbase = 0xfffffe80, .flags = UPF_BOOT_AUTOCONF,
.flags = UPF_BOOT_AUTOCONF, .type = PORT_SCI,
.type = PORT_SCI, .irqs = { 23, 23, 23, 0 },
.irqs = { 23, 23, 23, 0 }, };
static struct platform_device scif0_device = {
.name = "sh-sci",
.id = 0,
.dev = {
.platform_data = &scif0_platform_data,
}, },
};
#if defined(CONFIG_CPU_SUBTYPE_SH7706) || \ #if defined(CONFIG_CPU_SUBTYPE_SH7706) || \
defined(CONFIG_CPU_SUBTYPE_SH7707) || \ defined(CONFIG_CPU_SUBTYPE_SH7707) || \
defined(CONFIG_CPU_SUBTYPE_SH7709) defined(CONFIG_CPU_SUBTYPE_SH7709)
{ static struct plat_sci_port scif1_platform_data = {
.mapbase = 0xa4000150, .mapbase = 0xa4000150,
.flags = UPF_BOOT_AUTOCONF, .flags = UPF_BOOT_AUTOCONF,
.type = PORT_SCIF, .type = PORT_SCIF,
.irqs = { 56, 56, 56, 56 }, .irqs = { 56, 56, 56, 56 },
};
static struct platform_device scif1_device = {
.name = "sh-sci",
.id = 1,
.dev = {
.platform_data = &scif1_platform_data,
}, },
};
#endif #endif
#if defined(CONFIG_CPU_SUBTYPE_SH7707) || \ #if defined(CONFIG_CPU_SUBTYPE_SH7707) || \
defined(CONFIG_CPU_SUBTYPE_SH7709) defined(CONFIG_CPU_SUBTYPE_SH7709)
{ static struct plat_sci_port scif2_platform_data = {
.mapbase = 0xa4000140, .mapbase = 0xa4000140,
.flags = UPF_BOOT_AUTOCONF, .flags = UPF_BOOT_AUTOCONF,
.type = PORT_IRDA, .type = PORT_IRDA,
.irqs = { 52, 52, 52, 52 }, .irqs = { 52, 52, 52, 52 },
},
#endif
{
.flags = 0,
}
}; };
static struct platform_device sci_device = { static struct platform_device scif2_device = {
.name = "sh-sci", .name = "sh-sci",
.id = -1, .id = 2,
.dev = { .dev = {
.platform_data = sci_platform_data, .platform_data = &scif2_platform_data,
}, },
}; };
#endif
static struct sh_timer_config tmu0_platform_data = { static struct sh_timer_config tmu0_platform_data = {
.name = "TMU0", .name = "TMU0",
...@@ -238,10 +249,19 @@ static struct platform_device tmu2_device = { ...@@ -238,10 +249,19 @@ static struct platform_device tmu2_device = {
}; };
static struct platform_device *sh770x_devices[] __initdata = { static struct platform_device *sh770x_devices[] __initdata = {
&scif0_device,
#if defined(CONFIG_CPU_SUBTYPE_SH7706) || \
defined(CONFIG_CPU_SUBTYPE_SH7707) || \
defined(CONFIG_CPU_SUBTYPE_SH7709)
&scif1_device,
#endif
#if defined(CONFIG_CPU_SUBTYPE_SH7707) || \
defined(CONFIG_CPU_SUBTYPE_SH7709)
&scif2_device,
#endif
&tmu0_device, &tmu0_device,
&tmu1_device, &tmu1_device,
&tmu2_device, &tmu2_device,
&sci_device,
&rtc_device, &rtc_device,
}; };
...@@ -253,6 +273,16 @@ static int __init sh770x_devices_setup(void) ...@@ -253,6 +273,16 @@ static int __init sh770x_devices_setup(void)
arch_initcall(sh770x_devices_setup); arch_initcall(sh770x_devices_setup);
static struct platform_device *sh770x_early_devices[] __initdata = { static struct platform_device *sh770x_early_devices[] __initdata = {
&scif0_device,
#if defined(CONFIG_CPU_SUBTYPE_SH7706) || \
defined(CONFIG_CPU_SUBTYPE_SH7707) || \
defined(CONFIG_CPU_SUBTYPE_SH7709)
&scif1_device,
#endif
#if defined(CONFIG_CPU_SUBTYPE_SH7707) || \
defined(CONFIG_CPU_SUBTYPE_SH7709)
&scif2_device,
#endif
&tmu0_device, &tmu0_device,
&tmu1_device, &tmu1_device,
&tmu2_device, &tmu2_device,
......
...@@ -96,28 +96,33 @@ static struct platform_device rtc_device = { ...@@ -96,28 +96,33 @@ static struct platform_device rtc_device = {
}, },
}; };
static struct plat_sci_port sci_platform_data[] = { static struct plat_sci_port scif0_platform_data = {
{ .mapbase = 0xa4400000,
.mapbase = 0xa4400000, .flags = UPF_BOOT_AUTOCONF,
.flags = UPF_BOOT_AUTOCONF, .type = PORT_SCIF,
.type = PORT_SCIF, .irqs = { 52, 52, 52, 52 },
.irqs = { 52, 52, 52, 52 }, };
}, {
.mapbase = 0xa4410000, static struct platform_device scif0_device = {
.flags = UPF_BOOT_AUTOCONF,
.type = PORT_SCIF,
.irqs = { 56, 56, 56, 56 },
}, {
.flags = 0,
}
};
static struct platform_device sci_device = {
.name = "sh-sci", .name = "sh-sci",
.id = -1, .id = 0,
.dev = {
.platform_data = &scif0_platform_data,
},
};
static struct plat_sci_port scif1_platform_data = {
.mapbase = 0xa4410000,
.flags = UPF_BOOT_AUTOCONF,
.type = PORT_SCIF,
.irqs = { 56, 56, 56, 56 },
};
static struct platform_device scif1_device = {
.name = "sh-sci",
.id = 1,
.dev = { .dev = {
.platform_data = sci_platform_data, .platform_data = &scif1_platform_data,
}, },
}; };
...@@ -214,10 +219,11 @@ static struct platform_device tmu2_device = { ...@@ -214,10 +219,11 @@ static struct platform_device tmu2_device = {
}; };
static struct platform_device *sh7710_devices[] __initdata = { static struct platform_device *sh7710_devices[] __initdata = {
&scif0_device,
&scif1_device,
&tmu0_device, &tmu0_device,
&tmu1_device, &tmu1_device,
&tmu2_device, &tmu2_device,
&sci_device,
&rtc_device, &rtc_device,
}; };
...@@ -229,6 +235,8 @@ static int __init sh7710_devices_setup(void) ...@@ -229,6 +235,8 @@ static int __init sh7710_devices_setup(void)
arch_initcall(sh7710_devices_setup); arch_initcall(sh7710_devices_setup);
static struct platform_device *sh7710_early_devices[] __initdata = { static struct platform_device *sh7710_early_devices[] __initdata = {
&scif0_device,
&scif1_device,
&tmu0_device, &tmu0_device,
&tmu1_device, &tmu1_device,
&tmu2_device, &tmu2_device,
......
...@@ -48,28 +48,33 @@ static struct platform_device rtc_device = { ...@@ -48,28 +48,33 @@ static struct platform_device rtc_device = {
}, },
}; };
static struct plat_sci_port sci_platform_data[] = { static struct plat_sci_port scif0_platform_data = {
{ .mapbase = 0xa4430000,
.mapbase = 0xa4430000, .flags = UPF_BOOT_AUTOCONF,
.flags = UPF_BOOT_AUTOCONF, .type = PORT_SCIF,
.type = PORT_SCIF, .irqs = { 80, 80, 80, 80 },
.irqs = { 80, 80, 80, 80 }, };
}, {
.mapbase = 0xa4438000, static struct platform_device scif0_device = {
.flags = UPF_BOOT_AUTOCONF,
.type = PORT_SCIF,
.irqs = { 81, 81, 81, 81 },
}, {
.flags = 0,
}
};
static struct platform_device sci_device = {
.name = "sh-sci", .name = "sh-sci",
.id = -1, .id = 0,
.dev = {
.platform_data = &scif0_platform_data,
},
};
static struct plat_sci_port scif1_platform_data = {
.mapbase = 0xa4438000,
.flags = UPF_BOOT_AUTOCONF,
.type = PORT_SCIF,
.irqs = { 81, 81, 81, 81 },
};
static struct platform_device scif1_device = {
.name = "sh-sci",
.id = 1,
.dev = { .dev = {
.platform_data = sci_platform_data, .platform_data = &scif1_platform_data,
}, },
}; };
...@@ -369,6 +374,8 @@ static struct platform_device tmu2_device = { ...@@ -369,6 +374,8 @@ static struct platform_device tmu2_device = {
}; };
static struct platform_device *sh7720_devices[] __initdata = { static struct platform_device *sh7720_devices[] __initdata = {
&scif0_device,
&scif1_device,
&cmt0_device, &cmt0_device,
&cmt1_device, &cmt1_device,
&cmt2_device, &cmt2_device,
...@@ -378,7 +385,6 @@ static struct platform_device *sh7720_devices[] __initdata = { ...@@ -378,7 +385,6 @@ static struct platform_device *sh7720_devices[] __initdata = {
&tmu1_device, &tmu1_device,
&tmu2_device, &tmu2_device,
&rtc_device, &rtc_device,
&sci_device,
&usb_ohci_device, &usb_ohci_device,
&usbf_device, &usbf_device,
}; };
...@@ -391,6 +397,8 @@ static int __init sh7720_devices_setup(void) ...@@ -391,6 +397,8 @@ static int __init sh7720_devices_setup(void)
arch_initcall(sh7720_devices_setup); arch_initcall(sh7720_devices_setup);
static struct platform_device *sh7720_early_devices[] __initdata = { static struct platform_device *sh7720_early_devices[] __initdata = {
&scif0_device,
&scif1_device,
&cmt0_device, &cmt0_device,
&cmt1_device, &cmt1_device,
&cmt2_device, &cmt2_device,
......
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