public inbox for linux-sh@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 4/4] sh: add FSI driver support for ms7724se
@ 2009-08-20 12:01 Kuninori Morimoto
  2009-08-20 19:06 ` [alsa-devel] [PATCH v2 4/4] sh: add FSI driver support for Mark Brown
  0 siblings, 1 reply; 4+ messages in thread
From: Kuninori Morimoto @ 2009-08-20 12:01 UTC (permalink / raw)
  To: linux-sh, alsa-devel; +Cc: Takashi Iwai, lethal, Magnus Damm, broonie

Signed-off-by: Kuninori Morimoto <morimoto.kuninori@renesas.com>
---
v1 -> v2

o become independent patch

 arch/sh/boards/mach-se/7724/setup.c |   90 +++++++++++++++++++++++++++++++++++
 1 files changed, 90 insertions(+), 0 deletions(-)

diff --git a/arch/sh/boards/mach-se/7724/setup.c b/arch/sh/boards/mach-se/7724/setup.c
index 9162081..bffc90e 100644
--- a/arch/sh/boards/mach-se/7724/setup.c
+++ b/arch/sh/boards/mach-se/7724/setup.c
@@ -22,11 +22,13 @@
 #include <linux/usb/r8a66597.h>
 #include <video/sh_mobile_lcdc.h>
 #include <media/sh_mobile_ceu.h>
+#include <sound/sh_fsi.h>
 #include <asm/io.h>
 #include <asm/heartbeat.h>
 #include <asm/sh_eth.h>
 #include <asm/clock.h>
 #include <asm/sh_keysc.h>
+#include <asm/dma-sh.h>
 #include <cpu/sh7724.h>
 #include <mach-se/mach/se7724.h>
 
@@ -246,6 +248,65 @@ static struct platform_device ceu1_device = {
 	},
 };
 
+/* FSI */
+/*
+ * FSI-A use external clock which came from ak464x.
+ * So, we should change parent of fsi
+ */
+#define FCLKACR		0xa4150008
+static void fsimck_init(struct clk *clk)
+{
+	u32 status = ctrl_inl(clk->enable_reg);
+
+	/* use external clock */
+	status &= ~0x000000ff;
+	status |= 0x00000080;
+	ctrl_outl(status, clk->enable_reg);
+}
+
+static struct clk_ops fsimck_clk_ops = {
+	.init = fsimck_init,
+};
+
+static struct clk fsimcka_clk = {
+	.name		= "fsimcka_clk",
+	.id		= -1,
+	.ops		= &fsimck_clk_ops,
+	.enable_reg	= (void __iomem *)FCLKACR,
+	.rate		= 0, /* unknown */
+};
+
+struct sh_fsi_platform_info fsi_info = {
+	.porta_flags = SH_FSI_BRS_INV |
+		       SH_FSI_OUT_SLAVE_MODE |
+		       SH_FSI_IN_SLAVE_MODE |
+		       SH_FSI_OFMT(PCM) |
+		       SH_FSI_IFMT(PCM),
+};
+
+static struct resource fsi_resources[] = {
+	[0] = {
+		.name	= "FSI",
+		.start	= 0xFE3C0000,
+		.end	= 0xFE3C021d,
+		.flags	= IORESOURCE_MEM,
+	},
+	[1] = {
+		.start  = 108,
+		.flags  = IORESOURCE_IRQ,
+	},
+};
+
+static struct platform_device fsi_device = {
+	.name		= "sh_fsi",
+	.id		= 0,
+	.num_resources	= ARRAY_SIZE(fsi_resources),
+	.resource	= fsi_resources,
+	.dev	= {
+		.platform_data	= &fsi_info,
+	},
+};
+
 /* KEYSC in SoC (Needs SW33-2 set to ON) */
 static struct sh_keysc_info keysc_info = {
 	.mode = SH_KEYSC_MODE_1,
@@ -351,6 +412,7 @@ static struct platform_device *ms7724se_devices[] __initdata = {
 	&keysc_device,
 	&sh_eth_device,
 	&sh7724_usb0_host_device,
+	&fsi_device,
 };
 
 #define EEPROM_OP   0xBA206000
@@ -418,11 +480,13 @@ static void __init sh_eth_init(void)
 static int __init devices_setup(void)
 {
 	u16 sw = ctrl_inw(SW4140); /* select camera, monitor */
+	struct clk *fsia_clk;
 
 	/* Reset Release */
 	ctrl_outw(ctrl_inw(FPGA_OUT) &
 		  ~((1 << 1)  | /* LAN */
 		    (1 << 6)  | /* VIDEO DAC */
+		    (1 << 7)  | /* AK4643 */
 		    (1 << 12) | /* USB0 */
 		    (1 << 14)), /* RMII */
 		  FPGA_OUT);
@@ -558,6 +622,32 @@ static int __init devices_setup(void)
 	gpio_request(GPIO_FN_KEYOUT1,     NULL);
 	gpio_request(GPIO_FN_KEYOUT0,     NULL);
 
+	/* enable FSI */
+	gpio_request(GPIO_FN_FSIMCKB,    NULL);
+	gpio_request(GPIO_FN_FSIMCKA,    NULL);
+	gpio_request(GPIO_FN_FSIOASD,    NULL);
+	gpio_request(GPIO_FN_FSIIABCK,   NULL);
+	gpio_request(GPIO_FN_FSIIALRCK,  NULL);
+	gpio_request(GPIO_FN_FSIOABCK,   NULL);
+	gpio_request(GPIO_FN_FSIOALRCK,  NULL);
+	gpio_request(GPIO_FN_CLKAUDIOAO, NULL);
+	gpio_request(GPIO_FN_FSIIBSD,    NULL);
+	gpio_request(GPIO_FN_FSIOBSD,    NULL);
+	gpio_request(GPIO_FN_FSIIBBCK,   NULL);
+	gpio_request(GPIO_FN_FSIIBLRCK,  NULL);
+	gpio_request(GPIO_FN_FSIOBBCK,   NULL);
+	gpio_request(GPIO_FN_FSIOBLRCK,  NULL);
+	gpio_request(GPIO_FN_CLKAUDIOBO, NULL);
+	gpio_request(GPIO_FN_FSIIASD,    NULL);
+
+	/* change parent of FSI A */
+	fsia_clk = clk_get(NULL, "fsia_clk");
+	clk_register(&fsimcka_clk);
+	clk_set_parent(fsia_clk, &fsimcka_clk);
+	clk_set_rate(fsia_clk, 11000);
+	clk_set_rate(&fsimcka_clk, 11000);
+	clk_put(fsia_clk);
+
 	/*
 	 * enable SH-Eth
 	 *
-- 
1.6.0.4


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

* Re: [alsa-devel] [PATCH v2 4/4] sh: add FSI driver support for
  2009-08-20 12:01 [PATCH v2 4/4] sh: add FSI driver support for ms7724se Kuninori Morimoto
@ 2009-08-20 19:06 ` Mark Brown
  2009-08-20 23:43   ` [alsa-devel] [PATCH v2 4/4] sh: add FSI driver support for ms7724se Paul Mundt
  2009-08-21  1:09   ` Kuninori Morimoto
  0 siblings, 2 replies; 4+ messages in thread
