Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (33 commits) sh: Fix test of unsigned in se7722_irq_demux() sh: mach-ecovec24: Add FSI sound support sh: mach-ecovec24: Add mt9t112 camera support sh: mach-ecovec24: Add tw9910 support sh: MSIOF/mmc_spi platform data for the Ecovec24 board sh: ms7724se: Add ak4642 support sh: Fix up FPU build for SH5 sh: Remove old early serial console code V2 sh: sh5 scif pdata (sh5-101/sh5-103) sh: sh4a scif pdata (sh7757/sh7763/sh7770/sh7780/sh7785/sh7786/x3) sh: sh4a scif pdata (sh7343/sh7366/sh7722/sh7723/sh7724) sh: sh4 scif pdata (sh7750/sh7760/sh4-202) sh: sh3 scif pdata (sh7705/sh770x/sh7710/sh7720) sh: sh2a scif pdata (sh7201/sh7203/sh7206/mxg) sh: sh2 scif pdata (sh7616) sh-sci: Extend sh-sci driver with early console V2 sh: Stub in P3 ioremap support for nommu parts. sh: wire up vmallocinfo support in ioremap() implementations. sh: Make the unaligned trap handler always obey notification levels. sh: Couple kernel and user write page perm bits for CONFIG_X2TLB ...
Šī revīzija ir iekļauta:
@@ -22,11 +22,10 @@ obj-y := debugtraps.o dma-nommu.o dumpstack.o \
|
||||
obj-y += cpu/
|
||||
obj-$(CONFIG_VSYSCALL) += vsyscall/
|
||||
obj-$(CONFIG_SMP) += smp.o
|
||||
obj-$(CONFIG_SH_STANDARD_BIOS) += sh_bios.o
|
||||
obj-$(CONFIG_SH_STANDARD_BIOS) += sh_bios.o early_printk.o
|
||||
obj-$(CONFIG_KGDB) += kgdb.o
|
||||
obj-$(CONFIG_SH_CPU_FREQ) += cpufreq.o
|
||||
obj-$(CONFIG_MODULES) += sh_ksyms_$(BITS).o module.o
|
||||
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
|
||||
obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o
|
||||
obj-$(CONFIG_CRASH_DUMP) += crash_dump.o
|
||||
obj-$(CONFIG_STACKTRACE) += stacktrace.o
|
||||
|
@@ -17,16 +17,17 @@
|
||||
* for more details.
|
||||
*/
|
||||
#include <linux/init.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/topology.h>
|
||||
|
||||
static inline struct ipr_desc *get_ipr_desc(unsigned int irq)
|
||||
{
|
||||
struct irq_chip *chip = get_irq_chip(irq);
|
||||
return (void *)((char *)chip - offsetof(struct ipr_desc, chip));
|
||||
return container_of(chip, struct ipr_desc, chip);
|
||||
}
|
||||
|
||||
static void disable_ipr_irq(unsigned int irq)
|
||||
|
@@ -59,32 +59,48 @@ static struct intc_prio_reg prio_registers[] __initdata = {
|
||||
static DECLARE_INTC_DESC(intc_desc, "sh7619", vectors, NULL,
|
||||
NULL, prio_registers, NULL);
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xf8400000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 88, 88, 88, 88 },
|
||||
}, {
|
||||
.mapbase = 0xf8410000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 92, 92, 92, 92 },
|
||||
}, {
|
||||
.mapbase = 0xf8420000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 96, 96, 96, 96 },
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xf8400000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 88, 88, 88, 88 },
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
static struct platform_device scif0_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
.platform_data = &scif0_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xf8410000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 92, 92, 92, 92 },
|
||||
};
|
||||
|
||||
static struct platform_device scif1_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &scif1_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xf8420000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 96, 96, 96, 96 },
|
||||
};
|
||||
|
||||
static struct platform_device scif2_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 2,
|
||||
.dev = {
|
||||
.platform_data = &scif2_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -176,7 +192,9 @@ static struct platform_device cmt1_device = {
|
||||
};
|
||||
|
||||
static struct platform_device *sh7619_devices[] __initdata = {
|
||||
&sci_device,
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
ð_device,
|
||||
&cmt0_device,
|
||||
&cmt1_device,
|
||||
@@ -195,6 +213,9 @@ void __init plat_irq_setup(void)
|
||||
}
|
||||
|
||||
static struct platform_device *sh7619_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&cmt0_device,
|
||||
&cmt1_device,
|
||||
};
|
||||
|
@@ -207,27 +207,23 @@ static struct platform_device mtu2_2_device = {
|
||||
.num_resources = ARRAY_SIZE(mtu2_2_resources),
|
||||
};
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xff804000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 220, 220, 220, 220 },
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xff804000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 220, 220, 220, 220 },
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
static struct platform_device scif0_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
.platform_data = &scif0_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device *mxg_devices[] __initdata = {
|
||||
&sci_device,
|
||||
&scif0_device,
|
||||
&mtu2_0_device,
|
||||
&mtu2_1_device,
|
||||
&mtu2_2_device,
|
||||
@@ -246,6 +242,7 @@ void __init plat_irq_setup(void)
|
||||
}
|
||||
|
||||
static struct platform_device *mxg_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&mtu2_0_device,
|
||||
&mtu2_1_device,
|
||||
&mtu2_2_device,
|
||||
|
@@ -177,57 +177,123 @@ static struct intc_mask_reg mask_registers[] __initdata = {
|
||||
static DECLARE_INTC_DESC(intc_desc, "sh7201", vectors, groups,
|
||||
mask_registers, prio_registers, NULL);
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xfffe8000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 180, 180, 180, 180 }
|
||||
}, {
|
||||
.mapbase = 0xfffe8800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 184, 184, 184, 184 }
|
||||
}, {
|
||||
.mapbase = 0xfffe9000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 188, 188, 188, 188 }
|
||||
}, {
|
||||
.mapbase = 0xfffe9800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 192, 192, 192, 192 }
|
||||
}, {
|
||||
.mapbase = 0xfffea000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 196, 196, 196, 196 }
|
||||
}, {
|
||||
.mapbase = 0xfffea800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 200, 200, 200, 200 }
|
||||
}, {
|
||||
.mapbase = 0xfffeb000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 204, 204, 204, 204 }
|
||||
}, {
|
||||
.mapbase = 0xfffeb800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 208, 208, 208, 208 }
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xfffe8000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 180, 180, 180, 180 }
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
static struct platform_device scif0_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
.platform_data = &scif0_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xfffe8800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 184, 184, 184, 184 }
|
||||
};
|
||||
|
||||
static struct platform_device scif1_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &scif1_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xfffe9000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 188, 188, 188, 188 }
|
||||
};
|
||||
|
||||
static struct platform_device scif2_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 2,
|
||||
.dev = {
|
||||
.platform_data = &scif2_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xfffe9800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 192, 192, 192, 192 }
|
||||
};
|
||||
|
||||
static struct platform_device scif3_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 3,
|
||||
.dev = {
|
||||
.platform_data = &scif3_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif4_platform_data = {
|
||||
.mapbase = 0xfffea000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 196, 196, 196, 196 }
|
||||
};
|
||||
|
||||
static struct platform_device scif4_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 4,
|
||||
.dev = {
|
||||
.platform_data = &scif4_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif5_platform_data = {
|
||||
.mapbase = 0xfffea800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 200, 200, 200, 200 }
|
||||
};
|
||||
|
||||
static struct platform_device scif5_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 5,
|
||||
.dev = {
|
||||
.platform_data = &scif5_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif6_platform_data = {
|
||||
.mapbase = 0xfffeb000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 204, 204, 204, 204 }
|
||||
};
|
||||
|
||||
static struct platform_device scif6_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 6,
|
||||
.dev = {
|
||||
.platform_data = &scif6_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif7_platform_data = {
|
||||
.mapbase = 0xfffeb800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 208, 208, 208, 208 }
|
||||
};
|
||||
|
||||
static struct platform_device scif7_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 7,
|
||||
.dev = {
|
||||
.platform_data = &scif7_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -345,7 +411,14 @@ static struct platform_device mtu2_2_device = {
|
||||
};
|
||||
|
||||
static struct platform_device *sh7201_devices[] __initdata = {
|
||||
&sci_device,
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&scif4_device,
|
||||
&scif5_device,
|
||||
&scif6_device,
|
||||
&scif7_device,
|
||||
&rtc_device,
|
||||
&mtu2_0_device,
|
||||
&mtu2_1_device,
|
||||
@@ -365,6 +438,14 @@ void __init plat_irq_setup(void)
|
||||
}
|
||||
|
||||
static struct platform_device *sh7201_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&scif4_device,
|
||||
&scif5_device,
|
||||
&scif6_device,
|
||||
&scif7_device,
|
||||
&mtu2_0_device,
|
||||
&mtu2_1_device,
|
||||
&mtu2_2_device,
|
||||
|
@@ -173,37 +173,63 @@ static struct intc_mask_reg mask_registers[] __initdata = {
|
||||
static DECLARE_INTC_DESC(intc_desc, "sh7203", vectors, groups,
|
||||
mask_registers, prio_registers, NULL);
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xfffe8000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 192, 192, 192, 192 },
|
||||
}, {
|
||||
.mapbase = 0xfffe8800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 196, 196, 196, 196 },
|
||||
}, {
|
||||
.mapbase = 0xfffe9000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 200, 200, 200, 200 },
|
||||
}, {
|
||||
.mapbase = 0xfffe9800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 204, 204, 204, 204 },
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xfffe8000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 192, 192, 192, 192 },
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
static struct platform_device scif0_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
.platform_data = &scif0_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xfffe8800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 196, 196, 196, 196 },
|
||||
};
|
||||
|
||||
static struct platform_device scif1_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &scif1_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xfffe9000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 200, 200, 200, 200 },
|
||||
};
|
||||
|
||||
static struct platform_device scif2_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 2,
|
||||
.dev = {
|
||||
.platform_data = &scif2_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xfffe9800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 204, 204, 204, 204 },
|
||||
};
|
||||
|
||||
static struct platform_device scif3_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 3,
|
||||
.dev = {
|
||||
.platform_data = &scif3_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -354,7 +380,10 @@ static struct platform_device rtc_device = {
|
||||
};
|
||||
|
||||
static struct platform_device *sh7203_devices[] __initdata = {
|
||||
&sci_device,
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&cmt0_device,
|
||||
&cmt1_device,
|
||||
&mtu2_0_device,
|
||||
@@ -375,6 +404,10 @@ void __init plat_irq_setup(void)
|
||||
}
|
||||
|
||||
static struct platform_device *sh7203_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&cmt0_device,
|
||||
&cmt1_device,
|
||||
&mtu2_0_device,
|
||||
|
@@ -133,37 +133,63 @@ static struct intc_mask_reg mask_registers[] __initdata = {
|
||||
static DECLARE_INTC_DESC(intc_desc, "sh7206", vectors, groups,
|
||||
mask_registers, prio_registers, NULL);
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xfffe8000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 240, 240, 240, 240 },
|
||||
}, {
|
||||
.mapbase = 0xfffe8800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 244, 244, 244, 244 },
|
||||
}, {
|
||||
.mapbase = 0xfffe9000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 248, 248, 248, 248 },
|
||||
}, {
|
||||
.mapbase = 0xfffe9800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 252, 252, 252, 252 },
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xfffe8000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 240, 240, 240, 240 },
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
static struct platform_device scif0_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
.platform_data = &scif0_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xfffe8800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 244, 244, 244, 244 },
|
||||
};
|
||||
|
||||
static struct platform_device scif1_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &scif1_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xfffe9000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 248, 248, 248, 248 },
|
||||
};
|
||||
|
||||
static struct platform_device scif2_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 2,
|
||||
.dev = {
|
||||
.platform_data = &scif2_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xfffe9800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 252, 252, 252, 252 },
|
||||
};
|
||||
|
||||
static struct platform_device scif3_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 3,
|
||||
.dev = {
|
||||
.platform_data = &scif3_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -325,7 +351,10 @@ static struct platform_device mtu2_2_device = {
|
||||
};
|
||||
|
||||
static struct platform_device *sh7206_devices[] __initdata = {
|
||||
&sci_device,
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&cmt0_device,
|
||||
&cmt1_device,
|
||||
&mtu2_0_device,
|
||||
@@ -346,6 +375,10 @@ void __init plat_irq_setup(void)
|
||||
}
|
||||
|
||||
static struct platform_device *sh7206_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&cmt0_device,
|
||||
&cmt1_device,
|
||||
&mtu2_0_device,
|
||||
|
@@ -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[] = {
|
||||
{
|
||||
.mapbase = 0xa4410000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 56, 56, 56 },
|
||||
}, {
|
||||
.mapbase = 0xa4400000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 52, 52, 52 },
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
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 sci_device = {
|
||||
static struct platform_device scif0_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
.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 = {
|
||||
.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,
|
||||
|
@@ -106,44 +106,55 @@ static struct platform_device rtc_device = {
|
||||
.resource = rtc_resources,
|
||||
};
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xfffffe80,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCI,
|
||||
.irqs = { 23, 23, 23, 0 },
|
||||
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)
|
||||
{
|
||||
.mapbase = 0xa4000150,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 56, 56, 56, 56 },
|
||||
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)
|
||||
{
|
||||
.mapbase = 0xa4000140,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_IRDA,
|
||||
.irqs = { 52, 52, 52, 52 },
|
||||
},
|
||||
#endif
|
||||
{
|
||||
.flags = 0,
|
||||
}
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xa4000140,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_IRDA,
|
||||
.irqs = { 52, 52, 52, 52 },
|
||||
};
|
||||
|
||||
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,
|
||||
|
@@ -96,28 +96,33 @@ static struct platform_device rtc_device = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xa4400000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 52, 52, 52, 52 },
|
||||
}, {
|
||||
.mapbase = 0xa4410000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 56, 56, 56, 56 },
|
||||
}, {
|
||||
|
||||
.flags = 0,
|
||||
}
|
||||
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 sci_device = {
|
||||
static struct platform_device scif0_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
.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 = {
|
||||
.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,
|
||||
|
@@ -48,28 +48,33 @@ static struct platform_device rtc_device = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xa4430000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 80, 80, 80, 80 },
|
||||
}, {
|
||||
.mapbase = 0xa4438000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 81, 81, 81, 81 },
|
||||
}, {
|
||||
|
||||
.flags = 0,
|
||||
}
|
||||
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 sci_device = {
|
||||
static struct platform_device scif0_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
.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 = {
|
||||
.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,
|
||||
|
@@ -15,22 +15,18 @@
|
||||
#include <linux/sh_timer.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xffe80000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 41, 43, 42 },
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffe80000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 41, 43, 42 },
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
static struct platform_device scif0_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
.platform_data = &scif0_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -127,7 +123,7 @@ static struct platform_device tmu2_device = {
|
||||
};
|
||||
|
||||
static struct platform_device *sh4202_devices[] __initdata = {
|
||||
&sci_device,
|
||||
&scif0_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
@@ -141,6 +137,7 @@ static int __init sh4202_devices_setup(void)
|
||||
arch_initcall(sh4202_devices_setup);
|
||||
|
||||
static struct platform_device *sh4202_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
|
@@ -35,29 +35,33 @@ static struct platform_device rtc_device = {
|
||||
.resource = rtc_resources,
|
||||
};
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
#ifndef CONFIG_SH_RTS7751R2D
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCI,
|
||||
.irqs = { 23, 23, 23, 0 },
|
||||
}, {
|
||||
#endif
|
||||
.mapbase = 0xffe80000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 40, 40, 40 },
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCI,
|
||||
.irqs = { 23, 23, 23, 0 },
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
static struct platform_device scif0_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
.platform_data = &scif0_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xffe80000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 40, 40, 40 },
|
||||
};
|
||||
|
||||
static struct platform_device scif1_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &scif1_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -221,8 +225,9 @@ static struct platform_device tmu4_device = {
|
||||
#endif
|
||||
|
||||
static struct platform_device *sh7750_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&rtc_device,
|
||||
&sci_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
@@ -242,6 +247,8 @@ static int __init sh7750_devices_setup(void)
|
||||
arch_initcall(sh7750_devices_setup);
|
||||
|
||||
static struct platform_device *sh7750_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
|
@@ -126,37 +126,63 @@ static struct intc_vect vectors_irq[] __initdata = {
|
||||
static DECLARE_INTC_DESC(intc_desc_irq, "sh7760-irq", vectors_irq, groups,
|
||||
mask_registers, prio_registers, NULL);
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xfe600000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 52, 53, 55, 54 },
|
||||
}, {
|
||||
.mapbase = 0xfe610000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 72, 73, 75, 74 },
|
||||
}, {
|
||||
.mapbase = 0xfe620000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 76, 77, 79, 78 },
|
||||
}, {
|
||||
.mapbase = 0xfe480000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCI,
|
||||
.irqs = { 80, 81, 82, 0 },
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xfe600000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 52, 53, 55, 54 },
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
static struct platform_device scif0_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
.platform_data = &scif0_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xfe610000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 72, 73, 75, 74 },
|
||||
};
|
||||
|
||||
static struct platform_device scif1_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &scif1_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xfe620000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 76, 77, 79, 78 },
|
||||
};
|
||||
|
||||
static struct platform_device scif2_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 2,
|
||||
.dev = {
|
||||
.platform_data = &scif2_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xfe480000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCI,
|
||||
.irqs = { 80, 81, 82, 0 },
|
||||
};
|
||||
|
||||
static struct platform_device scif3_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 3,
|
||||
.dev = {
|
||||
.platform_data = &scif3_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -254,7 +280,10 @@ static struct platform_device tmu2_device = {
|
||||
|
||||
|
||||
static struct platform_device *sh7760_devices[] __initdata = {
|
||||
&sci_device,
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
@@ -268,6 +297,10 @@ static int __init sh7760_devices_setup(void)
|
||||
arch_initcall(sh7760_devices_setup);
|
||||
|
||||
static struct platform_device *sh7760_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
|
@@ -15,6 +15,71 @@
|
||||
#include <linux/sh_timer.h>
|
||||
#include <asm/clock.h>
|
||||
|
||||
/* Serial */
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 80, 80, 80, 80 },
|
||||
.clk = "scif0",
|
||||
};
|
||||
|
||||
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 = 0xffe10000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 81, 81, 81, 81 },
|
||||
.clk = "scif1",
|
||||
};
|
||||
|
||||
static struct platform_device scif1_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &scif1_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xffe20000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 82, 82, 82, 82 },
|
||||
.clk = "scif2",
|
||||
};
|
||||
|
||||
static struct platform_device scif2_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 2,
|
||||
.dev = {
|
||||
.platform_data = &scif2_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xffe30000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 83, 83, 83, 83 },
|
||||
.clk = "scif3",
|
||||
};
|
||||
|
||||
static struct platform_device scif3_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 3,
|
||||
.dev = {
|
||||
.platform_data = &scif3_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource iic0_resources[] = {
|
||||
[0] = {
|
||||
.name = "IIC0",
|
||||
@@ -265,52 +330,17 @@ static struct platform_device tmu2_device = {
|
||||
.num_resources = ARRAY_SIZE(tmu2_resources),
|
||||
};
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 80, 80, 80, 80 },
|
||||
.clk = "scif0",
|
||||
}, {
|
||||
.mapbase = 0xffe10000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 81, 81, 81, 81 },
|
||||
.clk = "scif1",
|
||||
}, {
|
||||
.mapbase = 0xffe20000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 82, 82, 82, 82 },
|
||||
.clk = "scif2",
|
||||
}, {
|
||||
.mapbase = 0xffe30000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 83, 83, 83, 83 },
|
||||
.clk = "scif3",
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device *sh7343_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&cmt_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
&iic0_device,
|
||||
&iic1_device,
|
||||
&sci_device,
|
||||
&vpu_device,
|
||||
&veu_device,
|
||||
&jpu_device,
|
||||
@@ -328,6 +358,10 @@ static int __init sh7343_devices_setup(void)
|
||||
arch_initcall(sh7343_devices_setup);
|
||||
|
||||
static struct platform_device *sh7343_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&cmt_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
|
@@ -18,6 +18,22 @@
|
||||
#include <linux/usb/r8a66597.h>
|
||||
#include <asm/clock.h>
|
||||
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 80, 80, 80, 80 },
|
||||
.clk = "scif0",
|
||||
};
|
||||
|
||||
static struct platform_device scif0_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = &scif0_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource iic_resources[] = {
|
||||
[0] = {
|
||||
.name = "IIC",
|
||||
@@ -276,33 +292,13 @@ static struct platform_device tmu2_device = {
|
||||
.num_resources = ARRAY_SIZE(tmu2_resources),
|
||||
};
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 80, 80, 80, 80 },
|
||||
.clk = "scif0",
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device *sh7366_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&cmt_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
&iic_device,
|
||||
&sci_device,
|
||||
&usb_host_device,
|
||||
&vpu_device,
|
||||
&veu0_device,
|
||||
@@ -321,6 +317,7 @@ static int __init sh7366_devices_setup(void)
|
||||
arch_initcall(sh7366_devices_setup);
|
||||
|
||||
static struct platform_device *sh7366_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&cmt_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
|
@@ -20,6 +20,55 @@
|
||||
#include <asm/dma-sh.h>
|
||||
#include <cpu/sh7722.h>
|
||||
|
||||
/* Serial */
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 80, 80, 80, 80 },
|
||||
.clk = "scif0",
|
||||
};
|
||||
|
||||
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 = 0xffe10000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 81, 81, 81, 81 },
|
||||
.clk = "scif1",
|
||||
};
|
||||
|
||||
static struct platform_device scif1_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &scif1_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xffe20000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 82, 82, 82, 82 },
|
||||
.clk = "scif2",
|
||||
};
|
||||
|
||||
static struct platform_device scif2_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 2,
|
||||
.dev = {
|
||||
.platform_data = &scif2_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource rtc_resources[] = {
|
||||
[0] = {
|
||||
.start = 0xa465fec0,
|
||||
@@ -339,41 +388,6 @@ static struct platform_device tmu2_device = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 80, 80, 80, 80 },
|
||||
.clk = "scif0",
|
||||
},
|
||||
{
|
||||
.mapbase = 0xffe10000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 81, 81, 81, 81 },
|
||||
.clk = "scif1",
|
||||
},
|
||||
{
|
||||
.mapbase = 0xffe20000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 82, 82, 82, 82 },
|
||||
.clk = "scif2",
|
||||
},
|
||||
{
|
||||
.flags = 0,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct sh_dmae_pdata dma_platform_data = {
|
||||
.mode = 0,
|
||||
};
|
||||
@@ -387,6 +401,9 @@ static struct platform_device dma_device = {
|
||||
};
|
||||
|
||||
static struct platform_device *sh7722_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&cmt_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
@@ -394,7 +411,6 @@ static struct platform_device *sh7722_devices[] __initdata = {
|
||||
&rtc_device,
|
||||
&usbf_device,
|
||||
&iic_device,
|
||||
&sci_device,
|
||||
&vpu_device,
|
||||
&veu_device,
|
||||
&jpu_device,
|
||||
@@ -413,6 +429,9 @@ static int __init sh7722_devices_setup(void)
|
||||
arch_initcall(sh7722_devices_setup);
|
||||
|
||||
static struct platform_device *sh7722_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&cmt_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
|
@@ -20,6 +20,103 @@
|
||||
#include <asm/mmzone.h>
|
||||
#include <cpu/sh7723.h>
|
||||
|
||||
/* Serial */
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 80, 80, 80, 80 },
|
||||
.clk = "scif0",
|
||||
};
|
||||
|
||||
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 = 0xffe10000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 81, 81, 81, 81 },
|
||||
.clk = "scif1",
|
||||
};
|
||||
|
||||
static struct platform_device scif1_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &scif1_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xffe20000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 82, 82, 82, 82 },
|
||||
.clk = "scif2",
|
||||
};
|
||||
|
||||
static struct platform_device scif2_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 2,
|
||||
.dev = {
|
||||
.platform_data = &scif2_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xa4e30000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { 56, 56, 56, 56 },
|
||||
.clk = "scif3",
|
||||
};
|
||||
|
||||
static struct platform_device scif3_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 3,
|
||||
.dev = {
|
||||
.platform_data = &scif3_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif4_platform_data = {
|
||||
.mapbase = 0xa4e40000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { 88, 88, 88, 88 },
|
||||
.clk = "scif4",
|
||||
};
|
||||
|
||||
static struct platform_device scif4_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 4,
|
||||
.dev = {
|
||||
.platform_data = &scif4_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif5_platform_data = {
|
||||
.mapbase = 0xa4e50000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { 109, 109, 109, 109 },
|
||||
.clk = "scif5",
|
||||
};
|
||||
|
||||
static struct platform_device scif5_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 5,
|
||||
.dev = {
|
||||
.platform_data = &scif5_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct uio_info vpu_platform_data = {
|
||||
.name = "VPU5",
|
||||
.version = "0",
|
||||
@@ -348,56 +445,6 @@ static struct platform_device tmu5_device = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 80, 80, 80, 80 },
|
||||
.clk = "scif0",
|
||||
},{
|
||||
.mapbase = 0xffe10000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 81, 81, 81, 81 },
|
||||
.clk = "scif1",
|
||||
},{
|
||||
.mapbase = 0xffe20000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 82, 82, 82, 82 },
|
||||
.clk = "scif2",
|
||||
},{
|
||||
.mapbase = 0xa4e30000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { 56, 56, 56, 56 },
|
||||
.clk = "scif3",
|
||||
},{
|
||||
.mapbase = 0xa4e40000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { 88, 88, 88, 88 },
|
||||
.clk = "scif4",
|
||||
},{
|
||||
.mapbase = 0xa4e50000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { 109, 109, 109, 109 },
|
||||
.clk = "scif5",
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource rtc_resources[] = {
|
||||
[0] = {
|
||||
.start = 0xa465fec0,
|
||||
@@ -488,6 +535,12 @@ static struct platform_device iic_device = {
|
||||
};
|
||||
|
||||
static struct platform_device *sh7723_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&scif4_device,
|
||||
&scif5_device,
|
||||
&cmt_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
@@ -495,7 +548,6 @@ static struct platform_device *sh7723_devices[] __initdata = {
|
||||
&tmu3_device,
|
||||
&tmu4_device,
|
||||
&tmu5_device,
|
||||
&sci_device,
|
||||
&rtc_device,
|
||||
&iic_device,
|
||||
&sh7723_usb_host_device,
|
||||
@@ -516,6 +568,12 @@ static int __init sh7723_devices_setup(void)
|
||||
arch_initcall(sh7723_devices_setup);
|
||||
|
||||
static struct platform_device *sh7723_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&scif4_device,
|
||||
&scif5_device,
|
||||
&cmt_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
|
@@ -27,53 +27,99 @@
|
||||
#include <cpu/sh7724.h>
|
||||
|
||||
/* Serial */
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 80, 80, 80, 80 },
|
||||
.clk = "scif0",
|
||||
}, {
|
||||
.mapbase = 0xffe10000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 81, 81, 81, 81 },
|
||||
.clk = "scif1",
|
||||
}, {
|
||||
.mapbase = 0xffe20000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 82, 82, 82, 82 },
|
||||
.clk = "scif2",
|
||||
}, {
|
||||
.mapbase = 0xa4e30000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { 56, 56, 56, 56 },
|
||||
.clk = "scif3",
|
||||
}, {
|
||||
.mapbase = 0xa4e40000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { 88, 88, 88, 88 },
|
||||
.clk = "scif4",
|
||||
}, {
|
||||
.mapbase = 0xa4e50000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { 109, 109, 109, 109 },
|
||||
.clk = "scif5",
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 80, 80, 80, 80 },
|
||||
.clk = "scif0",
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
static struct platform_device scif0_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
.platform_data = &scif0_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xffe10000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 81, 81, 81, 81 },
|
||||
.clk = "scif1",
|
||||
};
|
||||
|
||||
static struct platform_device scif1_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &scif1_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xffe20000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 82, 82, 82, 82 },
|
||||
.clk = "scif2",
|
||||
};
|
||||
|
||||
static struct platform_device scif2_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 2,
|
||||
.dev = {
|
||||
.platform_data = &scif2_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xa4e30000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { 56, 56, 56, 56 },
|
||||
.clk = "scif3",
|
||||
};
|
||||
|
||||
static struct platform_device scif3_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 3,
|
||||
.dev = {
|
||||
.platform_data = &scif3_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif4_platform_data = {
|
||||
.mapbase = 0xa4e40000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { 88, 88, 88, 88 },
|
||||
.clk = "scif4",
|
||||
};
|
||||
|
||||
static struct platform_device scif4_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 4,
|
||||
.dev = {
|
||||
.platform_data = &scif4_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif5_platform_data = {
|
||||
.mapbase = 0xa4e50000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { 109, 109, 109, 109 },
|
||||
.clk = "scif5",
|
||||
};
|
||||
|
||||
static struct platform_device scif5_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 5,
|
||||
.dev = {
|
||||
.platform_data = &scif5_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -590,6 +636,12 @@ static struct platform_device spu1_device = {
|
||||
};
|
||||
|
||||
static struct platform_device *sh7724_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&scif4_device,
|
||||
&scif5_device,
|
||||
&cmt_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
@@ -597,7 +649,6 @@ static struct platform_device *sh7724_devices[] __initdata = {
|
||||
&tmu3_device,
|
||||
&tmu4_device,
|
||||
&tmu5_device,
|
||||
&sci_device,
|
||||
&rtc_device,
|
||||
&iic0_device,
|
||||
&iic1_device,
|
||||
@@ -624,6 +675,12 @@ static int __init sh7724_devices_setup(void)
|
||||
arch_initcall(sh7724_devices_setup);
|
||||
|
||||
static struct platform_device *sh7724_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&scif4_device,
|
||||
&scif5_device,
|
||||
&cmt_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
|
@@ -17,6 +17,51 @@
|
||||
#include <linux/mm.h>
|
||||
#include <linux/sh_timer.h>
|
||||
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xfe4b0000, /* SCIF2 */
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 40, 40, 40 },
|
||||
};
|
||||
|
||||
static struct platform_device scif2_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 2,
|
||||
.dev = {
|
||||
.platform_data = &scif2_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xfe4c0000, /* SCIF3 */
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 76, 76, 76, 76 },
|
||||
};
|
||||
|
||||
static struct platform_device scif3_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 3,
|
||||
.dev = {
|
||||
.platform_data = &scif3_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif4_platform_data = {
|
||||
.mapbase = 0xfe4d0000, /* SCIF4 */
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 104, 104, 104, 104 },
|
||||
};
|
||||
|
||||
static struct platform_device scif4_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 4,
|
||||
.dev = {
|
||||
.platform_data = &scif4_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct sh_timer_config tmu0_platform_data = {
|
||||
.name = "TMU0",
|
||||
.channel_offset = 0x04,
|
||||
@@ -79,39 +124,12 @@ static struct platform_device tmu1_device = {
|
||||
.num_resources = ARRAY_SIZE(tmu1_resources),
|
||||
};
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xfe4b0000, /* SCIF2 */
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 40, 40, 40 },
|
||||
}, {
|
||||
.mapbase = 0xfe4c0000, /* SCIF3 */
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 76, 76, 76, 76 },
|
||||
}, {
|
||||
.mapbase = 0xfe4d0000, /* SCIF4 */
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 104, 104, 104, 104 },
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device *sh7757_devices[] __initdata = {
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&scif4_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&sci_device,
|
||||
};
|
||||
|
||||
static int __init sh7757_devices_setup(void)
|
||||
@@ -121,6 +139,20 @@ static int __init sh7757_devices_setup(void)
|
||||
}
|
||||
arch_initcall(sh7757_devices_setup);
|
||||
|
||||
static struct platform_device *sh7757_early_devices[] __initdata = {
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&scif4_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
};
|
||||
|
||||
void __init plat_early_device_setup(void)
|
||||
{
|
||||
early_platform_add_devices(sh7757_early_devices,
|
||||
ARRAY_SIZE(sh7757_early_devices));
|
||||
}
|
||||
|
||||
enum {
|
||||
UNUSED = 0,
|
||||
|
||||
|
@@ -16,6 +16,51 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/serial_sci.h>
|
||||
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 40, 40, 40 },
|
||||
};
|
||||
|
||||
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 = 0xffe08000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 76, 76, 76, 76 },
|
||||
};
|
||||
|
||||
static struct platform_device scif1_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &scif1_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xffe10000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 104, 104, 104, 104 },
|
||||
};
|
||||
|
||||
static struct platform_device scif2_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 2,
|
||||
.dev = {
|
||||
.platform_data = &scif2_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource rtc_resources[] = {
|
||||
[0] = {
|
||||
.start = 0xffe80000,
|
||||
@@ -36,35 +81,6 @@ static struct platform_device rtc_device = {
|
||||
.resource = rtc_resources,
|
||||
};
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 40, 40, 40 },
|
||||
}, {
|
||||
.mapbase = 0xffe08000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 76, 76, 76, 76 },
|
||||
}, {
|
||||
.mapbase = 0xffe10000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 104, 104, 104, 104 },
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct resource usb_ohci_resources[] = {
|
||||
[0] = {
|
||||
.start = 0xffec8000,
|
||||
@@ -297,6 +313,9 @@ static struct platform_device tmu5_device = {
|
||||
};
|
||||
|
||||
static struct platform_device *sh7763_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
@@ -304,7 +323,6 @@ static struct platform_device *sh7763_devices[] __initdata = {
|
||||
&tmu4_device,
|
||||
&tmu5_device,
|
||||
&rtc_device,
|
||||
&sci_device,
|
||||
&usb_ohci_device,
|
||||
&usbf_device,
|
||||
};
|
||||
@@ -317,6 +335,9 @@ static int __init sh7763_devices_setup(void)
|
||||
arch_initcall(sh7763_devices_setup);
|
||||
|
||||
static struct platform_device *sh7763_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
|
@@ -14,67 +14,153 @@
|
||||
#include <linux/sh_timer.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xff923000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 61, 61, 61, 61 },
|
||||
}, {
|
||||
.mapbase = 0xff924000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 62, 62, 62, 62 },
|
||||
}, {
|
||||
.mapbase = 0xff925000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 63, 63, 63, 63 },
|
||||
}, {
|
||||
.mapbase = 0xff926000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 64, 64, 64, 64 },
|
||||
}, {
|
||||
.mapbase = 0xff927000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 65, 65, 65, 65 },
|
||||
}, {
|
||||
.mapbase = 0xff928000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 66, 66, 66, 66 },
|
||||
}, {
|
||||
.mapbase = 0xff929000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 67, 67, 67, 67 },
|
||||
}, {
|
||||
.mapbase = 0xff92a000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 68, 68, 68, 68 },
|
||||
}, {
|
||||
.mapbase = 0xff92b000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 69, 69, 69, 69 },
|
||||
}, {
|
||||
.mapbase = 0xff92c000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 70, 70, 70, 70 },
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xff923000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 61, 61, 61, 61 },
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
static struct platform_device scif0_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
.platform_data = &scif0_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xff924000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 62, 62, 62, 62 },
|
||||
};
|
||||
|
||||
static struct platform_device scif1_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &scif1_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xff925000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 63, 63, 63, 63 },
|
||||
};
|
||||
|
||||
static struct platform_device scif2_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 2,
|
||||
.dev = {
|
||||
.platform_data = &scif2_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xff926000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 64, 64, 64, 64 },
|
||||
};
|
||||
|
||||
static struct platform_device scif3_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 3,
|
||||
.dev = {
|
||||
.platform_data = &scif3_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif4_platform_data = {
|
||||
.mapbase = 0xff927000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 65, 65, 65, 65 },
|
||||
};
|
||||
|
||||
static struct platform_device scif4_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 4,
|
||||
.dev = {
|
||||
.platform_data = &scif4_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif5_platform_data = {
|
||||
.mapbase = 0xff928000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 66, 66, 66, 66 },
|
||||
};
|
||||
|
||||
static struct platform_device scif5_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 5,
|
||||
.dev = {
|
||||
.platform_data = &scif5_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif6_platform_data = {
|
||||
.mapbase = 0xff929000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 67, 67, 67, 67 },
|
||||
};
|
||||
|
||||
static struct platform_device scif6_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 6,
|
||||
.dev = {
|
||||
.platform_data = &scif6_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif7_platform_data = {
|
||||
.mapbase = 0xff92a000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 68, 68, 68, 68 },
|
||||
};
|
||||
|
||||
static struct platform_device scif7_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 7,
|
||||
.dev = {
|
||||
.platform_data = &scif7_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif8_platform_data = {
|
||||
.mapbase = 0xff92b000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 69, 69, 69, 69 },
|
||||
};
|
||||
|
||||
static struct platform_device scif8_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 8,
|
||||
.dev = {
|
||||
.platform_data = &scif8_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif9_platform_data = {
|
||||
.mapbase = 0xff92c000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 70, 70, 70, 70 },
|
||||
};
|
||||
|
||||
static struct platform_device scif9_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 9,
|
||||
.dev = {
|
||||
.platform_data = &scif9_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -351,6 +437,16 @@ static struct platform_device tmu8_device = {
|
||||
};
|
||||
|
||||
static struct platform_device *sh7770_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&scif4_device,
|
||||
&scif5_device,
|
||||
&scif6_device,
|
||||
&scif7_device,
|
||||
&scif8_device,
|
||||
&scif9_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
@@ -360,7 +456,6 @@ static struct platform_device *sh7770_devices[] __initdata = {
|
||||
&tmu6_device,
|
||||
&tmu7_device,
|
||||
&tmu8_device,
|
||||
&sci_device,
|
||||
};
|
||||
|
||||
static int __init sh7770_devices_setup(void)
|
||||
@@ -371,6 +466,16 @@ static int __init sh7770_devices_setup(void)
|
||||
arch_initcall(sh7770_devices_setup);
|
||||
|
||||
static struct platform_device *sh7770_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&scif4_device,
|
||||
&scif5_device,
|
||||
&scif6_device,
|
||||
&scif7_device,
|
||||
&scif8_device,
|
||||
&scif9_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
|
@@ -15,6 +15,36 @@
|
||||
#include <linux/sh_timer.h>
|
||||
#include <asm/dma-sh.h>
|
||||
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 40, 40, 40 },
|
||||
};
|
||||
|
||||
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 = 0xffe10000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 76, 76, 76, 76 },
|
||||
};
|
||||
|
||||
static struct platform_device scif1_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &scif1_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct sh_timer_config tmu0_platform_data = {
|
||||
.name = "TMU0",
|
||||
.channel_offset = 0x04,
|
||||
@@ -217,30 +247,6 @@ static struct platform_device rtc_device = {
|
||||
.resource = rtc_resources,
|
||||
};
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 40, 40, 40 },
|
||||
}, {
|
||||
.mapbase = 0xffe10000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 76, 76, 76, 76 },
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct sh_dmae_pdata dma_platform_data = {
|
||||
.mode = (SHDMA_MIX_IRQ | SHDMA_DMAOR1),
|
||||
};
|
||||
@@ -254,6 +260,8 @@ static struct platform_device dma_device = {
|
||||
};
|
||||
|
||||
static struct platform_device *sh7780_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
@@ -261,7 +269,6 @@ static struct platform_device *sh7780_devices[] __initdata = {
|
||||
&tmu4_device,
|
||||
&tmu5_device,
|
||||
&rtc_device,
|
||||
&sci_device,
|
||||
&dma_device,
|
||||
};
|
||||
|
||||
@@ -271,8 +278,9 @@ static int __init sh7780_devices_setup(void)
|
||||
ARRAY_SIZE(sh7780_devices));
|
||||
}
|
||||
arch_initcall(sh7780_devices_setup);
|
||||
|
||||
static struct platform_device *sh7780_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
|
@@ -16,6 +16,102 @@
|
||||
#include <linux/sh_timer.h>
|
||||
#include <asm/mmzone.h>
|
||||
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffea0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 40, 40, 40 },
|
||||
.clk = "scif_fck",
|
||||
};
|
||||
|
||||
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 = 0xffeb0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 44, 44, 44, 44 },
|
||||
.clk = "scif_fck",
|
||||
};
|
||||
|
||||
static struct platform_device scif1_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &scif1_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xffec0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 60, 60, 60, 60 },
|
||||
.clk = "scif_fck",
|
||||
};
|
||||
|
||||
static struct platform_device scif2_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 2,
|
||||
.dev = {
|
||||
.platform_data = &scif2_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xffed0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 61, 61, 61, 61 },
|
||||
.clk = "scif_fck",
|
||||
};
|
||||
|
||||
static struct platform_device scif3_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 3,
|
||||
.dev = {
|
||||
.platform_data = &scif3_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif4_platform_data = {
|
||||
.mapbase = 0xffee0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 62, 62, 62, 62 },
|
||||
.clk = "scif_fck",
|
||||
};
|
||||
|
||||
static struct platform_device scif4_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 4,
|
||||
.dev = {
|
||||
.platform_data = &scif4_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif5_platform_data = {
|
||||
.mapbase = 0xffef0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 63, 63, 63, 63 },
|
||||
.clk = "scif_fck",
|
||||
};
|
||||
|
||||
static struct platform_device scif5_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 5,
|
||||
.dev = {
|
||||
.platform_data = &scif5_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct sh_timer_config tmu0_platform_data = {
|
||||
.name = "TMU0",
|
||||
.channel_offset = 0x04,
|
||||
@@ -198,64 +294,19 @@ static struct platform_device tmu5_device = {
|
||||
.num_resources = ARRAY_SIZE(tmu5_resources),
|
||||
};
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xffea0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 40, 40, 40 },
|
||||
.clk = "scif_fck",
|
||||
}, {
|
||||
.mapbase = 0xffeb0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 44, 44, 44, 44 },
|
||||
.clk = "scif_fck",
|
||||
}, {
|
||||
.mapbase = 0xffec0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 60, 60, 60, 60 },
|
||||
.clk = "scif_fck",
|
||||
}, {
|
||||
.mapbase = 0xffed0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 61, 61, 61, 61 },
|
||||
.clk = "scif_fck",
|
||||
}, {
|
||||
.mapbase = 0xffee0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 62, 62, 62, 62 },
|
||||
.clk = "scif_fck",
|
||||
}, {
|
||||
.mapbase = 0xffef0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 63, 63, 63, 63 },
|
||||
.clk = "scif_fck",
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device *sh7785_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&scif4_device,
|
||||
&scif5_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
&tmu3_device,
|
||||
&tmu4_device,
|
||||
&tmu5_device,
|
||||
&sci_device,
|
||||
};
|
||||
|
||||
static int __init sh7785_devices_setup(void)
|
||||
@@ -266,6 +317,12 @@ static int __init sh7785_devices_setup(void)
|
||||
arch_initcall(sh7785_devices_setup);
|
||||
|
||||
static struct platform_device *sh7785_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&scif4_device,
|
||||
&scif5_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
|
@@ -23,51 +23,96 @@
|
||||
#include <linux/sh_timer.h>
|
||||
#include <asm/mmzone.h>
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xffea0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 41, 43, 42 },
|
||||
},
|
||||
/*
|
||||
* The rest of these all have multiplexed IRQs
|
||||
*/
|
||||
{
|
||||
.mapbase = 0xffeb0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 44, 44, 44, 44 },
|
||||
}, {
|
||||
.mapbase = 0xffec0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 50, 50, 50, 50 },
|
||||
}, {
|
||||
.mapbase = 0xffed0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 51, 51, 51, 51 },
|
||||
}, {
|
||||
.mapbase = 0xffee0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 52, 52, 52, 52 },
|
||||
}, {
|
||||
.mapbase = 0xffef0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 53, 53, 53, 53 },
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffea0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 41, 43, 42 },
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
static struct platform_device scif0_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
.platform_data = &scif0_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
/*
|
||||
* The rest of these all have multiplexed IRQs
|
||||
*/
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xffeb0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 44, 44, 44, 44 },
|
||||
};
|
||||
|
||||
static struct platform_device scif1_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &scif1_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xffec0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 50, 50, 50, 50 },
|
||||
};
|
||||
|
||||
static struct platform_device scif2_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 2,
|
||||
.dev = {
|
||||
.platform_data = &scif2_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xffed0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 51, 51, 51, 51 },
|
||||
};
|
||||
|
||||
static struct platform_device scif3_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 3,
|
||||
.dev = {
|
||||
.platform_data = &scif3_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif4_platform_data = {
|
||||
.mapbase = 0xffee0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 52, 52, 52, 52 },
|
||||
};
|
||||
|
||||
static struct platform_device scif4_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 4,
|
||||
.dev = {
|
||||
.platform_data = &scif4_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif5_platform_data = {
|
||||
.mapbase = 0xffef0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 53, 53, 53, 53 },
|
||||
};
|
||||
|
||||
static struct platform_device scif5_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 5,
|
||||
.dev = {
|
||||
.platform_data = &scif5_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -459,6 +504,12 @@ static struct platform_device usb_ohci_device = {
|
||||
};
|
||||
|
||||
static struct platform_device *sh7786_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&scif3_device,
|
||||
&scif4_device,
|
||||
&scif5_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
@@ -474,7 +525,6 @@ static struct platform_device *sh7786_early_devices[] __initdata = {
|
||||
};
|
||||
|
||||
static struct platform_device *sh7786_devices[] __initdata = {
|
||||
&sci_device,
|
||||
&usb_ohci_device,
|
||||
};
|
||||
|
||||
|
@@ -24,32 +24,48 @@
|
||||
* silicon in the first place, we just refuse to deal with the port at
|
||||
* all rather than adding infrastructure to hack around it.
|
||||
*/
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = 0xffc30000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 41, 43, 42 },
|
||||
}, {
|
||||
.mapbase = 0xffc40000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 44, 45, 47, 46 },
|
||||
}, {
|
||||
.mapbase = 0xffc60000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 52, 53, 55, 54 },
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffc30000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 41, 43, 42 },
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
static struct platform_device scif0_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
.platform_data = &scif0_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xffc40000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 44, 45, 47, 46 },
|
||||
};
|
||||
|
||||
static struct platform_device scif1_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &scif1_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xffc60000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 52, 53, 55, 54 },
|
||||
};
|
||||
|
||||
static struct platform_device scif2_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 2,
|
||||
.dev = {
|
||||
.platform_data = &scif2_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -236,6 +252,9 @@ static struct platform_device tmu5_device = {
|
||||
};
|
||||
|
||||
static struct platform_device *shx3_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&scif2_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
@@ -244,21 +263,10 @@ static struct platform_device *shx3_early_devices[] __initdata = {
|
||||
&tmu5_device,
|
||||
};
|
||||
|
||||
static struct platform_device *shx3_devices[] __initdata = {
|
||||
&sci_device,
|
||||
};
|
||||
|
||||
static int __init shx3_devices_setup(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = platform_add_devices(shx3_early_devices,
|
||||
return platform_add_devices(shx3_early_devices,
|
||||
ARRAY_SIZE(shx3_early_devices));
|
||||
if (unlikely(ret != 0))
|
||||
return ret;
|
||||
|
||||
return platform_add_devices(shx3_devices,
|
||||
ARRAY_SIZE(shx3_devices));
|
||||
}
|
||||
arch_initcall(shx3_devices_setup);
|
||||
|
||||
|
@@ -34,7 +34,7 @@ static union sh_fpu_union init_fpuregs = {
|
||||
}
|
||||
};
|
||||
|
||||
void save_fpu(struct task_struct *tsk, struct pt_regs *regs)
|
||||
void save_fpu(struct task_struct *tsk)
|
||||
{
|
||||
asm volatile("fst.p %0, (0*8), fp0\n\t"
|
||||
"fst.p %0, (1*8), fp2\n\t"
|
||||
@@ -153,7 +153,7 @@ do_fpu_state_restore(unsigned long ex, struct pt_regs *regs)
|
||||
enable_fpu();
|
||||
if (last_task_used_math != NULL)
|
||||
/* Other processes fpu state, save away */
|
||||
save_fpu(last_task_used_math, regs);
|
||||
save_fpu(last_task_used_math);
|
||||
|
||||
last_task_used_math = current;
|
||||
if (used_math()) {
|
||||
|
@@ -16,22 +16,18 @@
|
||||
#include <linux/sh_timer.h>
|
||||
#include <asm/addrspace.h>
|
||||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
.mapbase = PHYS_PERIPHERAL_BLOCK + 0x01030000,
|
||||
.flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 39, 40, 42, 0 },
|
||||
}, {
|
||||
.flags = 0,
|
||||
}
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = PHYS_PERIPHERAL_BLOCK + 0x01030000,
|
||||
.flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 39, 40, 42, 0 },
|
||||
};
|
||||
|
||||
static struct platform_device sci_device = {
|
||||
static struct platform_device scif0_device = {
|
||||
.name = "sh-sci",
|
||||
.id = -1,
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = sci_platform_data,
|
||||
.platform_data = &scif0_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -164,13 +160,13 @@ static struct platform_device tmu2_device = {
|
||||
};
|
||||
|
||||
static struct platform_device *sh5_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
};
|
||||
|
||||
static struct platform_device *sh5_devices[] __initdata = {
|
||||
&sci_device,
|
||||
&rtc_device,
|
||||
};
|
||||
|
||||
|
@@ -15,7 +15,6 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/delay.h>
|
||||
|
||||
#ifdef CONFIG_SH_STANDARD_BIOS
|
||||
#include <asm/sh_bios.h>
|
||||
|
||||
/*
|
||||
@@ -57,149 +56,8 @@ static struct console bios_console = {
|
||||
.flags = CON_PRINTBUFFER,
|
||||
.index = -1,
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_EARLY_SCIF_CONSOLE
|
||||
#include <linux/serial_core.h>
|
||||
#include "../../../drivers/serial/sh-sci.h"
|
||||
|
||||
#if defined(CONFIG_CPU_SUBTYPE_SH7720) || \
|
||||
defined(CONFIG_CPU_SUBTYPE_SH7721)
|
||||
#define EPK_SCSMR_VALUE 0x000
|
||||
#define EPK_SCBRR_VALUE 0x00C
|
||||
#define EPK_FIFO_SIZE 64
|
||||
#define EPK_FIFO_BITS (0x7f00 >> 8)
|
||||
#else
|
||||
#define EPK_FIFO_SIZE 16
|
||||
#define EPK_FIFO_BITS (0x1f00 >> 8)
|
||||
#endif
|
||||
|
||||
static struct uart_port scif_port = {
|
||||
.type = PORT_SCIF,
|
||||
.mapbase = CONFIG_EARLY_SCIF_CONSOLE_PORT,
|
||||
.membase = (char __iomem *)CONFIG_EARLY_SCIF_CONSOLE_PORT,
|
||||
};
|
||||
|
||||
static void scif_sercon_putc(int c)
|
||||
{
|
||||
while (((sci_in(&scif_port, SCFDR) & EPK_FIFO_BITS) >= EPK_FIFO_SIZE))
|
||||
;
|
||||
|
||||
sci_in(&scif_port, SCxSR);
|
||||
sci_out(&scif_port, SCxSR, 0xf3 & ~(0x20 | 0x40));
|
||||
sci_out(&scif_port, SCxTDR, c);
|
||||
|
||||
while ((sci_in(&scif_port, SCxSR) & 0x40) == 0)
|
||||
;
|
||||
|
||||
if (c == '\n')
|
||||
scif_sercon_putc('\r');
|
||||
}
|
||||
|
||||
static void scif_sercon_write(struct console *con, const char *s,
|
||||
unsigned count)
|
||||
{
|
||||
while (count-- > 0)
|
||||
scif_sercon_putc(*s++);
|
||||
}
|
||||
|
||||
static int __init scif_sercon_setup(struct console *con, char *options)
|
||||
{
|
||||
con->cflag = CREAD | HUPCL | CLOCAL | B115200 | CS8;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct console scif_console = {
|
||||
.name = "sercon",
|
||||
.write = scif_sercon_write,
|
||||
.setup = scif_sercon_setup,
|
||||
.flags = CON_PRINTBUFFER,
|
||||
.index = -1,
|
||||
};
|
||||
|
||||
#if !defined(CONFIG_SH_STANDARD_BIOS)
|
||||
#if defined(CONFIG_CPU_SUBTYPE_SH7720) || \
|
||||
defined(CONFIG_CPU_SUBTYPE_SH7721)
|
||||
static void scif_sercon_init(char *s)
|
||||
{
|
||||
sci_out(&scif_port, SCSCR, 0x0000); /* clear TE and RE */
|
||||
sci_out(&scif_port, SCFCR, 0x4006); /* reset */
|
||||
sci_out(&scif_port, SCSCR, 0x0000); /* select internal clock */
|
||||
sci_out(&scif_port, SCSMR, EPK_SCSMR_VALUE);
|
||||
sci_out(&scif_port, SCBRR, EPK_SCBRR_VALUE);
|
||||
|
||||
mdelay(1); /* wait 1-bit time */
|
||||
|
||||
sci_out(&scif_port, SCFCR, 0x0030); /* TTRG=b'11 */
|
||||
sci_out(&scif_port, SCSCR, 0x0030); /* TE, RE */
|
||||
}
|
||||
#elif defined(CONFIG_CPU_SH4) || defined(CONFIG_CPU_SH3)
|
||||
#define DEFAULT_BAUD 115200
|
||||
/*
|
||||
* Simple SCIF init, primarily aimed at SH7750 and other similar SH-4
|
||||
* devices that aren't using sh-ipl+g.
|
||||
*/
|
||||
static void scif_sercon_init(char *s)
|
||||
{
|
||||
struct uart_port *port = &scif_port;
|
||||
unsigned baud = DEFAULT_BAUD;
|
||||
unsigned int status;
|
||||
char *e;
|
||||
|
||||
if (*s == ',')
|
||||
++s;
|
||||
|
||||
if (*s) {
|
||||
/* ignore ioport/device name */
|
||||
s += strcspn(s, ",");
|
||||
if (*s == ',')
|
||||
s++;
|
||||
}
|
||||
|
||||
if (*s) {
|
||||
baud = simple_strtoul(s, &e, 0);
|
||||
if (baud == 0 || s == e)
|
||||
baud = DEFAULT_BAUD;
|
||||
}
|
||||
|
||||
do {
|
||||
status = sci_in(port, SCxSR);
|
||||
} while (!(status & SCxSR_TEND(port)));
|
||||
|
||||
sci_out(port, SCSCR, 0); /* TE=0, RE=0 */
|
||||
sci_out(port, SCFCR, SCFCR_RFRST | SCFCR_TFRST);
|
||||
sci_out(port, SCSMR, 0);
|
||||
|
||||
/* Set baud rate */
|
||||
sci_out(port, SCBRR, (CONFIG_SH_PCLK_FREQ + 16 * baud) /
|
||||
(32 * baud) - 1);
|
||||
udelay((1000000+(baud-1)) / baud); /* Wait one bit interval */
|
||||
|
||||
sci_out(port, SCSPTR, 0);
|
||||
sci_out(port, SCxSR, 0x60);
|
||||
sci_out(port, SCLSR, 0);
|
||||
|
||||
sci_out(port, SCFCR, 0);
|
||||
sci_out(port, SCSCR, 0x30); /* TE=1, RE=1 */
|
||||
}
|
||||
#endif /* defined(CONFIG_CPU_SUBTYPE_SH7720) */
|
||||
#endif /* !defined(CONFIG_SH_STANDARD_BIOS) */
|
||||
#endif /* CONFIG_EARLY_SCIF_CONSOLE */
|
||||
|
||||
/*
|
||||
* Setup a default console, if more than one is compiled in, rely on the
|
||||
* earlyprintk= parsing to give priority.
|
||||
*/
|
||||
static struct console *early_console =
|
||||
#ifdef CONFIG_SH_STANDARD_BIOS
|
||||
&bios_console
|
||||
#elif defined(CONFIG_EARLY_SCIF_CONSOLE)
|
||||
&scif_console
|
||||
#else
|
||||
NULL
|
||||
#endif
|
||||
;
|
||||
static struct console *early_console;
|
||||
|
||||
static int __init setup_early_printk(char *buf)
|
||||
{
|
||||
@@ -211,21 +69,8 @@ static int __init setup_early_printk(char *buf)
|
||||
if (strstr(buf, "keep"))
|
||||
keep_early = 1;
|
||||
|
||||
#ifdef CONFIG_SH_STANDARD_BIOS
|
||||
if (!strncmp(buf, "bios", 4))
|
||||
early_console = &bios_console;
|
||||
#endif
|
||||
#if defined(CONFIG_EARLY_SCIF_CONSOLE)
|
||||
if (!strncmp(buf, "serial", 6)) {
|
||||
early_console = &scif_console;
|
||||
|
||||
#if !defined(CONFIG_SH_STANDARD_BIOS)
|
||||
#if defined(CONFIG_CPU_SH4) || defined(CONFIG_CPU_SH3)
|
||||
scif_sercon_init(buf + 6);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
if (likely(early_console)) {
|
||||
if (keep_early)
|
||||
|
@@ -401,82 +401,10 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
|
||||
#endif /* CONFIG_FUNCTION_GRAPH_TRACER */
|
||||
|
||||
#ifdef CONFIG_FTRACE_SYSCALLS
|
||||
|
||||
extern unsigned long __start_syscalls_metadata[];
|
||||
extern unsigned long __stop_syscalls_metadata[];
|
||||
extern unsigned long *sys_call_table;
|
||||
|
||||
static struct syscall_metadata **syscalls_metadata;
|
||||
|
||||
static struct syscall_metadata *find_syscall_meta(unsigned long *syscall)
|
||||
unsigned long __init arch_syscall_addr(int nr)
|
||||
{
|
||||
struct syscall_metadata *start;
|
||||
struct syscall_metadata *stop;
|
||||
char str[KSYM_SYMBOL_LEN];
|
||||
|
||||
|
||||
start = (struct syscall_metadata *)__start_syscalls_metadata;
|
||||
stop = (struct syscall_metadata *)__stop_syscalls_metadata;
|
||||
kallsyms_lookup((unsigned long) syscall, NULL, NULL, NULL, str);
|
||||
|
||||
for ( ; start < stop; start++) {
|
||||
if (start->name && !strcmp(start->name, str))
|
||||
return start;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
return (unsigned long)sys_call_table[nr];
|
||||
}
|
||||
|
||||
struct syscall_metadata *syscall_nr_to_meta(int nr)
|
||||
{
|
||||
if (!syscalls_metadata || nr >= FTRACE_SYSCALL_MAX || nr < 0)
|
||||
return NULL;
|
||||
|
||||
return syscalls_metadata[nr];
|
||||
}
|
||||
|
||||
int syscall_name_to_nr(char *name)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (!syscalls_metadata)
|
||||
return -1;
|
||||
for (i = 0; i < NR_syscalls; i++)
|
||||
if (syscalls_metadata[i])
|
||||
if (!strcmp(syscalls_metadata[i]->name, name))
|
||||
return i;
|
||||
return -1;
|
||||
}
|
||||
|
||||
void set_syscall_enter_id(int num, int id)
|
||||
{
|
||||
syscalls_metadata[num]->enter_id = id;
|
||||
}
|
||||
|
||||
void set_syscall_exit_id(int num, int id)
|
||||
{
|
||||
syscalls_metadata[num]->exit_id = id;
|
||||
}
|
||||
|
||||
static int __init arch_init_ftrace_syscalls(void)
|
||||
{
|
||||
int i;
|
||||
struct syscall_metadata *meta;
|
||||
unsigned long **psys_syscall_table = &sys_call_table;
|
||||
|
||||
syscalls_metadata = kzalloc(sizeof(*syscalls_metadata) *
|
||||
FTRACE_SYSCALL_MAX, GFP_KERNEL);
|
||||
if (!syscalls_metadata) {
|
||||
WARN_ON(1);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
for (i = 0; i < FTRACE_SYSCALL_MAX; i++) {
|
||||
meta = find_syscall_meta(psys_syscall_table[i]);
|
||||
syscalls_metadata[i] = meta;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
arch_initcall(arch_init_ftrace_syscalls);
|
||||
#endif /* CONFIG_FTRACE_SYSCALLS */
|
||||
|
@@ -404,7 +404,7 @@ int dump_fpu(struct pt_regs *regs, elf_fpregset_t *fpu)
|
||||
if (fpvalid) {
|
||||
if (current == last_task_used_math) {
|
||||
enable_fpu();
|
||||
save_fpu(tsk, regs);
|
||||
save_fpu(tsk);
|
||||
disable_fpu();
|
||||
last_task_used_math = 0;
|
||||
regs->sr |= SR_FD;
|
||||
@@ -431,7 +431,7 @@ int copy_thread(unsigned long clone_flags, unsigned long usp,
|
||||
#ifdef CONFIG_SH_FPU
|
||||
if(last_task_used_math == current) {
|
||||
enable_fpu();
|
||||
save_fpu(current, regs);
|
||||
save_fpu(current);
|
||||
disable_fpu();
|
||||
last_task_used_math = NULL;
|
||||
regs->sr |= SR_FD;
|
||||
|
@@ -82,7 +82,7 @@ get_fpu_long(struct task_struct *task, unsigned long addr)
|
||||
|
||||
if (last_task_used_math == task) {
|
||||
enable_fpu();
|
||||
save_fpu(task, regs);
|
||||
save_fpu(task);
|
||||
disable_fpu();
|
||||
last_task_used_math = 0;
|
||||
regs->sr |= SR_FD;
|
||||
@@ -118,7 +118,7 @@ put_fpu_long(struct task_struct *task, unsigned long addr, unsigned long data)
|
||||
set_stopped_child_used_math(task);
|
||||
} else if (last_task_used_math == task) {
|
||||
enable_fpu();
|
||||
save_fpu(task, regs);
|
||||
save_fpu(task);
|
||||
disable_fpu();
|
||||
last_task_used_math = 0;
|
||||
regs->sr |= SR_FD;
|
||||
|
@@ -423,6 +423,9 @@ void __init setup_arch(char **cmdline_p)
|
||||
|
||||
plat_early_device_setup();
|
||||
|
||||
/* Let earlyprintk output early console messages */
|
||||
early_platform_driver_probe("earlyprintk", 1, 1);
|
||||
|
||||
sh_mv_setup();
|
||||
|
||||
/*
|
||||
|
@@ -314,7 +314,7 @@ setup_sigcontext_fpu(struct pt_regs *regs, struct sigcontext __user *sc)
|
||||
|
||||
if (current == last_task_used_math) {
|
||||
enable_fpu();
|
||||
save_fpu(current, regs);
|
||||
save_fpu(current);
|
||||
disable_fpu();
|
||||
last_task_used_math = NULL;
|
||||
regs->sr |= SR_FD;
|
||||
|
@@ -353,3 +353,4 @@ ENTRY(sys_call_table)
|
||||
.long sys_pwritev
|
||||
.long sys_rt_tgsigqueueinfo /* 335 */
|
||||
.long sys_perf_event_open
|
||||
.long sys_recvmmsg
|
||||
|
@@ -452,12 +452,18 @@ int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs,
|
||||
rm = regs->regs[index];
|
||||
|
||||
/* shout about fixups */
|
||||
if (!expected && printk_ratelimit())
|
||||
printk(KERN_NOTICE "Fixing up unaligned %s access "
|
||||
"in \"%s\" pid=%d pc=0x%p ins=0x%04hx\n",
|
||||
user_mode(regs) ? "userspace" : "kernel",
|
||||
current->comm, task_pid_nr(current),
|
||||
(void *)regs->pc, instruction);
|
||||
if (!expected) {
|
||||
if (user_mode(regs) && (se_usermode & 1) && printk_ratelimit())
|
||||
pr_notice("Fixing up unaligned userspace access "
|
||||
"in \"%s\" pid=%d pc=0x%p ins=0x%04hx\n",
|
||||
current->comm, task_pid_nr(current),
|
||||
(void *)regs->pc, instruction);
|
||||
else if (se_kernmode_warn && printk_ratelimit())
|
||||
pr_notice("Fixing up unaligned kernel access "
|
||||
"in \"%s\" pid=%d pc=0x%p ins=0x%04hx\n",
|
||||
current->comm, task_pid_nr(current),
|
||||
(void *)regs->pc, instruction);
|
||||
}
|
||||
|
||||
ret = -EFAULT;
|
||||
switch (instruction&0xF000) {
|
||||
|
@@ -600,7 +600,7 @@ static int misaligned_fpu_load(struct pt_regs *regs,
|
||||
indexed by register number. */
|
||||
if (last_task_used_math == current) {
|
||||
enable_fpu();
|
||||
save_fpu(current, regs);
|
||||
save_fpu(current);
|
||||
disable_fpu();
|
||||
last_task_used_math = NULL;
|
||||
regs->sr |= SR_FD;
|
||||
@@ -673,7 +673,7 @@ static int misaligned_fpu_store(struct pt_regs *regs,
|
||||
indexed by register number. */
|
||||
if (last_task_used_math == current) {
|
||||
enable_fpu();
|
||||
save_fpu(current, regs);
|
||||
save_fpu(current);
|
||||
disable_fpu();
|
||||
last_task_used_math = NULL;
|
||||
regs->sr |= SR_FD;
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user