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

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

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
Loading
Loading
Loading
Loading
+29 −20
Original line number Diff line number Diff line
@@ -67,27 +67,33 @@ static struct intc_prio_reg prio_registers[] __initdata = {
static DECLARE_INTC_DESC(intc_desc, "sh7705", vectors, NULL,
			 NULL, prio_registers, NULL);

static struct plat_sci_port sci_platform_data[] = {
	{
static struct plat_sci_port scif0_platform_data = {
	.mapbase	= 0xa4410000,
	.flags		= UPF_BOOT_AUTOCONF,
	.type		= PORT_SCIF,
	.irqs		= { 56, 56, 56 },
	}, {
};

static struct platform_device scif0_device = {
	.name		= "sh-sci",
	.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 },
	}, {
		.flags = 0,
	}
};

static struct platform_device sci_device = {
static struct platform_device scif1_device = {
	.name		= "sh-sci",
	.id		= -1,
	.id		= 1,
	.dev		= {
		.platform_data	= sci_platform_data,
		.platform_data	= &scif1_platform_data,
	},
};

@@ -210,10 +216,11 @@ static struct platform_device tmu2_device = {
};

static struct platform_device *sh7705_devices[] __initdata = {
	&scif0_device,
	&scif1_device,
	&tmu0_device,
	&tmu1_device,
	&tmu2_device,
	&sci_device,
	&rtc_device,
};

@@ -225,6 +232,8 @@ static int __init sh7705_devices_setup(void)
arch_initcall(sh7705_devices_setup);

static struct platform_device *sh7705_early_devices[] __initdata = {
	&scif0_device,
	&scif1_device,
	&tmu0_device,
	&tmu1_device,
	&tmu2_device,
+55 −25
Original line number Diff line number Diff line
@@ -106,44 +106,55 @@ static struct platform_device rtc_device = {
	.resource	= rtc_resources,
};

static struct plat_sci_port sci_platform_data[] = {
	{
static struct plat_sci_port scif0_platform_data = {
	.mapbase	= 0xfffffe80,
	.flags		= UPF_BOOT_AUTOCONF,
	.type		= PORT_SCI,
	.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) || \
    defined(CONFIG_CPU_SUBTYPE_SH7707) || \
    defined(CONFIG_CPU_SUBTYPE_SH7709)
	{
static struct plat_sci_port scif1_platform_data = {
	.mapbase	= 0xa4000150,
	.flags		= UPF_BOOT_AUTOCONF,
	.type		= PORT_SCIF,
	.irqs		= { 56, 56, 56, 56 },
};

static struct platform_device scif1_device = {
	.name		= "sh-sci",
	.id		= 1,
	.dev		= {
		.platform_data	= &scif1_platform_data,
	},
};
#endif
#if defined(CONFIG_CPU_SUBTYPE_SH7707) || \
    defined(CONFIG_CPU_SUBTYPE_SH7709)
	{
static struct plat_sci_port scif2_platform_data = {
	.mapbase	= 0xa4000140,
	.flags		= UPF_BOOT_AUTOCONF,
	.type		= PORT_IRDA,
	.irqs		= { 52, 52, 52, 52 },
	},
#endif
	{
		.flags = 0,
	}
};

static struct platform_device sci_device = {
static struct platform_device scif2_device = {
	.name		= "sh-sci",
	.id		= -1,
	.id		= 2,
	.dev		= {
		.platform_data	= sci_platform_data,
		.platform_data	= &scif2_platform_data,
	},
};
#endif

static struct sh_timer_config tmu0_platform_data = {
	.name = "TMU0",
@@ -238,10 +249,19 @@ static struct platform_device tmu2_device = {
};

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,
	&tmu1_device,
	&tmu2_device,
	&sci_device,
	&rtc_device,
};

@@ -253,6 +273,16 @@ static int __init sh770x_devices_setup(void)
arch_initcall(sh770x_devices_setup);

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,
	&tmu1_device,
	&tmu2_device,
+29 −21
Original line number Diff line number Diff line
@@ -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,
	.flags		= UPF_BOOT_AUTOCONF,
	.type		= PORT_SCIF,
	.irqs		= { 52, 52, 52, 52 },
	}, {
};

static struct platform_device scif0_device = {
	.name		= "sh-sci",
	.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 },
	}, {

		.flags = 0,
	}
};

static struct platform_device sci_device = {
static struct platform_device scif1_device = {
	.name		= "sh-sci",
	.id		= -1,
	.id		= 1,
	.dev		= {
		.platform_data	= sci_platform_data,
		.platform_data	= &scif1_platform_data,
	},
};

@@ -214,10 +219,11 @@ static struct platform_device tmu2_device = {
};

static struct platform_device *sh7710_devices[] __initdata = {
	&scif0_device,
	&scif1_device,
	&tmu0_device,
	&tmu1_device,
	&tmu2_device,
	&sci_device,
	&rtc_device,
};

@@ -229,6 +235,8 @@ static int __init sh7710_devices_setup(void)
arch_initcall(sh7710_devices_setup);

static struct platform_device *sh7710_early_devices[] __initdata = {
	&scif0_device,
	&scif1_device,
	&tmu0_device,
	&tmu1_device,
	&tmu2_device,
+29 −21
Original line number Diff line number Diff line
@@ -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,
	.flags		= UPF_BOOT_AUTOCONF,
	.type		= PORT_SCIF,
	.irqs		= { 80, 80, 80, 80 },
	}, {
};

static struct platform_device scif0_device = {
	.name		= "sh-sci",
	.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 },
	}, {

		.flags = 0,
	}
};

static struct platform_device sci_device = {
static struct platform_device scif1_device = {
	.name		= "sh-sci",
	.id		= -1,
	.id		= 1,
	.dev		= {
		.platform_data	= sci_platform_data,
		.platform_data	= &scif1_platform_data,
	},
};

@@ -369,6 +374,8 @@ static struct platform_device tmu2_device = {
};

static struct platform_device *sh7720_devices[] __initdata = {
	&scif0_device,
	&scif1_device,
	&cmt0_device,
	&cmt1_device,
	&cmt2_device,
@@ -378,7 +385,6 @@ static struct platform_device *sh7720_devices[] __initdata = {
	&tmu1_device,
	&tmu2_device,
	&rtc_device,
	&sci_device,
	&usb_ohci_device,
	&usbf_device,
};
@@ -391,6 +397,8 @@ static int __init sh7720_devices_setup(void)
arch_initcall(sh7720_devices_setup);

static struct platform_device *sh7720_early_devices[] __initdata = {
	&scif0_device,
	&scif1_device,
	&cmt0_device,
	&cmt1_device,
	&cmt2_device,