From: Mark Brown @ 2009-08-20 19:06 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: Takashi Iwai, alsa-devel, lethal, Magnus Damm, linux-sh

On Thu, Aug 20, 2009 at 09:01:27PM +0900, Kuninori Morimoto wrote:
> Signed-off-by: Kuninori Morimoto <morimoto.kuninori@renesas.com>

> o become independent patch

It looks like this should have another change to register the CODEC as
an I2C device?  Other than that it's fine from an ASoC point of view -
is it OK to merge via ASoC due to the dependency on the platform data
for the FSI?

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

* Re: [alsa-devel] [PATCH v2 4/4] sh: add FSI driver support for ms7724se
  2009-08-20 19:06 ` [alsa-devel] [PATCH v2 4/4] sh: add FSI driver support for Mark Brown
@ 2009-08-20 23:43   ` Paul Mundt
  2009-08-21  1:09   ` Kuninori Morimoto
  1 sibling, 0 replies; 4+ messages in thread
From: Paul Mundt @ 2009-08-20 23:43 UTC (permalink / raw)
  To: Mark Brown
  Cc: Kuninori Morimoto, Takashi Iwai, alsa-devel, Magnus Damm,
	linux-sh

On Thu, Aug 20, 2009 at 08:06:26PM +0100, Mark Brown wrote:
> On Thu, Aug 20, 2009 at 09:01:27PM +0900, Kuninori Morimoto wrote:
> > Signed-off-by: Kuninori Morimoto <morimoto.kuninori@renesas.com>
> 
> > o become independent patch
> 
> It looks like this should have another change to register the CODEC as
> an I2C device?  Other than that it's fine from an ASoC point of view -
> is it OK to merge via ASoC due to the dependency on the platform data
> for the FSI?

I have other ms7724se patches queued up for 2.6.32, so the easiest thing
to do is just to leave this patch until the dependencies are upstream,
then I'll fold it in. This is how we usually handle these sorts of merge
dependencies anyways.

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

* Re: [alsa-devel] [PATCH v2 4/4] sh: add FSI driver support for ms7724se
  2009-08-20 19:06 ` [alsa-devel] [PATCH v2 4/4] sh: add FSI driver support for Mark Brown
  2009-08-20 23:43   ` [alsa-devel] [PATCH v2 4/4] sh: add FSI driver support for ms7724se Paul Mundt
@ 2009-08-21  1:09   ` Kuninori Morimoto
  1 sibling, 0 replies; 4+ messages in thread
From: Kuninori Morimoto @ 2009-08-21  1:09 UTC (permalink / raw)
  To: Mark Brown, lethal; +Cc: alsa-devel, linux-sh


Dear Mark

Thank you

> It looks like this should have another change to register the CODEC as
> an I2C device?  Other than that it's fine from an ASoC point of view -
> is it OK to merge via ASoC due to the dependency on the platform data
> for the FSI?

I think you can not apply this patch to
your git branch without merge from Paul's git.
Because there are a lot of patches for
${LINUX}/arch/sh/boards/mach-se/7724/setup.c
in current Paul's git
This patch is based on Paul's git

and I'm sorry I will send v3 patch

Best regards
--
Kuninori Morimoto
 

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

end of thread, other threads:[~2009-08-21  1:09 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-20 12:01 [PATCH v2 4/4] sh: add FSI driver support for ms7724se Kuninori Morimoto
2009-08-20 19:06 ` [alsa-devel] [PATCH v2 4/4] sh: add FSI driver support for Mark Brown
2009-08-20 23:43   ` [alsa-devel] [PATCH v2 4/4] sh: add FSI driver support for ms7724se Paul Mundt
2009-08-21  1:09   ` Kuninori Morimoto

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox