All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 1/4] Add the directory mach-sh2007 for SH-2007 board support
@ 2010-06-11  4:51 Hitoshi Mitake
  2010-06-17  9:14 ` [PATCH v3 1/4] Add the directory mach-sh2007 for SH-2007 board Hitoshi Mitake
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Hitoshi Mitake @ 2010-06-11  4:51 UTC (permalink / raw)
  To: linux-sh

This patch adds directory for SH-2007 support and modify tools/mach-types.
mach-sh2007/setup.c ... Setup platform devices and provide machine vector.
tools/mach-types ... Added entry of SH2007 for mach_is_sh2007()

CAUTION: IDE support is not tested yet.
	 I'll be able to obtain cable for 2.5 inch HDD,
	 then I'll test this device.

v2:
 * Pending onboardio.c, for dip switch reading and LED manipulating.
   Because these deviced should be treated in more unified way
   such as LED device class. Creating /dev/dipsw is dirty.
   But the LED device is not physical device, it exists logicaly.
   I'm pending my decision about treating dip switch and logical LED temporary.
 * Cleaning. setup.c of v1 did lots of non board specific
   (processor specific) things. According to Paul's advice, I reduced them.
   And sh2007_init_irq() uses interrupt setting of 7780 specific.

v3:
 * According to Magnus's advice, removed meaningless function release_platform_dev()
   and #if 0 ... #endif for IDE support.
 * This patch contains Nobuhiro-san's one to generate mach_is_sh2007() in include/generated/machtypes.h

Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Cc: Magnus Damm <magnus.damm@gmail.com>
Signed-off-by: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
---
 arch/sh/boards/mach-sh2007/Makefile |    1 +
 arch/sh/boards/mach-sh2007/setup.c  |  302 +++++++++++++++++++++++++++++++++++
 arch/sh/tools/mach-types            |    1 +
 3 files changed, 304 insertions(+), 0 deletions(-)
 create mode 100644 arch/sh/boards/mach-sh2007/Makefile
 create mode 100644 arch/sh/boards/mach-sh2007/setup.c

diff --git a/arch/sh/boards/mach-sh2007/Makefile b/arch/sh/boards/mach-sh2007/Makefile
new file mode 100644
index 0000000..2b9dba4
--- /dev/null
+++ b/arch/sh/boards/mach-sh2007/Makefile
@@ -0,0 +1 @@
+obj-y += setup.o
diff --git a/arch/sh/boards/mach-sh2007/setup.c b/arch/sh/boards/mach-sh2007/setup.c
new file mode 100644
index 0000000..e28a401
--- /dev/null
+++ b/arch/sh/boards/mach-sh2007/setup.c
@@ -0,0 +1,302 @@
+/*
+ * linux/arch/sh/kernel/setup_sh2007.c
+ *
+ * Copyright (C) 2003,2004 SUGIOKA Toshinobu
+ * Ported to Linux 2.6.34 by Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
+ *
+ */
+
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/irq.h>
+#include <linux/ide.h>
+#include <linux/mm.h>
+#include <linux/dma-mapping.h>
+#include <linux/vmalloc.h>
+#include <linux/delay.h>
+#include <linux/pci.h>
+#include <linux/smsc911x.h>
+#include <linux/platform_device.h>
+#include <linux/ata_platform.h>
+
+#include <asm/io.h>
+#include <asm/machvec.h>
+#include <asm/rtc.h>
+#include <asm/cacheflush.h>
+#include <asm/addrspace.h>
+
+#include "../../drivers/pci/pci-sh7780.h"
+
+#define INTEVT		0xff000028
+#define CPUOPM		0xff2f0000
+#define IRMCR		0xff000078
+#define CS5BCR		0xff802050
+#define CS5WCR		0xff802058
+#define CS5PCR		0xff802070
+
+#define BUS_SZ8		1
+#define BUS_SZ16	2
+#define BUS_SZ32	3
+
+#define PCMCIA_IODYN	1
+#define PCMCIA_ATA	0
+#define PCMCIA_IO8	2
+#define PCMCIA_IO16	3
+#define PCMCIA_COMM8	4
+#define PCMCIA_COMM16	5
+#define PCMCIA_ATTR8	6
+#define PCMCIA_ATTR16	7
+
+#define TYPE_SRAM	0
+#define TYPE_PCMCIA	4
+
+/* write-read/write-write delay (0-7:0,1,2,3,4,5,6,7) */
+#define IWW5		0
+#define IWW6		3
+/* different area, read-write delay (0-7:0,1,2,3,4,5,6,7) */
+#define IWRWD5		2
+#define IWRWD6		2
+/* same area, read-write delay (0-7:0,1,2,3,4,5,6,7) */
+#define IWRWS5		2
+#define IWRWS6		2
+/* different area, read-read delay (0-7:0,1,2,3,4,5,6,7) */
+#define IWRRD5		2
+#define IWRRD6		2
+/* same area, read-read delay (0-7:0,1,2,3,4,5,6,7) */
+#define IWRRS5		0
+#define IWRRS6		2
+/* burst count (0-3:4,8,16,32) */
+#define BST5		0
+#define BST6		0
+/* bus size */
+#define SZ5		BUS_SZ16
+#define SZ6		BUS_SZ16
+/* RD hold for SRAM (0-1:0,1) */
+#define RDSPL5		0
+#define RDSPL6		0
+/* Burst pitch (0-7:0,1,2,3,4,5,6,7) */
+#define BW5		0
+#define BW6		0
+/* Multiplex (0-1:0,1) */
+#define MPX5		0
+#define MPX6		0
+/* device type */
+#define TYPE5		TYPE_PCMCIA
+#define TYPE6		TYPE_PCMCIA
+/* address setup before assert CSn for SRAM (0-7:0,1,2,3,4,5,6,7) */
+#define ADS5		0
+#define ADS6		0
+/* address hold after negate CSn for SRAM (0-7:0,1,2,3,4,5,6,7) */
+#define ADH5		0
+#define ADH6		0
+/* CSn assert to RD assert delay for SRAM (0-7:0,1,2,3,4,5,6,7) */
+#define RDS5		0
+#define RDS6		0
+/* RD negate to CSn negate delay for SRAM (0-7:0,1,2,3,4,5,6,7) */
+#define RDH5		0
+#define RDH6		0
+/* CSn assert to WE assert delay for SRAM (0-7:0,1,2,3,4,5,6,7) */
+#define WTS5		0
+#define WTS6		0
+/* WE negate to CSn negate delay for SRAM (0-7:0,1,2,3,4,5,6,7) */
+#define WTH5		0
+#define WTH6		0
+/* BS hold (0-1:1,2) */
+#define BSH5		0
+#define BSH6		0
+/* wait cycle (0-15:0,1,2,3,4,5,6,7,8,9,11,13,15,17,21,25) */
+#define IW5		6	/* 60ns PIO mode 4 */
+#define IW6		15	/* 250ns */
+
+#define SAA5		PCMCIA_IODYN	/* IDE area b4000000-b5ffffff */
+#define SAB5		PCMCIA_IODYN	/* CF  area b6000000-b7ffffff */
+#define PCWA5		0	/* additional wait A (0-3:0,15,30,50) */
+#define PCWB5		0	/* additional wait B (0-3:0,15,30,50) */
+/* wait B (0-15:0,1,2,3,4,5,6,7,8,9,11,13,15,17,21,25) */
+#define PCIW5		12
+/* Address->OE/WE assert delay A (0-7:0,1,2,3,6,9,12,15) */
+#define TEDA5		2
+/* Address->OE/WE assert delay B (0-7:0,1,2,3,6,9,12,15) */
+#define TEDB5		4
+/* OE/WE negate->Address delay A (0-7:0,1,2,3,6,9,12,15) */
+#define TEHA5		2
+/* OE/WE negate->Address delay B (0-7:0,1,2,3,6,9,12,15) */
+#define TEHB5		3
+
+#define CS5BCR_D	((IWW5<<28)|(IWRWD5<<24)|(IWRWS5<<20)|		\
+			(IWRRD5<<16)|(IWRRS5<<12)|(BST5<<10)|		\
+			(SZ5<<8)|(RDSPL5<<7)|(BW5<<4)|(MPX5<<3)|TYPE5)
+#define CS5WCR_D	((ADS5<<28)|(ADH5<<24)|(RDS5<<20)|	\
+			(RDH5<<16)|(WTS5<<12)|(WTH5<<8)|(BSH5<<4)|IW5)
+#define CS5PCR_D	((SAA5<<28)|(SAB5<<24)|(PCWA5<<22)|		\
+			(PCWB5<<20)|(PCIW5<<16)|(TEDA5<<12)|		\
+			(TEDB5<<8)|(TEHA5<<4)|TEHB5)
+
+#define SMC0_BASE       0xb0800000      /* eth0 */
+#define SMC1_BASE       0xb0900000      /* eth1 */
+#define CF_BASE         0xb6100000      /* Compact Flash (I/O area) */
+#define IDE_BASE        0xb4000000      /* IDE */
+#define PC104_IO_BASE   0xb8000000
+#define PC104_MEM_BASE  0xba000000
+#define SMC_IO_SIZE     0x100
+
+#define CF_OFFSET       0x1f0
+#define IDE_OFFSET      0x170
+
+struct smsc911x_platform_config smc911x_info = {
+	.flags		= SMSC911X_USE_32BIT,
+	.irq_polarity	= SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
+	.irq_type	= SMSC911X_IRQ_TYPE_PUSH_PULL,
+};
+
+static struct resource smsc9118_0_resources[] = {
+	[0] = {
+		.start	= SMC0_BASE,
+		.end	= SMC0_BASE + 0xff,
+		.flags	= IORESOURCE_MEM,
+	},
+	[1] = {
+		.start	= evt2irq(0x240),
+		.end	= evt2irq(0x240),
+		.flags	= IORESOURCE_IRQ,
+	}
+};
+
+static struct resource smsc9118_1_resources[] = {
+	[0] = {
+		.start	= SMC1_BASE,
+		.end	= SMC1_BASE + 0xff,
+		.flags	= IORESOURCE_MEM,
+	},
+	[1] = {
+		.start	= evt2irq(0x280),
+		.end	= evt2irq(0x280),
+		.flags	= IORESOURCE_IRQ,
+	}
+};
+
+static struct platform_device smsc9118_0_device = {
+	.name		= "smsc911x",
+	.id		= 0,
+	.num_resources	= ARRAY_SIZE(smsc9118_0_resources),
+	.resource	= smsc9118_0_resources,
+	.dev = {
+		.platform_data = &smc911x_info,
+	},
+};
+
+static struct platform_device smsc9118_1_device = {
+	.name		= "smsc911x",
+	.id		= 1,
+	.num_resources	= ARRAY_SIZE(smsc9118_1_resources),
+	.resource	= smsc9118_1_resources,
+	.dev = {
+		.platform_data = &smc911x_info,
+	},
+};
+
+static struct resource cf_resources[] = {
+	[0] = {
+		.start	= CF_BASE + CF_OFFSET,
+		.end	= CF_BASE + CF_OFFSET + 0x0f,
+		.flags	= IORESOURCE_MEM,
+	},
+	[1] = {
+		.start	= CF_BASE + CF_OFFSET + 0x206,
+		.end	= CF_BASE + CF_OFFSET + 0x20f,
+		.flags	= IORESOURCE_MEM,
+	},
+	[2] = {
+		.start	= evt2irq(0x2c0),
+		.end	= evt2irq(0x2c0),
+		.flags	= IORESOURCE_IRQ,
+	},
+};
+
+static struct pata_platform_info cf_info = {
+};
+
+static struct platform_device cf_device  = {
+	.name		= "pata_platform",
+	.id		= 0,
+	.num_resources	= ARRAY_SIZE(cf_resources),
+	.resource	= cf_resources,
+	.dev = {
+		.platform_data = &cf_info,
+	},
+};
+
+static struct resource ide_resources[] = {
+	[0] = {
+		.start	= IDE_BASE + IDE_OFFSET,
+		.end	= IDE_BASE + IDE_OFFSET + 0x0f,
+		.flags	= IORESOURCE_MEM,
+	},
+	[1] = {
+		.start	= IDE_BASE + IDE_OFFSET + 0x206,
+		.end	= IDE_BASE + IDE_OFFSET + 0x20f,
+		.flags	= IORESOURCE_MEM,
+	},
+	[2] = {
+		.start	= evt2irq(0x300),
+		.end	= evt2irq(0x300),
+		.flags	= IORESOURCE_IRQ,
+	},
+};
+
+
+static struct pata_platform_info ide_info = {
+};
+
+static struct platform_device ide_device  = {
+	.name		= "pata_platform",
+	.id		= 1,
+	.num_resources	= ARRAY_SIZE(ide_resources),
+	.resource	= ide_resources,
+	.dev = {
+		.platform_data = &ide_info,
+	},
+};
+
+static struct platform_device *sh2007_devices[] __initdata = {
+	&smsc9118_0_device,
+	&smsc9118_1_device,
+	&cf_device,
+	&ide_device,
+};
+
+static int __init sh2007_io_init(void)
+{
+	platform_add_devices(sh2007_devices, ARRAY_SIZE(sh2007_devices));
+	return 0;
+}
+subsys_initcall(sh2007_io_init);
+
+static void __init sh2007_init_irq(void)
+{
+	plat_irq_setup_pins(IRQ_MODE_IRQ);
+}
+
+/*
+ * Initialize the board
+ */
+static void __init sh2007_setup(char **cmdline_p)
+{
+	printk(KERN_INFO "SH-2007 Setup...");
+
+	/* setup wait control registers for area 5 */
+	__raw_writel(CS5BCR_D, CS5BCR);
+	__raw_writel(CS5WCR_D, CS5WCR);
+	__raw_writel(CS5PCR_D, CS5PCR);
+
+	printk(KERN_INFO " done.\n");
+}
+
+/*
+ * The Machine Vector
+ */
+struct sh_machine_vector mv_sh2007 __initmv = {
+	.mv_setup		= sh2007_setup,
+	.mv_name		= "sh2007",
+	.mv_init_irq		= sh2007_init_irq,
+};
diff --git a/arch/sh/tools/mach-types b/arch/sh/tools/mach-types
index b25aa55..9504d74 100644
--- a/arch/sh/tools/mach-types
+++ b/arch/sh/tools/mach-types
@@ -60,3 +60,4 @@ ESPT			SH_ESPT
 POLARIS			SH_POLARIS
 KFR2R09			SH_KFR2R09
 ECOVEC			SH_ECOVEC
+SH2007			SH_SH2007
-- 
1.6.5.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v3 1/4] Add the directory mach-sh2007 for SH-2007 board
  2010-06-11  4:51 [PATCH v3 1/4] Add the directory mach-sh2007 for SH-2007 board support Hitoshi Mitake
@ 2010-06-17  9:14 ` Hitoshi Mitake
  2010-06-17 23:59 ` Magnus Damm
  2010-06-18 10:57 ` Hitoshi Mitake
  2 siblings, 0 replies; 4+ messages in thread
