Merge branch 'sh-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
* 'sh-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (31 commits) sh: Add support for AP-SH4AD-0A board. sh: Add support for AP-SH4A-3A board. sh: Add a new mach type for alpha project boards. serial: sh-sci: build fixes. sh: sh7372 SH4AL-DSP probe support sh: sh7366 Enable SDIO IRQs sh: sh7343 Enable SDIO IRQs sh: mach-ecovec24: enable runtime PM for SDHI sh: sh7723 / ap325rxa enable SDIO IRQs sh: sh7722 Enable SDIO IRQs sh: sh7724 Enable SDIO IRQs sh: Fix up legacy PTEA space attribute mapping. sh: Stub out legacy PCC pgprot encoding for X2 TLBs. sh: constify prefetch pointers. sh: Add a machvec callback for early memblock reservations. sh: update sh7757lcr_defconfig sh: add PVR probing for SH7757 3rd cut sh: Use device_initcall() instead of __initcall() sh: intc - convert board specific landisk code sh: Move init_landisk_IRQ to header file ...
This commit is contained in:
@@ -35,6 +35,8 @@
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xe6c40000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { evt2irq(0xc00), evt2irq(0xc00),
|
||||
evt2irq(0xc00), evt2irq(0xc00) },
|
||||
@@ -52,6 +54,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xe6c50000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { evt2irq(0xc20), evt2irq(0xc20),
|
||||
evt2irq(0xc20), evt2irq(0xc20) },
|
||||
@@ -69,6 +73,8 @@ static struct platform_device scif1_device = {
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xe6c60000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { evt2irq(0xc40), evt2irq(0xc40),
|
||||
evt2irq(0xc40), evt2irq(0xc40) },
|
||||
@@ -86,6 +92,8 @@ static struct platform_device scif2_device = {
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xe6c70000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { evt2irq(0xc60), evt2irq(0xc60),
|
||||
evt2irq(0xc60), evt2irq(0xc60) },
|
||||
@@ -103,6 +111,8 @@ static struct platform_device scif3_device = {
|
||||
static struct plat_sci_port scif4_platform_data = {
|
||||
.mapbase = 0xe6c80000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { evt2irq(0xd20), evt2irq(0xd20),
|
||||
evt2irq(0xd20), evt2irq(0xd20) },
|
||||
@@ -120,6 +130,8 @@ static struct platform_device scif4_device = {
|
||||
static struct plat_sci_port scif5_platform_data = {
|
||||
.mapbase = 0xe6cb0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { evt2irq(0xd40), evt2irq(0xd40),
|
||||
evt2irq(0xd40), evt2irq(0xd40) },
|
||||
@@ -137,6 +149,8 @@ static struct platform_device scif5_device = {
|
||||
static struct plat_sci_port scif6_platform_data = {
|
||||
.mapbase = 0xe6c30000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { evt2irq(0xd60), evt2irq(0xd60),
|
||||
evt2irq(0xd60), evt2irq(0xd60) },
|
||||
|
||||
@@ -38,6 +38,8 @@
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xe6c40000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { evt2irq(0x0c00), evt2irq(0x0c00),
|
||||
evt2irq(0x0c00), evt2irq(0x0c00) },
|
||||
@@ -55,6 +57,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xe6c50000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { evt2irq(0x0c20), evt2irq(0x0c20),
|
||||
evt2irq(0x0c20), evt2irq(0x0c20) },
|
||||
@@ -72,6 +76,8 @@ static struct platform_device scif1_device = {
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xe6c60000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { evt2irq(0x0c40), evt2irq(0x0c40),
|
||||
evt2irq(0x0c40), evt2irq(0x0c40) },
|
||||
@@ -89,6 +95,8 @@ static struct platform_device scif2_device = {
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xe6c70000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { evt2irq(0x0c60), evt2irq(0x0c60),
|
||||
evt2irq(0x0c60), evt2irq(0x0c60) },
|
||||
@@ -106,6 +114,8 @@ static struct platform_device scif3_device = {
|
||||
static struct plat_sci_port scif4_platform_data = {
|
||||
.mapbase = 0xe6c80000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { evt2irq(0x0d20), evt2irq(0x0d20),
|
||||
evt2irq(0x0d20), evt2irq(0x0d20) },
|
||||
@@ -123,6 +133,8 @@ static struct platform_device scif4_device = {
|
||||
static struct plat_sci_port scif5_platform_data = {
|
||||
.mapbase = 0xe6cb0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { evt2irq(0x0d40), evt2irq(0x0d40),
|
||||
evt2irq(0x0d40), evt2irq(0x0d40) },
|
||||
@@ -140,6 +152,8 @@ static struct platform_device scif5_device = {
|
||||
static struct plat_sci_port scif6_platform_data = {
|
||||
.mapbase = 0xe6c30000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIFB,
|
||||
.irqs = { evt2irq(0x0d60), evt2irq(0x0d60),
|
||||
evt2irq(0x0d60), evt2irq(0x0d60) },
|
||||
|
||||
@@ -36,6 +36,8 @@
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xe6c40000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { evt2irq(0xc00), evt2irq(0xc00),
|
||||
evt2irq(0xc00), evt2irq(0xc00) },
|
||||
@@ -53,6 +55,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xe6c50000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { evt2irq(0xc20), evt2irq(0xc20),
|
||||
evt2irq(0xc20), evt2irq(0xc20) },
|
||||
@@ -70,6 +74,8 @@ static struct platform_device scif1_device = {
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xe6c60000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { evt2irq(0xc40), evt2irq(0xc40),
|
||||
evt2irq(0xc40), evt2irq(0xc40) },
|
||||
@@ -87,6 +93,8 @@ static struct platform_device scif2_device = {
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xe6c70000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { evt2irq(0xc60), evt2irq(0xc60),
|
||||
evt2irq(0xc60), evt2irq(0xc60) },
|
||||
@@ -104,6 +112,8 @@ static struct platform_device scif3_device = {
|
||||
static struct plat_sci_port scif4_platform_data = {
|
||||
.mapbase = 0xe6c80000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { evt2irq(0xd20), evt2irq(0xd20),
|
||||
evt2irq(0xd20), evt2irq(0xd20) },
|
||||
@@ -121,6 +131,8 @@ static struct platform_device scif4_device = {
|
||||
static struct plat_sci_port scif5_platform_data = {
|
||||
.mapbase = 0xe6cb0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { evt2irq(0xd40), evt2irq(0xd40),
|
||||
evt2irq(0xd40), evt2irq(0xd40) },
|
||||
@@ -138,6 +150,8 @@ static struct platform_device scif5_device = {
|
||||
static struct plat_sci_port scif6_platform_data = {
|
||||
.mapbase = 0xe6cc0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { intcs_evt2irq(0x1a80), intcs_evt2irq(0x1a80),
|
||||
intcs_evt2irq(0x1a80), intcs_evt2irq(0x1a80) },
|
||||
@@ -155,6 +169,8 @@ static struct platform_device scif6_device = {
|
||||
static struct plat_sci_port scif7_platform_data = {
|
||||
.mapbase = 0xe6c30000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { evt2irq(0xd60), evt2irq(0xd60),
|
||||
evt2irq(0xd60), evt2irq(0xd60) },
|
||||
|
||||
@@ -36,6 +36,8 @@
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xe6c40000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { gic_spi(72), gic_spi(72),
|
||||
gic_spi(72), gic_spi(72) },
|
||||
@@ -52,6 +54,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xe6c50000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { gic_spi(73), gic_spi(73),
|
||||
gic_spi(73), gic_spi(73) },
|
||||
@@ -68,6 +72,8 @@ static struct platform_device scif1_device = {
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xe6c60000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { gic_spi(74), gic_spi(74),
|
||||
gic_spi(74), gic_spi(74) },
|
||||
@@ -84,6 +90,8 @@ static struct platform_device scif2_device = {
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xe6c70000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { gic_spi(75), gic_spi(75),
|
||||
gic_spi(75), gic_spi(75) },
|
||||
@@ -100,6 +108,8 @@ static struct platform_device scif3_device = {
|
||||
static struct plat_sci_port scif4_platform_data = {
|
||||
.mapbase = 0xe6c80000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { gic_spi(78), gic_spi(78),
|
||||
gic_spi(78), gic_spi(78) },
|
||||
@@ -116,6 +126,8 @@ static struct platform_device scif4_device = {
|
||||
static struct plat_sci_port scif5_platform_data = {
|
||||
.mapbase = 0xe6cb0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { gic_spi(79), gic_spi(79),
|
||||
gic_spi(79), gic_spi(79) },
|
||||
@@ -132,6 +144,8 @@ static struct platform_device scif5_device = {
|
||||
static struct plat_sci_port scif6_platform_data = {
|
||||
.mapbase = 0xe6cc0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { gic_spi(156), gic_spi(156),
|
||||
gic_spi(156), gic_spi(156) },
|
||||
@@ -148,6 +162,8 @@ static struct platform_device scif6_device = {
|
||||
static struct plat_sci_port scif7_platform_data = {
|
||||
.mapbase = 0xe6cd0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { gic_spi(143), gic_spi(143),
|
||||
gic_spi(143), gic_spi(143) },
|
||||
@@ -164,6 +180,8 @@ static struct platform_device scif7_device = {
|
||||
static struct plat_sci_port scif8_platform_data = {
|
||||
.mapbase = 0xe6c30000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIFB,
|
||||
.irqs = { gic_spi(80), gic_spi(80),
|
||||
gic_spi(80), gic_spi(80) },
|
||||
|
||||
@@ -3,6 +3,9 @@ menu "Board support"
|
||||
config SOLUTION_ENGINE
|
||||
bool
|
||||
|
||||
config SH_ALPHA_BOARD
|
||||
bool
|
||||
|
||||
config SH_SOLUTION_ENGINE
|
||||
bool "SolutionEngine"
|
||||
select SOLUTION_ENGINE
|
||||
@@ -320,6 +323,21 @@ config SH_SH2007
|
||||
Compact Flash socket, two serial ports and PC-104 bus.
|
||||
More information at <http://sh2000.sh-linux.org>.
|
||||
|
||||
config SH_APSH4A3A
|
||||
bool "AP-SH4A-3A"
|
||||
select SH_ALPHA_BOARD
|
||||
depends on CPU_SUBTYPE_SH7785
|
||||
help
|
||||
Select AP-SH4A-3A if configuring for an ALPHAPROJECT AP-SH4A-3A.
|
||||
|
||||
config SH_APSH4AD0A
|
||||
bool "AP-SH4AD-0A"
|
||||
select SH_ALPHA_BOARD
|
||||
select SYS_SUPPORTS_PCI
|
||||
depends on CPU_SUBTYPE_SH7786
|
||||
help
|
||||
Select AP-SH4AD-0A if configuring for an ALPHAPROJECT AP-SH4AD-0A.
|
||||
|
||||
endmenu
|
||||
|
||||
source "arch/sh/boards/mach-r2d/Kconfig"
|
||||
|
||||
@@ -13,3 +13,5 @@ obj-$(CONFIG_SH_ESPT) += board-espt.o
|
||||
obj-$(CONFIG_SH_POLARIS) += board-polaris.o
|
||||
obj-$(CONFIG_SH_TITAN) += board-titan.o
|
||||
obj-$(CONFIG_SH_SH7757LCR) += board-sh7757lcr.o
|
||||
obj-$(CONFIG_SH_APSH4A3A) += board-apsh4a3a.o
|
||||
obj-$(CONFIG_SH_APSH4AD0A) += board-apsh4ad0a.o
|
||||
|
||||
175
arch/sh/boards/board-apsh4a3a.c
Normal file
175
arch/sh/boards/board-apsh4a3a.c
Normal file
@@ -0,0 +1,175 @@
|
||||
/*
|
||||
* ALPHAPROJECT AP-SH4A-3A Support.
|
||||
*
|
||||
* Copyright (C) 2010 ALPHAPROJECT Co.,Ltd.
|
||||
* Copyright (C) 2008 Yoshihiro Shimoda
|
||||
* Copyright (C) 2009 Paul Mundt
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/smsc911x.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/clk.h>
|
||||
#include <asm/machvec.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <asm/clock.h>
|
||||
|
||||
static struct mtd_partition nor_flash_partitions[] = {
|
||||
{
|
||||
.name = "loader",
|
||||
.offset = 0x00000000,
|
||||
.size = 512 * 1024,
|
||||
},
|
||||
{
|
||||
.name = "bootenv",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = 512 * 1024,
|
||||
},
|
||||
{
|
||||
.name = "kernel",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = 4 * 1024 * 1024,
|
||||
},
|
||||
{
|
||||
.name = "data",
|
||||
.offset = MTDPART_OFS_APPEND,
|
||||
.size = MTDPART_SIZ_FULL,
|
||||
},
|
||||
};
|
||||
|
||||
static struct physmap_flash_data nor_flash_data = {
|
||||
.width = 4,
|
||||
.parts = nor_flash_partitions,
|
||||
.nr_parts = ARRAY_SIZE(nor_flash_partitions),
|
||||
};
|
||||
|
||||
static struct resource nor_flash_resources[] = {
|
||||
[0] = {
|
||||
.start = 0x00000000,
|
||||
.end = 0x01000000 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device nor_flash_device = {
|
||||
.name = "physmap-flash",
|
||||
.dev = {
|
||||
.platform_data = &nor_flash_data,
|
||||
},
|
||||
.num_resources = ARRAY_SIZE(nor_flash_resources),
|
||||
.resource = nor_flash_resources,
|
||||
};
|
||||
|
||||
static struct resource smsc911x_resources[] = {
|
||||
[0] = {
|
||||
.name = "smsc911x-memory",
|
||||
.start = 0xA4000000,
|
||||
.end = 0xA4000000 + SZ_256 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
[1] = {
|
||||
.name = "smsc911x-irq",
|
||||
.start = evt2irq(0x200),
|
||||
.end = evt2irq(0x200),
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct smsc911x_platform_config smsc911x_config = {
|
||||
.irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
|
||||
.irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
|
||||
.flags = SMSC911X_USE_16BIT,
|
||||
.phy_interface = PHY_INTERFACE_MODE_MII,
|
||||
};
|
||||
|
||||
static struct platform_device smsc911x_device = {
|
||||
.name = "smsc911x",
|
||||
.id = -1,
|
||||
.num_resources = ARRAY_SIZE(smsc911x_resources),
|
||||
.resource = smsc911x_resources,
|
||||
.dev = {
|
||||
.platform_data = &smsc911x_config,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device *apsh4a3a_devices[] __initdata = {
|
||||
&nor_flash_device,
|
||||
&smsc911x_device,
|
||||
};
|
||||
|
||||
static int __init apsh4a3a_devices_setup(void)
|
||||
{
|
||||
return platform_add_devices(apsh4a3a_devices,
|
||||
ARRAY_SIZE(apsh4a3a_devices));
|
||||
}
|
||||
device_initcall(apsh4a3a_devices_setup);
|
||||
|
||||
static int apsh4a3a_clk_init(void)
|
||||
{
|
||||
struct clk *clk;
|
||||
int ret;
|
||||
|
||||
clk = clk_get(NULL, "extal");
|
||||
if (!clk || IS_ERR(clk))
|
||||
return PTR_ERR(clk);
|
||||
ret = clk_set_rate(clk, 33333000);
|
||||
clk_put(clk);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Initialize the board */
|
||||
static void __init apsh4a3a_setup(char **cmdline_p)
|
||||
{
|
||||
printk(KERN_INFO "Alpha Project AP-SH4A-3A support:\n");
|
||||
}
|
||||
|
||||
static void __init apsh4a3a_init_irq(void)
|
||||
{
|
||||
plat_irq_setup_pins(IRQ_MODE_IRQ7654);
|
||||
}
|
||||
|
||||
/* Return the board specific boot mode pin configuration */
|
||||
static int apsh4a3a_mode_pins(void)
|
||||
{
|
||||
int value = 0;
|
||||
|
||||
/* These are the factory default settings of SW1 and SW2.
|
||||
* If you change these dip switches then you will need to
|
||||
* adjust the values below as well.
|
||||
*/
|
||||
value &= ~MODE_PIN0; /* Clock Mode 16 */
|
||||
value &= ~MODE_PIN1;
|
||||
value &= ~MODE_PIN2;
|
||||
value &= ~MODE_PIN3;
|
||||
value |= MODE_PIN4;
|
||||
value &= ~MODE_PIN5; /* 16-bit Area0 bus width */
|
||||
value |= MODE_PIN6; /* Area 0 SRAM interface */
|
||||
value |= MODE_PIN7;
|
||||
value |= MODE_PIN8; /* Little Endian */
|
||||
value |= MODE_PIN9; /* Master Mode */
|
||||
value |= MODE_PIN10; /* Crystal resonator */
|
||||
value |= MODE_PIN11; /* Display Unit */
|
||||
value |= MODE_PIN12;
|
||||
value &= ~MODE_PIN13; /* 29-bit address mode */
|
||||
value |= MODE_PIN14; /* No PLL step-up */
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
/*
|
||||
* The Machine Vector
|
||||
*/
|
||||
static struct sh_machine_vector mv_apsh4a3a __initmv = {
|
||||
.mv_name = "AP-SH4A-3A",
|
||||
.mv_setup = apsh4a3a_setup,
|
||||
.mv_clk_init = apsh4a3a_clk_init,
|
||||
.mv_init_irq = apsh4a3a_init_irq,
|
||||
.mv_mode_pins = apsh4a3a_mode_pins,
|
||||
};
|
||||
125
arch/sh/boards/board-apsh4ad0a.c
Normal file
125
arch/sh/boards/board-apsh4ad0a.c
Normal file
@@ -0,0 +1,125 @@
|
||||
/*
|
||||
* ALPHAPROJECT AP-SH4AD-0A Support.
|
||||
*
|
||||
* Copyright (C) 2010 ALPHAPROJECT Co.,Ltd.
|
||||
* Copyright (C) 2010 Matt Fleming
|
||||
* Copyright (C) 2010 Paul Mundt
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/smsc911x.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/clk.h>
|
||||
#include <asm/machvec.h>
|
||||
#include <asm/sizes.h>
|
||||
|
||||
static struct resource smsc911x_resources[] = {
|
||||
[0] = {
|
||||
.name = "smsc911x-memory",
|
||||
.start = 0xA4000000,
|
||||
.end = 0xA4000000 + SZ_256 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
[1] = {
|
||||
.name = "smsc911x-irq",
|
||||
.start = evt2irq(0x200),
|
||||
.end = evt2irq(0x200),
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct smsc911x_platform_config smsc911x_config = {
|
||||
.irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
|
||||
.irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
|
||||
.flags = SMSC911X_USE_16BIT,
|
||||
.phy_interface = PHY_INTERFACE_MODE_MII,
|
||||
};
|
||||
|
||||
static struct platform_device smsc911x_device = {
|
||||
.name = "smsc911x",
|
||||
.id = -1,
|
||||
.num_resources = ARRAY_SIZE(smsc911x_resources),
|
||||
.resource = smsc911x_resources,
|
||||
.dev = {
|
||||
.platform_data = &smsc911x_config,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device *apsh4ad0a_devices[] __initdata = {
|
||||
&smsc911x_device,
|
||||
};
|
||||
|
||||
static int __init apsh4ad0a_devices_setup(void)
|
||||
{
|
||||
return platform_add_devices(apsh4ad0a_devices,
|
||||
ARRAY_SIZE(apsh4ad0a_devices));
|
||||
}
|
||||
device_initcall(apsh4ad0a_devices_setup);
|
||||
|
||||
static int apsh4ad0a_mode_pins(void)
|
||||
{
|
||||
int value = 0;
|
||||
|
||||
/* These are the factory default settings of SW1 and SW2.
|
||||
* If you change these dip switches then you will need to
|
||||
* adjust the values below as well.
|
||||
*/
|
||||
value |= MODE_PIN0; /* Clock Mode 3 */
|
||||
value |= MODE_PIN1;
|
||||
value &= ~MODE_PIN2;
|
||||
value &= ~MODE_PIN3;
|
||||
value &= ~MODE_PIN4; /* 16-bit Area0 bus width */
|
||||
value |= MODE_PIN5;
|
||||
value |= MODE_PIN6;
|
||||
value |= MODE_PIN7; /* Normal mode */
|
||||
value |= MODE_PIN8; /* Little Endian */
|
||||
value |= MODE_PIN9; /* Crystal resonator */
|
||||
value &= ~MODE_PIN10; /* 29-bit address mode */
|
||||
value &= ~MODE_PIN11; /* PCI-E Root port */
|
||||
value &= ~MODE_PIN12; /* 4 lane + 1 lane */
|
||||
value |= MODE_PIN13; /* AUD Enable */
|
||||
value &= ~MODE_PIN14; /* Normal Operation */
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
static int apsh4ad0a_clk_init(void)
|
||||
{
|
||||
struct clk *clk;
|
||||
int ret;
|
||||
|
||||
clk = clk_get(NULL, "extal");
|
||||
if (!clk || IS_ERR(clk))
|
||||
return PTR_ERR(clk);
|
||||
ret = clk_set_rate(clk, 33333000);
|
||||
clk_put(clk);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Initialize the board */
|
||||
static void __init apsh4ad0a_setup(char **cmdline_p)
|
||||
{
|
||||
pr_info("Alpha Project AP-SH4AD-0A support:\n");
|
||||
}
|
||||
|
||||
static void __init apsh4ad0a_init_irq(void)
|
||||
{
|
||||
plat_irq_setup_pins(IRQ_MODE_IRQ3210);
|
||||
}
|
||||
|
||||
/*
|
||||
* The Machine Vector
|
||||
*/
|
||||
static struct sh_machine_vector mv_apsh4ad0a __initmv = {
|
||||
.mv_name = "AP-SH4AD-0A",
|
||||
.mv_setup = apsh4ad0a_setup,
|
||||
.mv_mode_pins = apsh4ad0a_mode_pins,
|
||||
.mv_clk_init = apsh4ad0a_clk_init,
|
||||
.mv_init_irq = apsh4ad0a_init_irq,
|
||||
};
|
||||
@@ -66,7 +66,7 @@ static int __init init_edosk7705_devices(void)
|
||||
return platform_add_devices(edosk7705_devices,
|
||||
ARRAY_SIZE(edosk7705_devices));
|
||||
}
|
||||
__initcall(init_edosk7705_devices);
|
||||
device_initcall(init_edosk7705_devices);
|
||||
|
||||
/*
|
||||
* The Machine Vector
|
||||
|
||||
@@ -182,7 +182,7 @@ static int __init init_edosk7760_devices(void)
|
||||
return platform_add_devices(edosk7760_devices,
|
||||
ARRAY_SIZE(edosk7760_devices));
|
||||
}
|
||||
__initcall(init_edosk7760_devices);
|
||||
device_initcall(init_edosk7760_devices);
|
||||
|
||||
/*
|
||||
* The Machine Vector
|
||||
|
||||
@@ -284,7 +284,7 @@ static int __init sh7785lcr_devices_setup(void)
|
||||
return platform_add_devices(sh7785lcr_devices,
|
||||
ARRAY_SIZE(sh7785lcr_devices));
|
||||
}
|
||||
__initcall(sh7785lcr_devices_setup);
|
||||
device_initcall(sh7785lcr_devices_setup);
|
||||
|
||||
/* Initialize IRQ setting */
|
||||
void __init init_sh7785lcr_IRQ(void)
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
#include <linux/device.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mfd/sh_mobile_sdhi.h>
|
||||
#include <linux/mmc/host.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/mtd/sh_flctl.h>
|
||||
#include <linux/delay.h>
|
||||
@@ -430,11 +432,18 @@ static struct resource sdhi0_cn3_resources[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct sh_mobile_sdhi_info sdhi0_cn3_data = {
|
||||
.tmio_caps = MMC_CAP_SDIO_IRQ,
|
||||
};
|
||||
|
||||
static struct platform_device sdhi0_cn3_device = {
|
||||
.name = "sh_mobile_sdhi",
|
||||
.id = 0, /* "sdhi0" clock */
|
||||
.num_resources = ARRAY_SIZE(sdhi0_cn3_resources),
|
||||
.resource = sdhi0_cn3_resources,
|
||||
.dev = {
|
||||
.platform_data = &sdhi0_cn3_data,
|
||||
},
|
||||
.archdata = {
|
||||
.hwblk_id = HWBLK_SDHI0,
|
||||
},
|
||||
@@ -453,11 +462,18 @@ static struct resource sdhi1_cn7_resources[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static struct sh_mobile_sdhi_info sdhi1_cn7_data = {
|
||||
.tmio_caps = MMC_CAP_SDIO_IRQ,
|
||||
};
|
||||
|
||||
static struct platform_device sdhi1_cn7_device = {
|
||||
.name = "sh_mobile_sdhi",
|
||||
.id = 1, /* "sdhi1" clock */
|
||||
.num_resources = ARRAY_SIZE(sdhi1_cn7_resources),
|
||||
.resource = sdhi1_cn7_resources,
|
||||
.dev = {
|
||||
.platform_data = &sdhi1_cn7_data,
|
||||
},
|
||||
.archdata = {
|
||||
.hwblk_id = HWBLK_SDHI1,
|
||||
},
|
||||
|
||||
@@ -165,7 +165,7 @@ static int __init smsc_superio_setup(void)
|
||||
|
||||
return 0;
|
||||
}
|
||||
__initcall(smsc_superio_setup);
|
||||
device_initcall(smsc_superio_setup);
|
||||
|
||||
static void __iomem *cayman_ioport_map(unsigned long port, unsigned int len)
|
||||
{
|
||||
|
||||
@@ -473,6 +473,7 @@ static struct sh_mobile_sdhi_info sdhi0_info = {
|
||||
.dma_slave_tx = SHDMA_SLAVE_SDHI0_TX,
|
||||
.dma_slave_rx = SHDMA_SLAVE_SDHI0_RX,
|
||||
.set_pwr = sdhi0_set_pwr,
|
||||
.tmio_caps = MMC_CAP_SDIO_IRQ | MMC_CAP_POWER_OFF_CARD,
|
||||
};
|
||||
|
||||
static struct resource sdhi0_resources[] = {
|
||||
@@ -511,6 +512,7 @@ static void sdhi1_set_pwr(struct platform_device *pdev, int state)
|
||||
static struct sh_mobile_sdhi_info sdhi1_info = {
|
||||
.dma_slave_tx = SHDMA_SLAVE_SDHI1_TX,
|
||||
.dma_slave_rx = SHDMA_SLAVE_SDHI1_RX,
|
||||
.tmio_caps = MMC_CAP_SDIO_IRQ | MMC_CAP_POWER_OFF_CARD,
|
||||
.set_pwr = sdhi1_set_pwr,
|
||||
};
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/mfd/sh_mobile_sdhi.h>
|
||||
#include <linux/mmc/host.h>
|
||||
#include <linux/mfd/tmio.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/mtd/onenand.h>
|
||||
@@ -366,6 +367,7 @@ static struct sh_mobile_sdhi_info sh7724_sdhi0_data = {
|
||||
.dma_slave_tx = SHDMA_SLAVE_SDHI0_TX,
|
||||
.dma_slave_rx = SHDMA_SLAVE_SDHI0_RX,
|
||||
.tmio_flags = TMIO_MMC_WRPROTECT_DISABLE,
|
||||
.tmio_caps = MMC_CAP_SDIO_IRQ,
|
||||
};
|
||||
|
||||
static struct platform_device kfr2r09_sh_sdhi0_device = {
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
/*
|
||||
* arch/sh/boards/landisk/irq.c
|
||||
* arch/sh/boards/mach-landisk/irq.c
|
||||
*
|
||||
* I-O DATA Device, Inc. LANDISK Support
|
||||
*
|
||||
* Copyright (C) 2005-2007 kogiidena
|
||||
* Copyright (C) 2011 Nobuhiro Iwamatsu
|
||||
*
|
||||
* Copyright (C) 2001 Ian da Silva, Jeremy Siegel
|
||||
* Based largely on io_se.c.
|
||||
@@ -12,44 +13,54 @@
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/io.h>
|
||||
#include <mach-landisk/mach/iodata_landisk.h>
|
||||
|
||||
static void disable_landisk_irq(struct irq_data *data)
|
||||
{
|
||||
unsigned char mask = 0xff ^ (0x01 << (data->irq - 5));
|
||||
enum {
|
||||
UNUSED = 0,
|
||||
|
||||
__raw_writeb(__raw_readb(PA_IMASK) & mask, PA_IMASK);
|
||||
}
|
||||
|
||||
static void enable_landisk_irq(struct irq_data *data)
|
||||
{
|
||||
unsigned char value = (0x01 << (data->irq - 5));
|
||||
|
||||
__raw_writeb(__raw_readb(PA_IMASK) | value, PA_IMASK);
|
||||
}
|
||||
|
||||
static struct irq_chip landisk_irq_chip __read_mostly = {
|
||||
.name = "LANDISK",
|
||||
.irq_mask = disable_landisk_irq,
|
||||
.irq_unmask = enable_landisk_irq,
|
||||
PCI_INTA, /* PCI int A */
|
||||
PCI_INTB, /* PCI int B */
|
||||
PCI_INTC, /* PCI int C */
|
||||
PCI_INTD, /* PCI int D */
|
||||
ATA, /* ATA */
|
||||
FATA, /* CF */
|
||||
POWER, /* Power swtich */
|
||||
BUTTON, /* Button swtich */
|
||||
};
|
||||
|
||||
/* Vectors for LANDISK */
|
||||
static struct intc_vect vectors_landisk[] __initdata = {
|
||||
INTC_IRQ(PCI_INTA, IRQ_PCIINTA),
|
||||
INTC_IRQ(PCI_INTB, IRQ_PCIINTB),
|
||||
INTC_IRQ(PCI_INTC, IRQ_PCIINTC),
|
||||
INTC_IRQ(PCI_INTD, IRQ_PCIINTD),
|
||||
INTC_IRQ(ATA, IRQ_ATA),
|
||||
INTC_IRQ(FATA, IRQ_FATA),
|
||||
INTC_IRQ(POWER, IRQ_POWER),
|
||||
INTC_IRQ(BUTTON, IRQ_BUTTON),
|
||||
};
|
||||
|
||||
/* IRLMSK mask register layout for LANDISK */
|
||||
static struct intc_mask_reg mask_registers_landisk[] __initdata = {
|
||||
{ PA_IMASK, 0, 8, /* IRLMSK */
|
||||
{ BUTTON, POWER, FATA, ATA,
|
||||
PCI_INTD, PCI_INTC, PCI_INTB, PCI_INTA,
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
static DECLARE_INTC_DESC(intc_desc_landisk, "landisk", vectors_landisk, NULL,
|
||||
mask_registers_landisk, NULL, NULL);
|
||||
/*
|
||||
* Initialize IRQ setting
|
||||
*/
|
||||
void __init init_landisk_IRQ(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 5; i < 14; i++) {
|
||||
disable_irq_nosync(i);
|
||||
set_irq_chip_and_handler_name(i, &landisk_irq_chip,
|
||||
handle_level_irq, "level");
|
||||
enable_landisk_irq(irq_get_irq_data(i));
|
||||
}
|
||||
register_intc_controller(&intc_desc_landisk);
|
||||
__raw_writeb(0x00, PA_PWRINT_CLR);
|
||||
}
|
||||
|
||||
@@ -21,8 +21,6 @@
|
||||
#include <mach-landisk/mach/iodata_landisk.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
void init_landisk_IRQ(void);
|
||||
|
||||
static void landisk_power_off(void)
|
||||
{
|
||||
__raw_writeb(0x01, PA_SHUTDOWN);
|
||||
@@ -83,7 +81,7 @@ static int __init landisk_devices_setup(void)
|
||||
ARRAY_SIZE(landisk_devices));
|
||||
}
|
||||
|
||||
__initcall(landisk_devices_setup);
|
||||
device_initcall(landisk_devices_setup);
|
||||
|
||||
static void __init landisk_setup(char **cmdline_p)
|
||||
{
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <linux/input.h>
|
||||
#include <linux/input/sh_keysc.h>
|
||||
#include <linux/mfd/sh_mobile_sdhi.h>
|
||||
#include <linux/mmc/host.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/mtd/nand.h>
|
||||
#include <linux/i2c.h>
|
||||
@@ -410,6 +411,7 @@ static struct resource sdhi_cn9_resources[] = {
|
||||
static struct sh_mobile_sdhi_info sh7724_sdhi_data = {
|
||||
.dma_slave_tx = SHDMA_SLAVE_SDHI0_TX,
|
||||
.dma_slave_rx = SHDMA_SLAVE_SDHI0_RX,
|
||||
.tmio_caps = MMC_CAP_SDIO_IRQ,
|
||||
};
|
||||
|
||||
static struct platform_device sdhi_cn9_device = {
|
||||
|
||||
@@ -258,7 +258,7 @@ static int __init rts7751r2d_devices_setup(void)
|
||||
return platform_add_devices(rts7751r2d_devices,
|
||||
ARRAY_SIZE(rts7751r2d_devices));
|
||||
}
|
||||
__initcall(rts7751r2d_devices_setup);
|
||||
device_initcall(rts7751r2d_devices_setup);
|
||||
|
||||
static void rts7751r2d_power_off(void)
|
||||
{
|
||||
|
||||
@@ -15,13 +15,13 @@
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/clkdev.h>
|
||||
#include <mach/fpga.h>
|
||||
#include <mach/irq.h>
|
||||
#include <asm/machvec.h>
|
||||
#include <asm/heartbeat.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <asm/clock.h>
|
||||
#include <asm/clkdev.h>
|
||||
#include <asm/reboot.h>
|
||||
#include <asm/smp-ops.h>
|
||||
|
||||
@@ -135,7 +135,7 @@ static int __init sdk7786_devices_setup(void)
|
||||
|
||||
return sdk7786_i2c_setup();
|
||||
}
|
||||
__initcall(sdk7786_devices_setup);
|
||||
device_initcall(sdk7786_devices_setup);
|
||||
|
||||
static int sdk7786_mode_pins(void)
|
||||
{
|
||||
|
||||
@@ -77,7 +77,7 @@ static int __init se7206_devices_setup(void)
|
||||
{
|
||||
return platform_add_devices(se7206_devices, ARRAY_SIZE(se7206_devices));
|
||||
}
|
||||
__initcall(se7206_devices_setup);
|
||||
device_initcall(se7206_devices_setup);
|
||||
|
||||
static int se7206_mode_pins(void)
|
||||
{
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mfd/sh_mobile_sdhi.h>
|
||||
#include <linux/mmc/host.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/smc91x.h>
|
||||
@@ -471,6 +472,7 @@ static struct resource sdhi0_cn7_resources[] = {
|
||||
static struct sh_mobile_sdhi_info sh7724_sdhi0_data = {
|
||||
.dma_slave_tx = SHDMA_SLAVE_SDHI0_TX,
|
||||
.dma_slave_rx = SHDMA_SLAVE_SDHI0_RX,
|
||||
.tmio_caps = MMC_CAP_SDIO_IRQ,
|
||||
};
|
||||
|
||||
static struct platform_device sdhi0_cn7_device = {
|
||||
@@ -502,6 +504,7 @@ static struct resource sdhi1_cn8_resources[] = {
|
||||
static struct sh_mobile_sdhi_info sh7724_sdhi1_data = {
|
||||
.dma_slave_tx = SHDMA_SLAVE_SDHI1_TX,
|
||||
.dma_slave_rx = SHDMA_SLAVE_SDHI1_RX,
|
||||
.tmio_caps = MMC_CAP_SDIO_IRQ,
|
||||
};
|
||||
|
||||
static struct platform_device sdhi1_cn8_device = {
|
||||
|
||||
@@ -48,7 +48,7 @@ static int __init se7751_devices_setup(void)
|
||||
{
|
||||
return platform_add_devices(se7751_devices, ARRAY_SIZE(se7751_devices));
|
||||
}
|
||||
__initcall(se7751_devices_setup);
|
||||
device_initcall(se7751_devices_setup);
|
||||
|
||||
/*
|
||||
* The Machine Vector
|
||||
|
||||
@@ -96,7 +96,7 @@ static int __init sh03_devices_setup(void)
|
||||
|
||||
return platform_add_devices(sh03_devices, ARRAY_SIZE(sh03_devices));
|
||||
}
|
||||
__initcall(sh03_devices_setup);
|
||||
device_initcall(sh03_devices_setup);
|
||||
|
||||
static struct sh_machine_vector mv_sh03 __initmv = {
|
||||
.mv_name = "Interface (CTP/PCI-SH03)",
|
||||
|
||||
@@ -21,9 +21,6 @@
|
||||
#define HIZCRC 0xa405015c
|
||||
#define DRVCRA 0xa405018a
|
||||
|
||||
enum { MMCIF_PROGRESS_ENTER, MMCIF_PROGRESS_INIT,
|
||||
MMCIF_PROGRESS_LOAD, MMCIF_PROGRESS_DONE };
|
||||
|
||||
/* SH7724 specific MMCIF loader
|
||||
*
|
||||
* loads the romImage from an MMC card starting from block 512
|
||||
@@ -63,7 +60,9 @@ asmlinkage void mmcif_loader(unsigned char *buf, unsigned long no_bytes)
|
||||
mmcif_update_progress(MMCIF_PROGRESS_LOAD);
|
||||
|
||||
/* load kernel via MMCIF interface */
|
||||
sh_mmcif_boot_slurp(MMCIF_BASE, buf, no_bytes);
|
||||
sh_mmcif_boot_do_read(MMCIF_BASE, 512,
|
||||
(no_bytes + SH_MMCIF_BBS - 1) / SH_MMCIF_BBS,
|
||||
buf);
|
||||
|
||||
/* disable clock to the MMCIF hardware block */
|
||||
__raw_writel(__raw_readl(MSTPCR2) | 0x20000000, MSTPCR2);
|
||||
|
||||
102
arch/sh/configs/apsh4a3a_defconfig
Normal file
102
arch/sh/configs/apsh4a3a_defconfig
Normal file
@@ -0,0 +1,102 @@
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_BSD_PROCESS_ACCT=y
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
CONFIG_SYSFS_DEPRECATED=y
|
||||
CONFIG_SYSFS_DEPRECATED_V2=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_SLAB=y
|
||||
CONFIG_PROFILING=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
CONFIG_CPU_SUBTYPE_SH7785=y
|
||||
CONFIG_MEMORY_START=0x0C000000
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
CONFIG_SH_STORE_QUEUES=y
|
||||
CONFIG_SH_APSH4A3A=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_KEXEC=y
|
||||
CONFIG_PREEMPT=y
|
||||
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_ADVANCED_ROUTER=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
# CONFIG_INET_LRO is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
# CONFIG_FW_LOADER is not set
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_CONCAT=y
|
||||
CONFIG_MTD_PARTITIONS=y
|
||||
CONFIG_MTD_CHAR=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
CONFIG_MTD_CFI=y
|
||||
CONFIG_MTD_CFI_AMDSTD=y
|
||||
CONFIG_MTD_PHYSMAP=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_SIZE=16384
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_NET_ETHERNET=y
|
||||
CONFIG_SMSC911X=y
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_WLAN is not set
|
||||
# CONFIG_INPUT_MOUSEDEV is not set
|
||||
# CONFIG_INPUT_KEYBOARD is not set
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
# CONFIG_SERIO is not set
|
||||
CONFIG_VT_HW_CONSOLE_BINDING=y
|
||||
CONFIG_SERIAL_SH_SCI=y
|
||||
CONFIG_SERIAL_SH_SCI_NR_UARTS=6
|
||||
CONFIG_SERIAL_SH_SCI_CONSOLE=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
# CONFIG_HWMON is not set
|
||||
CONFIG_FB=y
|
||||
CONFIG_FB_SH7785FB=y
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||
CONFIG_FONTS=y
|
||||
CONFIG_FONT_8x8=y
|
||||
CONFIG_FONT_8x16=y
|
||||
CONFIG_LOGO=y
|
||||
# CONFIG_HID_SUPPORT is not set
|
||||
# CONFIG_USB_SUPPORT is not set
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT3_FS=y
|
||||
# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
|
||||
CONFIG_MSDOS_FS=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_NTFS_FS=y
|
||||
CONFIG_NTFS_RW=y
|
||||
CONFIG_PROC_KCORE=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_JFFS2_FS=y
|
||||
CONFIG_CRAMFS=y
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3=y
|
||||
CONFIG_NFS_V4=y
|
||||
CONFIG_CIFS=y
|
||||
CONFIG_NLS_DEFAULT="utf8"
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_CODEPAGE_932=y
|
||||
CONFIG_NLS_ASCII=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_NLS_UTF8=y
|
||||
# CONFIG_ENABLE_WARN_DEPRECATED is not set
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_DEBUG_FS=y
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||
CONFIG_DEBUG_INFO=y
|
||||
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
|
||||
# CONFIG_FTRACE is not set
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
# CONFIG_CRYPTO_HW is not set
|
||||
133
arch/sh/configs/apsh4ad0a_defconfig
Normal file
133
arch/sh/configs/apsh4ad0a_defconfig
Normal file
@@ -0,0 +1,133 @@
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_POSIX_MQUEUE=y
|
||||
CONFIG_BSD_PROCESS_ACCT=y
|
||||
CONFIG_RCU_TRACE=y
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
CONFIG_CGROUPS=y
|
||||
CONFIG_CGROUP_NS=y
|
||||
CONFIG_CGROUP_FREEZER=y
|
||||
CONFIG_CGROUP_DEVICE=y
|
||||
CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_RESOURCE_COUNTERS=y
|
||||
CONFIG_CGROUP_MEM_RES_CTLR=y
|
||||
CONFIG_BLK_CGROUP=y
|
||||
CONFIG_NAMESPACES=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
# CONFIG_COMPAT_BRK is not set
|
||||
CONFIG_SLAB=y
|
||||
CONFIG_PROFILING=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_LBDAF is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
CONFIG_CFQ_GROUP_IOSCHED=y
|
||||
CONFIG_CPU_SUBTYPE_SH7786=y
|
||||
CONFIG_MEMORY_SIZE=0x10000000
|
||||
CONFIG_HUGETLB_PAGE_SIZE_1MB=y
|
||||
CONFIG_MEMORY_HOTPLUG=y
|
||||
CONFIG_MEMORY_HOTREMOVE=y
|
||||
CONFIG_KSM=y
|
||||
CONFIG_SH_STORE_QUEUES=y
|
||||
CONFIG_SH_APSH4AD0A=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_CPU_FREQ=y
|
||||
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
|
||||
CONFIG_CPU_FREQ_GOV_USERSPACE=m
|
||||
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
|
||||
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
|
||||
CONFIG_SH_CPU_FREQ=y
|
||||
CONFIG_KEXEC=y
|
||||
CONFIG_SECCOMP=y
|
||||
CONFIG_PREEMPT=y
|
||||
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
|
||||
CONFIG_BINFMT_MISC=y
|
||||
CONFIG_PM=y
|
||||
CONFIG_PM_DEBUG=y
|
||||
CONFIG_PM_VERBOSE=y
|
||||
CONFIG_PM_RUNTIME=y
|
||||
CONFIG_CPU_IDLE=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_NET_KEY=y
|
||||
CONFIG_INET=y
|
||||
# CONFIG_INET_LRO is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
# CONFIG_FW_LOADER is not set
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_CFI=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_SIZE=16384
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_SCSI_MULTI_LUN=y
|
||||
# CONFIG_SCSI_LOWLEVEL is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_MDIO_BITBANG=y
|
||||
CONFIG_NET_ETHERNET=y
|
||||
CONFIG_SMSC911X=y
|
||||
# CONFIG_NETDEV_1000 is not set
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_WLAN is not set
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
# CONFIG_INPUT_KEYBOARD is not set
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
# CONFIG_SERIO is not set
|
||||
CONFIG_SERIAL_SH_SCI=y
|
||||
CONFIG_SERIAL_SH_SCI_NR_UARTS=6
|
||||
CONFIG_SERIAL_SH_SCI_CONSOLE=y
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
# CONFIG_HWMON is not set
|
||||
CONFIG_VIDEO_OUTPUT_CONTROL=y
|
||||
CONFIG_FB=y
|
||||
CONFIG_FB_SH7785FB=y
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||
CONFIG_FONTS=y
|
||||
CONFIG_FONT_8x8=y
|
||||
CONFIG_FONT_8x16=y
|
||||
CONFIG_LOGO=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_DEBUG=y
|
||||
CONFIG_USB_MON=y
|
||||
CONFIG_USB_OHCI_HCD=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT3_FS=y
|
||||
# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
|
||||
CONFIG_MSDOS_FS=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_NTFS_FS=y
|
||||
CONFIG_NTFS_RW=y
|
||||
CONFIG_PROC_KCORE=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_HUGETLBFS=y
|
||||
CONFIG_JFFS2_FS=y
|
||||
CONFIG_CRAMFS=y
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3=y
|
||||
CONFIG_NFS_V4=y
|
||||
CONFIG_CIFS=y
|
||||
CONFIG_NLS_DEFAULT="utf8"
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_CODEPAGE_932=y
|
||||
CONFIG_NLS_ASCII=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_NLS_UTF8=y
|
||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
CONFIG_DEBUG_SHIRQ=y
|
||||
CONFIG_DETECT_HUNG_TASK=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
CONFIG_DEBUG_VM=y
|
||||
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
|
||||
CONFIG_DWARF_UNWINDER=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
@@ -39,21 +39,15 @@ CONFIG_IPV6=y
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
# CONFIG_FW_LOADER is not set
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
# CONFIG_MISC_DEVICES is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_PHYLIB=y
|
||||
CONFIG_VITESSE_PHY=y
|
||||
CONFIG_MDIO_BITBANG=y
|
||||
CONFIG_NET_ETHERNET=y
|
||||
CONFIG_MII=y
|
||||
CONFIG_SH_ETH=y
|
||||
# CONFIG_NETDEV_10000 is not set
|
||||
# CONFIG_WLAN is not set
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
# CONFIG_MOUSE_PS2 is not set
|
||||
# CONFIG_SERIO is not set
|
||||
CONFIG_SERIAL_8250=y
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_SERIAL_8250_NR_UARTS=2
|
||||
CONFIG_SERIAL_SH_SCI=y
|
||||
CONFIG_SERIAL_SH_SCI_NR_UARTS=3
|
||||
CONFIG_SERIAL_SH_SCI_CONSOLE=y
|
||||
@@ -63,7 +57,6 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
|
||||
# CONFIG_USB_SUPPORT is not set
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT3_FS=y
|
||||
CONFIG_INOTIFY=y
|
||||
CONFIG_ISO9660_FS=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_PROC_KCORE=y
|
||||
@@ -76,10 +69,8 @@ CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_CODEPAGE_932=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
# CONFIG_DETECT_SOFTLOCKUP is not set
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||
CONFIG_DEBUG_INFO=y
|
||||
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
|
||||
# CONFIG_FTRACE is not set
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
/*
|
||||
* arch/sh/drivers/pci/ops-landisk.c
|
||||
* arch/sh/drivers/pci/fixups-landisk.c
|
||||
*
|
||||
* PCI initialization for the I-O DATA Device, Inc. LANDISK board
|
||||
*
|
||||
* Copyright (C) 2006 kogiidena
|
||||
* Copyright (C) 2010 Nobuhiro Iwamatsu
|
||||
*
|
||||
* May be copied or modified under the terms of the GNU General Public
|
||||
* License. See linux/COPYING for more information.
|
||||
@@ -15,6 +16,9 @@
|
||||
#include <linux/pci.h>
|
||||
#include "pci-sh4.h"
|
||||
|
||||
#define PCIMCR_MRSET_OFF 0xBFFFFFFF
|
||||
#define PCIMCR_RFSH_OFF 0xFFFFFFFB
|
||||
|
||||
int pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin)
|
||||
{
|
||||
/*
|
||||
@@ -26,9 +30,29 @@ int pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin)
|
||||
int irq = ((slot + pin - 1) & 0x3) + 5;
|
||||
|
||||
if ((slot | (pin - 1)) > 0x3) {
|
||||
printk("PCI: Bad IRQ mapping request for slot %d pin %c\n",
|
||||
printk(KERN_WARNING "PCI: Bad IRQ mapping request for slot %d pin %c\n",
|
||||
slot, pin - 1 + 'A');
|
||||
return -1;
|
||||
}
|
||||
return irq;
|
||||
}
|
||||
|
||||
int pci_fixup_pcic(struct pci_channel *chan)
|
||||
{
|
||||
unsigned long bcr1, mcr;
|
||||
|
||||
bcr1 = __raw_readl(SH7751_BCR1);
|
||||
bcr1 |= 0x40080000; /* Enable Bit 19 BREQEN, set PCIC to slave */
|
||||
pci_write_reg(chan, bcr1, SH4_PCIBCR1);
|
||||
|
||||
mcr = __raw_readl(SH7751_MCR);
|
||||
mcr = (mcr & PCIMCR_MRSET_OFF) & PCIMCR_RFSH_OFF;
|
||||
pci_write_reg(chan, mcr, SH4_PCIMCR);
|
||||
|
||||
pci_write_reg(chan, 0x0c000000, SH7751_PCICONF5);
|
||||
pci_write_reg(chan, 0xd0000000, SH7751_PCICONF6);
|
||||
pci_write_reg(chan, 0x0c000000, SH4_PCILAR0);
|
||||
pci_write_reg(chan, 0x00000000, SH4_PCILAR1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -11,11 +11,6 @@
|
||||
*
|
||||
* While read{b,w,l,q} and write{b,w,l,q} contain memory barriers
|
||||
* automatically, there are also __raw versions, which do not.
|
||||
*
|
||||
* Historically, we have also had ctrl_in{b,w,l,q}/ctrl_out{b,w,l,q} for
|
||||
* SuperH specific I/O (raw I/O to on-chip CPU peripherals). In practice
|
||||
* these have the same semantics as the __raw variants, and as such, all
|
||||
* new code should be using the __raw versions.
|
||||
*/
|
||||
#include <linux/errno.h>
|
||||
#include <asm/cache.h>
|
||||
@@ -231,52 +226,6 @@ __BUILD_IOPORT_STRING(q, u64)
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Legacy SuperH on-chip I/O functions
|
||||
*
|
||||
* These are all deprecated, all new (and especially cross-platform) code
|
||||
* should be using the __raw_xxx() routines directly.
|
||||
*/
|
||||
static inline u8 __deprecated ctrl_inb(unsigned long addr)
|
||||
{
|
||||
return __raw_readb(addr);
|
||||
}
|
||||
|
||||
static inline u16 __deprecated ctrl_inw(unsigned long addr)
|
||||
{
|
||||
return __raw_readw(addr);
|
||||
}
|
||||
|
||||
static inline u32 __deprecated ctrl_inl(unsigned long addr)
|
||||
{
|
||||
return __raw_readl(addr);
|
||||
}
|
||||
|
||||
static inline u64 __deprecated ctrl_inq(unsigned long addr)
|
||||
{
|
||||
return __raw_readq(addr);
|
||||
}
|
||||
|
||||
static inline void __deprecated ctrl_outb(u8 v, unsigned long addr)
|
||||
{
|
||||
__raw_writeb(v, addr);
|
||||
}
|
||||
|
||||
static inline void __deprecated ctrl_outw(u16 v, unsigned long addr)
|
||||
{
|
||||
__raw_writew(v, addr);
|
||||
}
|
||||
|
||||
static inline void __deprecated ctrl_outl(u32 v, unsigned long addr)
|
||||
{
|
||||
__raw_writel(v, addr);
|
||||
}
|
||||
|
||||
static inline void __deprecated ctrl_outq(u64 v, unsigned long addr)
|
||||
{
|
||||
__raw_writeq(v, addr);
|
||||
}
|
||||
|
||||
#define IO_SPACE_LIMIT 0xffffffff
|
||||
|
||||
/* synco on SH-4A, otherwise a nop */
|
||||
@@ -341,7 +290,15 @@ __ioremap_29bit(phys_addr_t offset, unsigned long size, pgprot_t prot)
|
||||
* mapping must be done by the PMB or by using page tables.
|
||||
*/
|
||||
if (likely(PXSEG(offset) < P3SEG && PXSEG(last_addr) < P3SEG)) {
|
||||
if (unlikely(pgprot_val(prot) & _PAGE_CACHABLE))
|
||||
u64 flags = pgprot_val(prot);
|
||||
|
||||
/*
|
||||
* Anything using the legacy PTEA space attributes needs
|
||||
* to be kicked down to page table mappings.
|
||||
*/
|
||||
if (unlikely(flags & _PAGE_PCC_MASK))
|
||||
return NULL;
|
||||
if (unlikely(flags & _PAGE_CACHABLE))
|
||||
return (void __iomem *)P1SEGADDR(offset);
|
||||
|
||||
return (void __iomem *)P2SEGADDR(offset);
|
||||
|
||||
@@ -31,6 +31,7 @@ struct sh_machine_vector {
|
||||
int (*mv_mode_pins)(void);
|
||||
|
||||
void (*mv_mem_init)(void);
|
||||
void (*mv_mem_reserve)(void);
|
||||
};
|
||||
|
||||
extern struct sh_machine_vector sh_mv;
|
||||
|
||||
@@ -76,6 +76,10 @@
|
||||
/* Wrapper for extended mode pgprot twiddling */
|
||||
#define _PAGE_EXT(x) ((unsigned long long)(x) << 32)
|
||||
|
||||
#ifdef CONFIG_X2TLB
|
||||
#define _PAGE_PCC_MASK 0x00000000 /* No legacy PTEA support */
|
||||
#else
|
||||
|
||||
/* software: moves to PTEA.TC (Timing Control) */
|
||||
#define _PAGE_PCC_AREA5 0x00000000 /* use BSC registers for area5 */
|
||||
#define _PAGE_PCC_AREA6 0x80000000 /* use BSC registers for area6 */
|
||||
@@ -89,7 +93,8 @@
|
||||
#define _PAGE_PCC_ATR8 0x60000000 /* Attribute Memory space, 8 bit bus */
|
||||
#define _PAGE_PCC_ATR16 0x60000001 /* Attribute Memory space, 6 bit bus */
|
||||
|
||||
#ifndef CONFIG_X2TLB
|
||||
#define _PAGE_PCC_MASK 0xe0000001
|
||||
|
||||
/* copy the ptea attributes */
|
||||
static inline unsigned long copy_ptea_attributes(unsigned long x)
|
||||
{
|
||||
@@ -231,13 +236,7 @@ static inline unsigned long copy_ptea_attributes(unsigned long x)
|
||||
_PAGE_EXT_KERN_EXEC))
|
||||
|
||||
#define PAGE_KERNEL_PCC(slot, type) \
|
||||
__pgprot(_PAGE_PRESENT | _PAGE_DIRTY | \
|
||||
_PAGE_ACCESSED | _PAGE_FLAGS_HARD | \
|
||||
_PAGE_EXT(_PAGE_EXT_KERN_READ | \
|
||||
_PAGE_EXT_KERN_WRITE | \
|
||||
_PAGE_EXT_KERN_EXEC) \
|
||||
(slot ? _PAGE_PCC_AREA5 : _PAGE_PCC_AREA6) | \
|
||||
(type))
|
||||
__pgprot(0)
|
||||
|
||||
#elif defined(CONFIG_MMU) /* SH-X TLB */
|
||||
#define PAGE_NONE __pgprot(_PAGE_PROTNONE | _PAGE_CACHABLE | \
|
||||
|
||||
@@ -35,7 +35,7 @@ enum cpu_type {
|
||||
CPU_SH7723, CPU_SH7724, CPU_SH7757, CPU_SHX3,
|
||||
|
||||
/* SH4AL-DSP types */
|
||||
CPU_SH7343, CPU_SH7722, CPU_SH7366,
|
||||
CPU_SH7343, CPU_SH7722, CPU_SH7366, CPU_SH7372,
|
||||
|
||||
/* SH-5 types */
|
||||
CPU_SH5_101, CPU_SH5_103,
|
||||
|
||||
@@ -194,15 +194,17 @@ extern unsigned long get_wchan(struct task_struct *p);
|
||||
#define KSTK_ESP(tsk) (task_pt_regs(tsk)->regs[15])
|
||||
|
||||
#if defined(CONFIG_CPU_SH2A) || defined(CONFIG_CPU_SH4)
|
||||
|
||||
#define PREFETCH_STRIDE L1_CACHE_BYTES
|
||||
#define ARCH_HAS_PREFETCH
|
||||
#define ARCH_HAS_PREFETCHW
|
||||
static inline void prefetch(void *x)
|
||||
|
||||
static inline void prefetch(const void *x)
|
||||
{
|
||||
__builtin_prefetch(x, 0, 3);
|
||||
}
|
||||
|
||||
static inline void prefetchw(void *x)
|
||||
static inline void prefetchw(const void *x)
|
||||
{
|
||||
__builtin_prefetch(x, 1, 3);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define __ASM_SH_IODATA_LANDISK_H
|
||||
|
||||
/*
|
||||
* linux/include/asm-sh/landisk/iodata_landisk.h
|
||||
* arch/sh/include/mach-landisk/mach/iodata_landisk.h
|
||||
*
|
||||
* Copyright (C) 2000 Atom Create Engineering Co., Ltd.
|
||||
*
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
#define IRQ_PCIINTA 5 /* PCI INTA IRQ */
|
||||
#define IRQ_PCIINTB 6 /* PCI INTB IRQ */
|
||||
#define IRQ_PCIINDC 7 /* PCI INTC IRQ */
|
||||
#define IRQ_PCIINTC 7 /* PCI INTC IRQ */
|
||||
#define IRQ_PCIINTD 8 /* PCI INTD IRQ */
|
||||
#define IRQ_ATA 9 /* ATA IRQ */
|
||||
#define IRQ_FATA 10 /* FATA IRQ */
|
||||
@@ -35,6 +35,8 @@
|
||||
#define IRQ_BUTTON 12 /* USL-5P Button IRQ */
|
||||
#define IRQ_FAULT 13 /* USL-5P Fault IRQ */
|
||||
|
||||
void init_landisk_IRQ(void);
|
||||
|
||||
#define __IO_PREFIX landisk
|
||||
#include <asm/io_generic.h>
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ static const char *cpu_name[] = {
|
||||
[CPU_SH5_101] = "SH5-101", [CPU_SH5_103] = "SH5-103",
|
||||
[CPU_MXG] = "MX-G", [CPU_SH7723] = "SH7723",
|
||||
[CPU_SH7366] = "SH7366", [CPU_SH7724] = "SH7724",
|
||||
[CPU_SH_NONE] = "Unknown"
|
||||
[CPU_SH7372] = "SH7372", [CPU_SH_NONE] = "Unknown"
|
||||
};
|
||||
|
||||
const char *get_cpu_subtype(struct sh_cpuinfo *c)
|
||||
|
||||
@@ -62,6 +62,8 @@ static DECLARE_INTC_DESC(intc_desc, "sh7619", vectors, NULL,
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xf8400000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 88, 88, 88, 88 },
|
||||
};
|
||||
@@ -77,6 +79,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xf8410000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 92, 92, 92, 92 },
|
||||
};
|
||||
@@ -92,6 +96,8 @@ static struct platform_device scif1_device = {
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xf8420000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 96, 96, 96, 96 },
|
||||
};
|
||||
|
||||
@@ -201,6 +201,8 @@ static struct platform_device mtu2_2_device = {
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xff804000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 220, 220, 220, 220 },
|
||||
};
|
||||
|
||||
@@ -180,6 +180,8 @@ static DECLARE_INTC_DESC(intc_desc, "sh7201", vectors, groups,
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xfffe8000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 180, 180, 180, 180 }
|
||||
};
|
||||
@@ -195,6 +197,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xfffe8800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 184, 184, 184, 184 }
|
||||
};
|
||||
@@ -210,6 +214,8 @@ static struct platform_device scif1_device = {
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xfffe9000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 188, 188, 188, 188 }
|
||||
};
|
||||
@@ -225,6 +231,8 @@ static struct platform_device scif2_device = {
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xfffe9800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 192, 192, 192, 192 }
|
||||
};
|
||||
@@ -240,6 +248,8 @@ static struct platform_device scif3_device = {
|
||||
static struct plat_sci_port scif4_platform_data = {
|
||||
.mapbase = 0xfffea000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 196, 196, 196, 196 }
|
||||
};
|
||||
@@ -255,6 +265,8 @@ static struct platform_device scif4_device = {
|
||||
static struct plat_sci_port scif5_platform_data = {
|
||||
.mapbase = 0xfffea800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 200, 200, 200, 200 }
|
||||
};
|
||||
@@ -270,6 +282,8 @@ static struct platform_device scif5_device = {
|
||||
static struct plat_sci_port scif6_platform_data = {
|
||||
.mapbase = 0xfffeb000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 204, 204, 204, 204 }
|
||||
};
|
||||
@@ -285,6 +299,8 @@ static struct platform_device scif6_device = {
|
||||
static struct plat_sci_port scif7_platform_data = {
|
||||
.mapbase = 0xfffeb800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 208, 208, 208, 208 }
|
||||
};
|
||||
|
||||
@@ -176,6 +176,8 @@ static DECLARE_INTC_DESC(intc_desc, "sh7203", vectors, groups,
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xfffe8000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 192, 192, 192, 192 },
|
||||
};
|
||||
@@ -191,6 +193,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xfffe8800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 196, 196, 196, 196 },
|
||||
};
|
||||
@@ -206,6 +210,8 @@ static struct platform_device scif1_device = {
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xfffe9000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 200, 200, 200, 200 },
|
||||
};
|
||||
@@ -221,6 +227,8 @@ static struct platform_device scif2_device = {
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xfffe9800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 204, 204, 204, 204 },
|
||||
};
|
||||
|
||||
@@ -136,6 +136,8 @@ static DECLARE_INTC_DESC(intc_desc, "sh7206", vectors, groups,
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xfffe8000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 240, 240, 240, 240 },
|
||||
};
|
||||
@@ -151,6 +153,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xfffe8800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 244, 244, 244, 244 },
|
||||
};
|
||||
@@ -166,6 +170,8 @@ static struct platform_device scif1_device = {
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xfffe9000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 248, 248, 248, 248 },
|
||||
};
|
||||
@@ -181,6 +187,8 @@ static struct platform_device scif2_device = {
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xfffe9800,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 252, 252, 252, 252 },
|
||||
};
|
||||
|
||||
@@ -70,6 +70,9 @@ static DECLARE_INTC_DESC(intc_desc, "sh7705", vectors, NULL,
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xa4410000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_TIE | SCSCR_RIE | SCSCR_TE |
|
||||
SCSCR_RE | SCSCR_CKE1 | SCSCR_CKE0,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 56, 56, 56 },
|
||||
};
|
||||
@@ -85,6 +88,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xa4400000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_TIE | SCSCR_RIE | SCSCR_TE | SCSCR_RE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 52, 52, 52 },
|
||||
};
|
||||
|
||||
@@ -109,6 +109,8 @@ static struct platform_device rtc_device = {
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xfffffe80,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_TE | SCSCR_RE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCI,
|
||||
.irqs = { 23, 23, 23, 0 },
|
||||
};
|
||||
@@ -126,6 +128,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xa4000150,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_TE | SCSCR_RE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 56, 56, 56, 56 },
|
||||
};
|
||||
@@ -143,6 +147,8 @@ static struct platform_device scif1_device = {
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xa4000140,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_TE | SCSCR_RE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_IRDA,
|
||||
.irqs = { 52, 52, 52, 52 },
|
||||
};
|
||||
|
||||
@@ -99,6 +99,9 @@ static struct platform_device rtc_device = {
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xa4400000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_TE | SCSCR_RE | SCSCR_REIE |
|
||||
SCSCR_CKE1 | SCSCR_CKE0,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 52, 52, 52, 52 },
|
||||
};
|
||||
@@ -114,6 +117,9 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xa4410000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_TE | SCSCR_RE | SCSCR_REIE |
|
||||
SCSCR_CKE1 | SCSCR_CKE0,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 56, 56, 56, 56 },
|
||||
};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SH7720 Setup
|
||||
* Setup code for SH7720, SH7721.
|
||||
*
|
||||
* Copyright (C) 2007 Markus Brunner, Mark Jonas
|
||||
* Copyright (C) 2009 Paul Mundt
|
||||
@@ -51,6 +51,8 @@ static struct platform_device rtc_device = {
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xa4430000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 80, 80, 80, 80 },
|
||||
};
|
||||
@@ -66,6 +68,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xa4438000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_4,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 81, 81, 81, 81 },
|
||||
};
|
||||
|
||||
@@ -151,8 +151,14 @@ void __cpuinit cpu_probe(void)
|
||||
boot_cpu_data.flags |= CPU_HAS_L2_CACHE;
|
||||
break;
|
||||
case 0x10:
|
||||
case 0x11:
|
||||
boot_cpu_data.type = CPU_SH7757;
|
||||
break;
|
||||
case 0xd0:
|
||||
case 0x40: /* yon-ten-go */
|
||||
boot_cpu_data.type = CPU_SH7372;
|
||||
break;
|
||||
|
||||
}
|
||||
break;
|
||||
case 0x4000: /* 1st cut */
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffe80000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 41, 43, 42 },
|
||||
};
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <linux/io.h>
|
||||
#include <linux/sh_timer.h>
|
||||
#include <linux/serial_sci.h>
|
||||
#include <asm/machtypes.h>
|
||||
|
||||
static struct resource rtc_resources[] = {
|
||||
[0] = {
|
||||
@@ -35,33 +36,37 @@ static struct platform_device rtc_device = {
|
||||
.resource = rtc_resources,
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
static struct plat_sci_port sci_platform_data = {
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_TE | SCSCR_RE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCI,
|
||||
.irqs = { 23, 23, 23, 0 },
|
||||
};
|
||||
|
||||
static struct platform_device scif0_device = {
|
||||
static struct platform_device sci_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = &scif0_platform_data,
|
||||
.platform_data = &sci_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
static struct plat_sci_port scif_platform_data = {
|
||||
.mapbase = 0xffe80000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_TE | SCSCR_RE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 40, 40, 40 },
|
||||
};
|
||||
|
||||
static struct platform_device scif1_device = {
|
||||
static struct platform_device scif_device = {
|
||||
.name = "sh-sci",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &scif1_platform_data,
|
||||
.platform_data = &scif_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -210,8 +215,6 @@ static struct platform_device tmu4_device = {
|
||||
#endif
|
||||
|
||||
static struct platform_device *sh7750_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&rtc_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
@@ -226,14 +229,19 @@ static struct platform_device *sh7750_devices[] __initdata = {
|
||||
|
||||
static int __init sh7750_devices_setup(void)
|
||||
{
|
||||
if (mach_is_rts7751r2d()) {
|
||||
platform_register_device(&scif_device);
|
||||
} else {
|
||||
platform_register_device(&sci_device);
|
||||
platform_register_device(&scif_device);
|
||||
}
|
||||
|
||||
return platform_add_devices(sh7750_devices,
|
||||
ARRAY_SIZE(sh7750_devices));
|
||||
}
|
||||
arch_initcall(sh7750_devices_setup);
|
||||
|
||||
static struct platform_device *sh7750_early_devices[] __initdata = {
|
||||
&scif0_device,
|
||||
&scif1_device,
|
||||
&tmu0_device,
|
||||
&tmu1_device,
|
||||
&tmu2_device,
|
||||
@@ -247,6 +255,14 @@ static struct platform_device *sh7750_early_devices[] __initdata = {
|
||||
|
||||
void __init plat_early_device_setup(void)
|
||||
{
|
||||
if (mach_is_rts7751r2d()) {
|
||||
scif_platform_data.scscr |= SCSCR_CKE1;
|
||||
early_platform_add_devices(&scif_device, 1);
|
||||
} else {
|
||||
early_platform_add_devices(&sci_device, 1);
|
||||
early_platform_add_devices(&scif_device, 1);
|
||||
}
|
||||
|
||||
early_platform_add_devices(sh7750_early_devices,
|
||||
ARRAY_SIZE(sh7750_early_devices));
|
||||
}
|
||||
|
||||
@@ -129,6 +129,8 @@ static DECLARE_INTC_DESC(intc_desc_irq, "sh7760-irq", vectors_irq, groups,
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xfe600000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 52, 53, 55, 54 },
|
||||
};
|
||||
@@ -145,6 +147,8 @@ static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xfe610000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.irqs = { 72, 73, 75, 74 },
|
||||
};
|
||||
|
||||
@@ -159,6 +163,8 @@ static struct platform_device scif1_device = {
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xfe620000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 76, 77, 79, 78 },
|
||||
};
|
||||
@@ -174,6 +180,8 @@ static struct platform_device scif2_device = {
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xfe480000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCI,
|
||||
.irqs = { 80, 81, 82, 0 },
|
||||
};
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 80, 80, 80, 80 },
|
||||
};
|
||||
@@ -34,6 +36,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xffe10000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 81, 81, 81, 81 },
|
||||
};
|
||||
@@ -49,6 +53,8 @@ static struct platform_device scif1_device = {
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xffe20000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 82, 82, 82, 82 },
|
||||
};
|
||||
@@ -64,6 +70,8 @@ static struct platform_device scif2_device = {
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xffe30000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_CKE1,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 83, 83, 83, 83 },
|
||||
};
|
||||
@@ -360,6 +368,8 @@ void __init plat_early_device_setup(void)
|
||||
|
||||
enum {
|
||||
UNUSED = 0,
|
||||
ENABLED,
|
||||
DISABLED,
|
||||
|
||||
/* interrupt sources */
|
||||
IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7,
|
||||
@@ -375,15 +385,13 @@ enum {
|
||||
I2C0_ALI, I2C0_TACKI, I2C0_WAITI, I2C0_DTEI,
|
||||
I2C1_ALI, I2C1_TACKI, I2C1_WAITI, I2C1_DTEI,
|
||||
SIM_TEI, SIM_TXI, SIM_RXI, SIM_ERI,
|
||||
IRDA,
|
||||
SDHI0, SDHI1, SDHI2, SDHI3,
|
||||
CMT, TSIF, SIU,
|
||||
IRDA, SDHI, CMT, TSIF, SIU,
|
||||
TMU0, TMU1, TMU2,
|
||||
JPU, LCDC,
|
||||
|
||||
/* interrupt groups */
|
||||
|
||||
DMAC0123, VIOVOU, MMC, DMAC45, FLCTL, I2C0, I2C1, SIM, SDHI, USB,
|
||||
DMAC0123, VIOVOU, MMC, DMAC45, FLCTL, I2C0, I2C1, SIM, USB,
|
||||
};
|
||||
|
||||
static struct intc_vect vectors[] __initdata = {
|
||||
@@ -412,8 +420,8 @@ static struct intc_vect vectors[] __initdata = {
|
||||
INTC_VECT(FLCTL_FLTREQ0I, 0xdc0), INTC_VECT(FLCTL_FLTREQ1I, 0xde0),
|
||||
INTC_VECT(I2C0_ALI, 0xe00), INTC_VECT(I2C0_TACKI, 0xe20),
|
||||
INTC_VECT(I2C0_WAITI, 0xe40), INTC_VECT(I2C0_DTEI, 0xe60),
|
||||
INTC_VECT(SDHI0, 0xe80), INTC_VECT(SDHI1, 0xea0),
|
||||
INTC_VECT(SDHI2, 0xec0), INTC_VECT(SDHI3, 0xee0),
|
||||
INTC_VECT(SDHI, 0xe80), INTC_VECT(SDHI, 0xea0),
|
||||
INTC_VECT(SDHI, 0xec0), INTC_VECT(SDHI, 0xee0),
|
||||
INTC_VECT(CMT, 0xf00), INTC_VECT(TSIF, 0xf20),
|
||||
INTC_VECT(SIU, 0xf80),
|
||||
INTC_VECT(TMU0, 0x400), INTC_VECT(TMU1, 0x420),
|
||||
@@ -431,7 +439,6 @@ static struct intc_group groups[] __initdata = {
|
||||
INTC_GROUP(I2C0, I2C0_ALI, I2C0_TACKI, I2C0_WAITI, I2C0_DTEI),
|
||||
INTC_GROUP(I2C1, I2C1_ALI, I2C1_TACKI, I2C1_WAITI, I2C1_DTEI),
|
||||
INTC_GROUP(SIM, SIM_TEI, SIM_TXI, SIM_RXI, SIM_ERI),
|
||||
INTC_GROUP(SDHI, SDHI0, SDHI1, SDHI2, SDHI3),
|
||||
INTC_GROUP(USB, USBI0, USBI1),
|
||||
};
|
||||
|
||||
@@ -452,7 +459,7 @@ static struct intc_mask_reg mask_registers[] __initdata = {
|
||||
{ I2C0_DTEI, I2C0_WAITI, I2C0_TACKI, I2C0_ALI,
|
||||
FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLENDI, FLCTL_FLSTEI } },
|
||||
{ 0xa40800a0, 0xa40800e0, 8, /* IMR8 / IMCR8 */
|
||||
{ SDHI3, SDHI2, SDHI1, SDHI0, 0, 0, 0, SIU } },
|
||||
{ DISABLED, ENABLED, ENABLED, ENABLED, 0, 0, 0, SIU } },
|
||||
{ 0xa40800a4, 0xa40800e4, 8, /* IMR9 / IMCR9 */
|
||||
{ 0, 0, 0, CMT, 0, USBI1, USBI0 } },
|
||||
{ 0xa40800a8, 0xa40800e8, 8, /* IMR10 / IMCR10 */
|
||||
@@ -488,9 +495,13 @@ static struct intc_mask_reg ack_registers[] __initdata = {
|
||||
{ IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7 } },
|
||||
};
|
||||
|
||||
static DECLARE_INTC_DESC_ACK(intc_desc, "sh7343", vectors, groups,
|
||||
mask_registers, prio_registers, sense_registers,
|
||||
ack_registers);
|
||||
static struct intc_desc intc_desc __initdata = {
|
||||
.name = "sh7343",
|
||||
.force_enable = ENABLED,
|
||||
.force_disable = DISABLED,
|
||||
.hw = INTC_HW_DESC(vectors, groups, mask_registers,
|
||||
prio_registers, sense_registers, ack_registers),
|
||||
};
|
||||
|
||||
void __init plat_irq_setup(void)
|
||||
{
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 80, 80, 80, 80 },
|
||||
};
|
||||
@@ -319,6 +321,8 @@ void __init plat_early_device_setup(void)
|
||||
|
||||
enum {
|
||||
UNUSED=0,
|
||||
ENABLED,
|
||||
DISABLED,
|
||||
|
||||
/* interrupt sources */
|
||||
IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7,
|
||||
@@ -332,14 +336,13 @@ enum {
|
||||
DENC, MSIOF,
|
||||
FLCTL_FLSTEI, FLCTL_FLENDI, FLCTL_FLTREQ0I, FLCTL_FLTREQ1I,
|
||||
I2C_ALI, I2C_TACKI, I2C_WAITI, I2C_DTEI,
|
||||
SDHI0, SDHI1, SDHI2, SDHI3,
|
||||
CMT, TSIF, SIU,
|
||||
SDHI, CMT, TSIF, SIU,
|
||||
TMU0, TMU1, TMU2,
|
||||
VEU2, LCDC,
|
||||
|
||||
/* interrupt groups */
|
||||
|
||||
DMAC0123, VIOVOU, MMC, DMAC45, FLCTL, I2C, SDHI,
|
||||
DMAC0123, VIOVOU, MMC, DMAC45, FLCTL, I2C,
|
||||
};
|
||||
|
||||
static struct intc_vect vectors[] __initdata = {
|
||||
@@ -364,8 +367,8 @@ static struct intc_vect vectors[] __initdata = {
|
||||
INTC_VECT(FLCTL_FLTREQ0I, 0xdc0), INTC_VECT(FLCTL_FLTREQ1I, 0xde0),
|
||||
INTC_VECT(I2C_ALI, 0xe00), INTC_VECT(I2C_TACKI, 0xe20),
|
||||
INTC_VECT(I2C_WAITI, 0xe40), INTC_VECT(I2C_DTEI, 0xe60),
|
||||
INTC_VECT(SDHI0, 0xe80), INTC_VECT(SDHI1, 0xea0),
|
||||
INTC_VECT(SDHI2, 0xec0), INTC_VECT(SDHI3, 0xee0),
|
||||
INTC_VECT(SDHI, 0xe80), INTC_VECT(SDHI, 0xea0),
|
||||
INTC_VECT(SDHI, 0xec0), INTC_VECT(SDHI, 0xee0),
|
||||
INTC_VECT(CMT, 0xf00), INTC_VECT(TSIF, 0xf20),
|
||||
INTC_VECT(SIU, 0xf80),
|
||||
INTC_VECT(TMU0, 0x400), INTC_VECT(TMU1, 0x420),
|
||||
@@ -381,7 +384,6 @@ static struct intc_group groups[] __initdata = {
|
||||
INTC_GROUP(FLCTL, FLCTL_FLSTEI, FLCTL_FLENDI,
|
||||
FLCTL_FLTREQ0I, FLCTL_FLTREQ1I),
|
||||
INTC_GROUP(I2C, I2C_ALI, I2C_TACKI, I2C_WAITI, I2C_DTEI),
|
||||
INTC_GROUP(SDHI, SDHI0, SDHI1, SDHI2, SDHI3),
|
||||
};
|
||||
|
||||
static struct intc_mask_reg mask_registers[] __initdata = {
|
||||
@@ -403,7 +405,7 @@ static struct intc_mask_reg mask_registers[] __initdata = {
|
||||
{ I2C_DTEI, I2C_WAITI, I2C_TACKI, I2C_ALI,
|
||||
FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLENDI, FLCTL_FLSTEI } },
|
||||
{ 0xa40800a0, 0xa40800e0, 8, /* IMR8 / IMCR8 */
|
||||
{ SDHI3, SDHI2, SDHI1, SDHI0, 0, 0, 0, SIU } },
|
||||
{ DISABLED, ENABLED, ENABLED, ENABLED, 0, 0, 0, SIU } },
|
||||
{ 0xa40800a4, 0xa40800e4, 8, /* IMR9 / IMCR9 */
|
||||
{ 0, 0, 0, CMT, 0, USB, } },
|
||||
{ 0xa40800a8, 0xa40800e8, 8, /* IMR10 / IMCR10 */
|
||||
@@ -441,9 +443,13 @@ static struct intc_mask_reg ack_registers[] __initdata = {
|
||||
{ IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7 } },
|
||||
};
|
||||
|
||||
static DECLARE_INTC_DESC_ACK(intc_desc, "sh7366", vectors, groups,
|
||||
mask_registers, prio_registers, sense_registers,
|
||||
ack_registers);
|
||||
static struct intc_desc intc_desc __initdata = {
|
||||
.name = "sh7366",
|
||||
.force_enable = ENABLED,
|
||||
.force_disable = DISABLED,
|
||||
.hw = INTC_HW_DESC(vectors, groups, mask_registers,
|
||||
prio_registers, sense_registers, ack_registers),
|
||||
};
|
||||
|
||||
void __init plat_irq_setup(void)
|
||||
{
|
||||
|
||||
@@ -181,6 +181,8 @@ struct platform_device dma_device = {
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 80, 80, 80, 80 },
|
||||
};
|
||||
@@ -196,6 +198,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xffe10000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 81, 81, 81, 81 },
|
||||
};
|
||||
@@ -211,6 +215,8 @@ static struct platform_device scif1_device = {
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xffe20000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 82, 82, 82, 82 },
|
||||
};
|
||||
@@ -699,7 +705,7 @@ static struct intc_mask_reg mask_registers[] __initdata = {
|
||||
{ I2C_DTEI, I2C_WAITI, I2C_TACKI, I2C_ALI,
|
||||
FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLENDI, FLCTL_FLSTEI } },
|
||||
{ 0xa40800a0, 0xa40800e0, 8, /* IMR8 / IMCR8 */
|
||||
{ DISABLED, DISABLED, ENABLED, ENABLED, 0, 0, TWODG, SIU } },
|
||||
{ DISABLED, ENABLED, ENABLED, ENABLED, 0, 0, TWODG, SIU } },
|
||||
{ 0xa40800a4, 0xa40800e4, 8, /* IMR9 / IMCR9 */
|
||||
{ 0, 0, 0, CMT, 0, USB_USBI1, USB_USBI0, } },
|
||||
{ 0xa40800a8, 0xa40800e8, 8, /* IMR10 / IMCR10 */
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 80, 80, 80, 80 },
|
||||
};
|
||||
@@ -39,6 +41,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xffe10000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 81, 81, 81, 81 },
|
||||
};
|
||||
@@ -54,6 +58,8 @@ static struct platform_device scif1_device = {
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xffe20000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 82, 82, 82, 82 },
|
||||
};
|
||||
@@ -69,6 +75,8 @@ static struct platform_device scif2_device = {
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xa4e30000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_3,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { 56, 56, 56, 56 },
|
||||
};
|
||||
@@ -84,6 +92,8 @@ static struct platform_device scif3_device = {
|
||||
static struct plat_sci_port scif4_platform_data = {
|
||||
.mapbase = 0xa4e40000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_3,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { 88, 88, 88, 88 },
|
||||
};
|
||||
@@ -99,6 +109,8 @@ static struct platform_device scif4_device = {
|
||||
static struct plat_sci_port scif5_platform_data = {
|
||||
.mapbase = 0xa4e50000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_3,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { 109, 109, 109, 109 },
|
||||
};
|
||||
@@ -719,7 +731,7 @@ static struct intc_group groups[] __initdata = {
|
||||
static struct intc_mask_reg mask_registers[] __initdata = {
|
||||
{ 0xa4080080, 0xa40800c0, 8, /* IMR0 / IMCR0 */
|
||||
{ 0, TMU1_TUNI2, TMU1_TUNI1, TMU1_TUNI0,
|
||||
0, DISABLED, ENABLED, ENABLED } },
|
||||
0, ENABLED, ENABLED, ENABLED } },
|
||||
{ 0xa4080084, 0xa40800c4, 8, /* IMR1 / IMCR1 */
|
||||
{ VIO_VOUI, VIO_VEU2HI,VIO_BEUI,VIO_CEUI,DMAC0A_DEI3,DMAC0A_DEI2,DMAC0A_DEI1,DMAC0A_DEI0 } },
|
||||
{ 0xa4080088, 0xa40800c8, 8, /* IMR2 / IMCR2 */
|
||||
@@ -736,7 +748,7 @@ static struct intc_mask_reg mask_registers[] __initdata = {
|
||||
{ I2C_DTEI, I2C_WAITI, I2C_TACKI, I2C_ALI,
|
||||
FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLTENDI, FLCTL_FLSTEI } },
|
||||
{ 0xa40800a0, 0xa40800e0, 8, /* IMR8 / IMCR8 */
|
||||
{ 0, DISABLED, ENABLED, ENABLED,
|
||||
{ 0, ENABLED, ENABLED, ENABLED,
|
||||
0, 0, SCIFA_SCIFA2, SIU_SIUI } },
|
||||
{ 0xa40800a4, 0xa40800e4, 8, /* IMR9 / IMCR9 */
|
||||
{ 0, 0, 0, CMT_CMTI, 0, 0, USB_USI0,0 } },
|
||||
|
||||
@@ -257,6 +257,8 @@ static struct platform_device dma1_device = {
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 80, 80, 80, 80 },
|
||||
};
|
||||
@@ -272,6 +274,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xffe10000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 81, 81, 81, 81 },
|
||||
};
|
||||
@@ -287,6 +291,8 @@ static struct platform_device scif1_device = {
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xffe20000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 82, 82, 82, 82 },
|
||||
};
|
||||
@@ -302,6 +308,8 @@ static struct platform_device scif2_device = {
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xa4e30000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_3,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { 56, 56, 56, 56 },
|
||||
};
|
||||
@@ -317,6 +325,8 @@ static struct platform_device scif3_device = {
|
||||
static struct plat_sci_port scif4_platform_data = {
|
||||
.mapbase = 0xa4e40000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_3,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { 88, 88, 88, 88 },
|
||||
};
|
||||
@@ -332,6 +342,8 @@ static struct platform_device scif4_device = {
|
||||
static struct plat_sci_port scif5_platform_data = {
|
||||
.mapbase = 0xa4e50000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_3,
|
||||
.type = PORT_SCIFA,
|
||||
.irqs = { 109, 109, 109, 109 },
|
||||
};
|
||||
@@ -1144,7 +1156,7 @@ static struct intc_group groups[] __initdata = {
|
||||
static struct intc_mask_reg mask_registers[] __initdata = {
|
||||
{ 0xa4080080, 0xa40800c0, 8, /* IMR0 / IMCR0 */
|
||||
{ 0, TMU1_TUNI2, TMU1_TUNI1, TMU1_TUNI0,
|
||||
0, DISABLED, ENABLED, ENABLED } },
|
||||
0, ENABLED, ENABLED, ENABLED } },
|
||||
{ 0xa4080084, 0xa40800c4, 8, /* IMR1 / IMCR1 */
|
||||
{ VIO_VOU, VIO_VEU1, VIO_BEU0, VIO_CEU0,
|
||||
DMAC0A_DEI3, DMAC0A_DEI2, DMAC0A_DEI1, DMAC0A_DEI0 } },
|
||||
@@ -1166,7 +1178,7 @@ static struct intc_mask_reg mask_registers[] __initdata = {
|
||||
{ I2C0_DTEI, I2C0_WAITI, I2C0_TACKI, I2C0_ALI,
|
||||
I2C1_DTEI, I2C1_WAITI, I2C1_TACKI, I2C1_ALI } },
|
||||
{ 0xa40800a0, 0xa40800e0, 8, /* IMR8 / IMCR8 */
|
||||
{ DISABLED, DISABLED, ENABLED, ENABLED,
|
||||
{ DISABLED, ENABLED, ENABLED, ENABLED,
|
||||
0, 0, SCIFA5, FSI } },
|
||||
{ 0xa40800a4, 0xa40800e4, 8, /* IMR9 / IMCR9 */
|
||||
{ 0, 0, 0, CMT, 0, USB1, USB0, 0 } },
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xfe4b0000, /* SCIF2 */
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 40, 40, 40 },
|
||||
};
|
||||
@@ -35,6 +37,8 @@ static struct platform_device scif2_device = {
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xfe4c0000, /* SCIF3 */
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 76, 76, 76, 76 },
|
||||
};
|
||||
@@ -50,6 +54,8 @@ static struct platform_device scif3_device = {
|
||||
static struct plat_sci_port scif4_platform_data = {
|
||||
.mapbase = 0xfe4d0000, /* SCIF4 */
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 104, 104, 104, 104 },
|
||||
};
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 40, 40, 40 },
|
||||
};
|
||||
@@ -34,6 +36,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xffe08000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 76, 76, 76, 76 },
|
||||
};
|
||||
@@ -49,6 +53,8 @@ static struct platform_device scif1_device = {
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xffe10000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 104, 104, 104, 104 },
|
||||
};
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xff923000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 61, 61, 61, 61 },
|
||||
};
|
||||
@@ -32,6 +34,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xff924000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 62, 62, 62, 62 },
|
||||
};
|
||||
@@ -47,6 +51,8 @@ static struct platform_device scif1_device = {
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xff925000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 63, 63, 63, 63 },
|
||||
};
|
||||
@@ -62,6 +68,8 @@ static struct platform_device scif2_device = {
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xff926000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 64, 64, 64, 64 },
|
||||
};
|
||||
@@ -77,6 +85,8 @@ static struct platform_device scif3_device = {
|
||||
static struct plat_sci_port scif4_platform_data = {
|
||||
.mapbase = 0xff927000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 65, 65, 65, 65 },
|
||||
};
|
||||
@@ -92,6 +102,8 @@ static struct platform_device scif4_device = {
|
||||
static struct plat_sci_port scif5_platform_data = {
|
||||
.mapbase = 0xff928000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 66, 66, 66, 66 },
|
||||
};
|
||||
@@ -107,6 +119,8 @@ static struct platform_device scif5_device = {
|
||||
static struct plat_sci_port scif6_platform_data = {
|
||||
.mapbase = 0xff929000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 67, 67, 67, 67 },
|
||||
};
|
||||
@@ -122,6 +136,8 @@ static struct platform_device scif6_device = {
|
||||
static struct plat_sci_port scif7_platform_data = {
|
||||
.mapbase = 0xff92a000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 68, 68, 68, 68 },
|
||||
};
|
||||
@@ -137,6 +153,8 @@ static struct platform_device scif7_device = {
|
||||
static struct plat_sci_port scif8_platform_data = {
|
||||
.mapbase = 0xff92b000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 69, 69, 69, 69 },
|
||||
};
|
||||
@@ -152,6 +170,8 @@ static struct platform_device scif8_device = {
|
||||
static struct plat_sci_port scif9_platform_data = {
|
||||
.mapbase = 0xff92c000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_TOIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 70, 70, 70, 70 },
|
||||
};
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
|
||||
.scbrr_algo_id = SCBRR_ALGO_1,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 40, 40, 40 },
|
||||
};
|
||||
@@ -35,6 +37,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xffe10000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
|
||||
.scbrr_algo_id = SCBRR_ALGO_1,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 76, 76, 76, 76 },
|
||||
};
|
||||
@@ -379,6 +383,7 @@ 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,
|
||||
@@ -392,6 +397,13 @@ static struct platform_device *sh7780_early_devices[] __initdata = {
|
||||
|
||||
void __init plat_early_device_setup(void)
|
||||
{
|
||||
if (mach_is_sh2007()) {
|
||||
scif0_platform_data.scscr &= ~SCSCR_CKE1;
|
||||
scif0_platform_data.scbrr_algo_id = SCBRR_ALGO_2;
|
||||
scif1_platform_data.scscr &= ~SCSCR_CKE1;
|
||||
scif1_platform_data.scbrr_algo_id = SCBRR_ALGO_2;
|
||||
}
|
||||
|
||||
early_platform_add_devices(sh7780_early_devices,
|
||||
ARRAY_SIZE(sh7780_early_devices));
|
||||
}
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffea0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
|
||||
.scbrr_algo_id = SCBRR_ALGO_1,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 40, 40, 40 },
|
||||
};
|
||||
@@ -38,6 +40,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xffeb0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
|
||||
.scbrr_algo_id = SCBRR_ALGO_1,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 44, 44, 44, 44 },
|
||||
};
|
||||
@@ -53,6 +57,8 @@ static struct platform_device scif1_device = {
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xffec0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
|
||||
.scbrr_algo_id = SCBRR_ALGO_1,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 60, 60, 60, 60 },
|
||||
};
|
||||
@@ -68,6 +74,8 @@ static struct platform_device scif2_device = {
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xffed0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
|
||||
.scbrr_algo_id = SCBRR_ALGO_1,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 61, 61, 61, 61 },
|
||||
};
|
||||
@@ -83,6 +91,8 @@ static struct platform_device scif3_device = {
|
||||
static struct plat_sci_port scif4_platform_data = {
|
||||
.mapbase = 0xffee0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
|
||||
.scbrr_algo_id = SCBRR_ALGO_1,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 62, 62, 62, 62 },
|
||||
};
|
||||
@@ -98,6 +108,8 @@ static struct platform_device scif4_device = {
|
||||
static struct plat_sci_port scif5_platform_data = {
|
||||
.mapbase = 0xffef0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
|
||||
.scbrr_algo_id = SCBRR_ALGO_1,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 63, 63, 63, 63 },
|
||||
};
|
||||
|
||||
@@ -29,6 +29,8 @@
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffea0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
|
||||
.scbrr_algo_id = SCBRR_ALGO_1,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 41, 43, 42 },
|
||||
};
|
||||
@@ -47,6 +49,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xffeb0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
|
||||
.scbrr_algo_id = SCBRR_ALGO_1,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 44, 44, 44, 44 },
|
||||
};
|
||||
@@ -62,6 +66,8 @@ static struct platform_device scif1_device = {
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xffec0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
|
||||
.scbrr_algo_id = SCBRR_ALGO_1,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 50, 50, 50, 50 },
|
||||
};
|
||||
@@ -77,6 +83,8 @@ static struct platform_device scif2_device = {
|
||||
static struct plat_sci_port scif3_platform_data = {
|
||||
.mapbase = 0xffed0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
|
||||
.scbrr_algo_id = SCBRR_ALGO_1,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 51, 51, 51, 51 },
|
||||
};
|
||||
@@ -92,6 +100,8 @@ static struct platform_device scif3_device = {
|
||||
static struct plat_sci_port scif4_platform_data = {
|
||||
.mapbase = 0xffee0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
|
||||
.scbrr_algo_id = SCBRR_ALGO_1,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 52, 52, 52, 52 },
|
||||
};
|
||||
@@ -107,6 +117,8 @@ static struct platform_device scif4_device = {
|
||||
static struct plat_sci_port scif5_platform_data = {
|
||||
.mapbase = 0xffef0000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE | SCSCR_CKE1,
|
||||
.scbrr_algo_id = SCBRR_ALGO_1,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 53, 53, 53, 53 },
|
||||
};
|
||||
|
||||
@@ -29,6 +29,8 @@
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = 0xffc30000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 40, 41, 43, 42 },
|
||||
};
|
||||
@@ -44,6 +46,8 @@ static struct platform_device scif0_device = {
|
||||
static struct plat_sci_port scif1_platform_data = {
|
||||
.mapbase = 0xffc40000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 44, 45, 47, 46 },
|
||||
};
|
||||
@@ -59,6 +63,8 @@ static struct platform_device scif1_device = {
|
||||
static struct plat_sci_port scif2_platform_data = {
|
||||
.mapbase = 0xffc60000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 52, 53, 55, 54 },
|
||||
};
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
static struct plat_sci_port scif0_platform_data = {
|
||||
.mapbase = PHYS_PERIPHERAL_BLOCK + 0x01030000,
|
||||
.flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP,
|
||||
.scscr = SCSCR_RE | SCSCR_TE | SCSCR_REIE,
|
||||
.scbrr_algo_id = SCBRR_ALGO_2,
|
||||
.type = PORT_SCIF,
|
||||
.irqs = { 39, 40, 42, 0 },
|
||||
};
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* linux/arch/sh/mm/init.c
|
||||
*
|
||||
* Copyright (C) 1999 Niibe Yutaka
|
||||
* Copyright (C) 2002 - 2010 Paul Mundt
|
||||
* Copyright (C) 2002 - 2011 Paul Mundt
|
||||
*
|
||||
* Based on linux/arch/i386/mm/init.c:
|
||||
* Copyright (C) 1995 Linus Torvalds
|
||||
@@ -325,11 +325,17 @@ void __init paging_init(void)
|
||||
int nid;
|
||||
|
||||
memblock_init();
|
||||
|
||||
sh_mv.mv_mem_init();
|
||||
|
||||
early_reserve_mem();
|
||||
|
||||
/*
|
||||
* Once the early reservations are out of the way, give the
|
||||
* platforms a chance to kick out some memory.
|
||||
*/
|
||||
if (sh_mv.mv_mem_reserve)
|
||||
sh_mv.mv_mem_reserve();
|
||||
|
||||
memblock_enforce_memory_limit(memory_limit);
|
||||
memblock_analyze();
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ SE SH_SOLUTION_ENGINE
|
||||
HIGHLANDER SH_HIGHLANDER
|
||||
RTS7751R2D SH_RTS7751R2D
|
||||
RSK SH_RSK
|
||||
ALPHA_BOARD SH_ALPHA_BOARD
|
||||
|
||||
#
|
||||
# List of companion chips / MFDs.
|
||||
@@ -61,3 +62,5 @@ ESPT SH_ESPT
|
||||
POLARIS SH_POLARIS
|
||||
KFR2R09 SH_KFR2R09
|
||||
ECOVEC SH_ECOVEC
|
||||
APSH4A3A SH_APSH4A3A
|
||||
APSH4AD0A SH_APSH4AD0A
|
||||
|
||||
Reference in New Issue
Block a user