* [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