From: Hitoshi Mitake @ 2010-06-17  9:14 UTC (permalink / raw)
  To: linux-sh

On 06/11/10 13:51, Hitoshi Mitake wrote:
 > This patch adds directory for SH-2007 support and modify 
tools/mach-types.
 > mach-sh2007/setup.c ... Setup platform devices and provide machine 
vector.
 > tools/mach-types ... Added entry of SH2007 for mach_is_sh2007()
 >
 > CAUTION: IDE support is not tested yet.
 > 	 I'll be able to obtain cable for 2.5 inch HDD,
 > 	 then I'll test this device.

Sadly, my plan to obtain the cable for 2.5 inch HDD is failed.
I cannot predict when I can test IDE support of SH-2007.

Should I remove IDE support?

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v3 1/4] Add the directory mach-sh2007 for SH-2007 board
  2010-06-11  4:51 [PATCH v3 1/4] Add the directory mach-sh2007 for SH-2007 board support Hitoshi Mitake
  2010-06-17  9:14 ` [PATCH v3 1/4] Add the directory mach-sh2007 for SH-2007 board Hitoshi Mitake
@ 2010-06-17 23:59 ` Magnus Damm
  2010-06-18 10:57 ` Hitoshi Mitake
  2 siblings, 0 replies; 4+ messages in thread
From: Magnus Damm @ 2010-06-17 23:59 UTC (permalink / raw)
  To: linux-sh

On Thu, Jun 17, 2010 at 6:14 PM, Hitoshi Mitake
<mitake@dcl.info.waseda.ac.jp> wrote:
> On 06/11/10 13:51, Hitoshi Mitake wrote:
>> This patch adds directory for SH-2007 support and modify tools/mach-types.
>> mach-sh2007/setup.c ... Setup platform devices and provide machine vector.
>> tools/mach-types ... Added entry of SH2007 for mach_is_sh2007()
>>
>> CAUTION: IDE support is not tested yet.
>>        I'll be able to obtain cable for 2.5 inch HDD,
>>        then I'll test this device.
>
> Sadly, my plan to obtain the cable for 2.5 inch HDD is failed.
> I cannot predict when I can test IDE support of SH-2007.
>
> Should I remove IDE support?

That's what I would do. But it's up to you!

/ magnus

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v3 1/4] Add the directory mach-sh2007 for SH-2007 board
  2010-06-11  4:51 [PATCH v3 1/4] Add the directory mach-sh2007 for SH-2007 board support Hitoshi Mitake
  2010-06-17  9:14 ` [PATCH v3 1/4] Add the directory mach-sh2007 for SH-2007 board Hitoshi Mitake
  2010-06-17 23:59 ` Magnus Damm
@ 2010-06-18 10:57 ` Hitoshi Mitake
  2 siblings, 0 replies; 4+ messages in thread
