All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
To: linux-sh@vger.kernel.org
Subject: Re: [BUG] arch/sh/include/mach-common/mach/sh7785lcr.h: PCA9564_ADDR
Date: Thu, 27 Aug 2009 13:57:26 +0000	[thread overview]
Message-ID: <4A9690C6.3030300@renesas.com> (raw)
In-Reply-To: <4A95800A.7020603@gentoo.org>

Paul Mundt wrote:
> On Thu, Aug 27, 2009 at 12:01:03PM +0900, yoshii.takashi@renesas.com wrote:
>> Oh, sorry.
>> This might be because the board I sent you was a special version.
>> You (and possibly others who use this version) should revert that commit.
>> I'm really sorry for inconvenient.
>>
>> Paul, are there any good way to support this kind of small differences?
>> Is it ok to add configuration menu item like below?
>>
> Presumably we can figure the version out from the FPGA? If so, we can
> just figure out which devices to register, and have different devices for
> different versions.
> 
> If we can't figure it out from the FPGA, then the next best bet is to use
> the mach types, the version information can be encoded in a new
> mach-type, and we can simply have a mach_is_xxx() check for determining
> the board version and doing the appropriate fixups. We already do this
> today for some boards (highlander, r2d, etc.).

Thank you very much for your comment.
Unfortunately, this board don't have version register in FPGA.
So I made a patch that it adds mach_is_sh7785lcr_pt().
Would you check this patch?

Thanks,
Yoshihiro Shimoda

---
Subject: [PATCH] sh: sh7785lcr: fix prototype board on 32bit MMU mode.

Fix the problem that cannot work PCA9564 on 32bit MMU mode
using prototype board.

Signed-off-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
---
 arch/sh/boards/Kconfig                       |    7 +++++++
 arch/sh/boards/board-sh7785lcr.c             |   18 ++++++++++++++++++
 arch/sh/include/mach-common/mach/sh7785lcr.h |    2 ++
 arch/sh/tools/mach-types                     |    1 +
 4 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/arch/sh/boards/Kconfig b/arch/sh/boards/Kconfig
index b66f6d1..ee5bb20 100644
--- a/arch/sh/boards/Kconfig
+++ b/arch/sh/boards/Kconfig
@@ -171,6 +171,13 @@ config SH_SH7785LCR_29BIT_PHYSMAPS
 	  DIP switch(S2-5). If you set the DIP switch for S2-5 = ON,
 	  you can access all on-board device in 29bit address mode.

+config SH_SH7785LCR_PT
+	bool "SH7785LCR prototype board on 32-bit MMU mode"
+	depends on SH_SH7785LCR && 32BIT
+	default n
+	help
+	  If you use prototype board, this option is enabled.
+
 config SH_URQUELL
 	bool "Urquell"
 	depends on CPU_SUBTYPE_SH7786
diff --git a/arch/sh/boards/board-sh7785lcr.c b/arch/sh/boards/board-sh7785lcr.c
index 42410a1..726427c 100644
--- a/arch/sh/boards/board-sh7785lcr.c
+++ b/arch/sh/boards/board-sh7785lcr.c
@@ -223,6 +223,19 @@ static struct platform_device sm501_device = {
 	.resource	= sm501_resources,
 };

+static struct resource i2c_proto_resources[] = {
+	[0] = {
+		.start	= PCA9564_PROTO_32BIT_ADDR,
+		.end	= PCA9564_PROTO_32BIT_ADDR + PCA9564_SIZE - 1,
+		.flags	= IORESOURCE_MEM | IORESOURCE_MEM_8BIT,
+	},
+	[1] = {
+		.start	= 12,
+		.end	= 12,
+		.flags	= IORESOURCE_IRQ,
+	},
+};
+
 static struct resource i2c_resources[] = {
 	[0] = {
 		.start	= PCA9564_ADDR,
@@ -271,6 +284,11 @@ static int __init sh7785lcr_devices_setup(void)
 	i2c_register_board_info(0, sh7785lcr_i2c_devices,
 				ARRAY_SIZE(sh7785lcr_i2c_devices));

+	if (mach_is_sh7785lcr_pt()) {
+		i2c_device.resource = &i2c_proto_resources;
+		i2c_device.num_resources = ARRAY_SIZE(i2c_proto_resources);
+	}
+
 	return platform_add_devices(sh7785lcr_devices,
 				    ARRAY_SIZE(sh7785lcr_devices));
 }
diff --git a/arch/sh/include/mach-common/mach/sh7785lcr.h b/arch/sh/include/mach-common/mach/sh7785lcr.h
index 90011d4..1292ae5 100644
--- a/arch/sh/include/mach-common/mach/sh7785lcr.h
+++ b/arch/sh/include/mach-common/mach/sh7785lcr.h
@@ -35,6 +35,8 @@
 #define PCA9564_ADDR		0x06000000	/* I2C */
 #define PCA9564_SIZE		0x00000100

+#define PCA9564_PROTO_32BIT_ADDR	0x14000000
+
 #define SM107_MEM_ADDR		0x10000000
 #define SM107_MEM_SIZE		0x00e00000
 #define SM107_REG_ADDR		0x13e00000
diff --git a/arch/sh/tools/mach-types b/arch/sh/tools/mach-types
index b573628..6639b25 100644
--- a/arch/sh/tools/mach-types
+++ b/arch/sh/tools/mach-types
@@ -53,6 +53,7 @@ RSK7203			SH_RSK7203
 AP325RXA		SH_AP325RXA
 SH7763RDP		SH_SH7763RDP
 SH7785LCR		SH_SH7785LCR
+SH7785LCR_PT		SH_SH7785LCR_PT
 URQUELL			SH_URQUELL
 ESPT			SH_ESPT
 POLARIS			SH_POLARIS
-- 
1.5.5


  parent reply	other threads:[~2009-08-27 13:57 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-26 18:33 [BUG] arch/sh/include/mach-common/mach/sh7785lcr.h: PCA9564_ADDR Raúl Porcel
2009-08-27  2:39 ` [BUG] arch/sh/include/mach-common/mach/sh7785lcr.h: PCA9564_ADDR is 29bit-only Paul Mundt
2009-08-27  3:01 ` [BUG] arch/sh/include/mach-common/mach/sh7785lcr.h: yoshii.takashi
2009-08-27  4:15 ` [BUG] arch/sh/include/mach-common/mach/sh7785lcr.h: PCA9564_ADDR is 29bit-only Paul Mundt
2009-08-27 13:57 ` Yoshihiro Shimoda [this message]
2009-08-27 14:20 ` [BUG] arch/sh/include/mach-common/mach/sh7785lcr.h: PCA9564_ADDR Raúl Porcel
2009-08-27 14:26 ` [BUG] arch/sh/include/mach-common/mach/sh7785lcr.h: PCA9564_ADDR is 29bit-only Paul Mundt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A9690C6.3030300@renesas.com \
    --to=shimoda.yoshihiro@renesas.com \
    --cc=linux-sh@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.