From: Hitoshi Mitake @ 2010-06-18 10:57 UTC (permalink / raw)
  To: linux-sh

On 06/18/10 08:59, Magnus Damm wrote:
 > On Thu, Jun 17, 2010 at 6:14 PM, Hitoshi Mitake
 > <mitake@dcl.info.waseda.ac.jp>  wrote:
 >> On 06/11/10 13:51, Hitoshi Mitake wrote:
 >>> This patch adds directory for SH-2007 support and modify 
tools/mach-types.
 >>> mach-sh2007/setup.c ... Setup platform devices and provide machine 
vector.
 >>> tools/mach-types ... Added entry of SH2007 for mach_is_sh2007()
 >>>
 >>> CAUTION: IDE support is not tested yet.
 >>>         I'll be able to obtain cable for 2.5 inch HDD,
 >>>         then I'll test this device.
 >>
 >> Sadly, my plan to obtain the cable for 2.5 inch HDD is failed.
 >> I cannot predict when I can test IDE support of SH-2007.
 >>
 >> Should I remove IDE support?
 >
 > That's what I would do. But it's up to you!
 >
 > / magnus
 >

OK, I'll disable it.
I have to seek another owner of IDE cable for 2.5 inch...

Thanks,
	Hitoshi

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-06-18 10:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-11  4:51 [PATCH v3 1/4] Add the directory mach-sh2007 for SH-2007 board support Hitoshi Mitake
2010-06-17  9:14 ` [PATCH v3 1/4] Add the directory mach-sh2007 for SH-2007 board Hitoshi Mitake
2010-06-17 23:59 ` Magnus Damm
2010-06-18 10:57 ` Hitoshi Mitake

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.