* [PATCH][OMAPZOOM] OMAP3: Fix handling of McBSP registers XCCR and RCCR for OMAP2430/34xx
@ 2008-11-21 4:31 mesak82
2008-11-21 6:06 ` Gadiyar, Anand
0 siblings, 1 reply; 4+ messages in thread
From: mesak82 @ 2008-11-21 4:31 UTC (permalink / raw)
To: linux-omap; +Cc: vikram.pandita, Misael Lopez Cruz
From: Misael Lopez Cruz <mesak82@gmail.com>
This patch fixes handling of XCCR and RCCR registers of McBSP for OMAP2430
and 34xx platforms. It also fixes OMAP McBSP DAI driver which was setting
those registers to 0, as they were not initialized.
Signed-off-by: Misael Lopez Cruz <mesak82@gmail.com>
---
arch/arm/plat-omap/include/mach/mcbsp.h | 7 +++++++
arch/arm/plat-omap/mcbsp.c | 1 +
sound/soc/omap/omap-mcbsp.c | 4 ++++
3 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/arch/arm/plat-omap/include/mach/mcbsp.h b/arch/arm/plat-omap/include/mach/mcbsp.h
index 3e38575..faa9164 100644
--- a/arch/arm/plat-omap/include/mach/mcbsp.h
+++ b/arch/arm/plat-omap/include/mach/mcbsp.h
@@ -245,11 +245,16 @@
#define XPBBLK(value) ((value)<<7) /* Bits 7:8 */
/*********************** McBSP XCCR bit definitions *************************/
+#define EXTCLKGATE 0x8000
+#define PPCONNECT 0x4000
+#define DXENDLY(value) ((value)<<12) /* Bits 12:13 */
+#define XFULL_CYCLE 0x0800
#define DILB 0x0020
#define XDMAEN 0x0008
#define XDISABLE 0x0001
/********************** McBSP RCCR bit definitions *************************/
+#define RFULL_CYCLE 0x0800
#define RDMAEN 0x0008
#define RDISABLE 0x0001
@@ -403,8 +408,10 @@ struct omap_mcbsp_reg_cfg {
u16 rcerh;
u16 xcerg;
u16 xcerh;
+#if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP34XX)
u16 xccr;
u16 rccr;
+#endif
};
typedef enum {
diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
index 906e8e3..2b29033 100644
--- a/arch/arm/plat-omap/mcbsp.c
+++ b/arch/arm/plat-omap/mcbsp.c
@@ -174,6 +174,7 @@ void omap_mcbsp_config(unsigned int id, const struct omap_mcbsp_reg_cfg *config)
OMAP_MCBSP_WRITE(io_base, MCR2, config->mcr2);
OMAP_MCBSP_WRITE(io_base, MCR1, config->mcr1);
OMAP_MCBSP_WRITE(io_base, PCR0, config->pcr0);
+ /* Write to xccr and rccr only for omap2430/34xx */
if (cpu_is_omap2430() || cpu_is_omap34xx()) {
if (mcbsp->pdata->ops->config)
mcbsp->pdata->ops->config(id, config);
diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c
index 3a4cc4b..51a9313 100644
--- a/sound/soc/omap/omap-mcbsp.c
+++ b/sound/soc/omap/omap-mcbsp.c
@@ -285,6 +285,10 @@ static int omap_mcbsp_dai_set_dai_fmt(struct snd_soc_dai *cpu_dai,
regs->spcr1 |= RINTM(3);
regs->rcr2 |= RFIG;
regs->xcr2 |= XFIG;
+ if (cpu_is_omap2430() || cpu_is_omap34xx()) {
+ regs->xccr = DXENDLY(1) | XDMAEN;
+ regs->rccr = RFULL_CYCLE | RDMAEN;
+ }
switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
case SND_SOC_DAIFMT_I2S:
--
1.5.6.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* RE: [PATCH][OMAPZOOM] OMAP3: Fix handling of McBSP registers XCCR and RCCR for OMAP2430/34xx
2008-11-21 4:31 [PATCH][OMAPZOOM] OMAP3: Fix handling of McBSP registers XCCR and RCCR for OMAP2430/34xx mesak82
@ 2008-11-21 6:06 ` Gadiyar, Anand
2008-11-21 6:25 ` Misael Lopez
0 siblings, 1 reply; 4+ messages in thread
From: Gadiyar, Anand @ 2008-11-21 6:06 UTC (permalink / raw)
To: mesak82@gmail.com, linux-omap@vger.kernel.org; +Cc: Pandita, Vikram
> -----Original Message-----
> From: linux-omap-owner@vger.kernel.org On Behalf Of mesak82@gmail.com
>
> From: Misael Lopez Cruz <mesak82@gmail.com>
>
> This patch fixes handling of XCCR and RCCR registers of McBSP for OMAP2430
> and 34xx platforms. It also fixes OMAP McBSP DAI driver which was setting
> those registers to 0, as they were not initialized.
>
> Signed-off-by: Misael Lopez Cruz <mesak82@gmail.com>
> ---
> arch/arm/plat-omap/include/mach/mcbsp.h | 7 +++++++
> arch/arm/plat-omap/mcbsp.c | 1 +
> sound/soc/omap/omap-mcbsp.c | 4 ++++
> 3 files changed, 12 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/plat-omap/include/mach/mcbsp.h b/arch/arm/plat-omap/include/mach/mcbsp.h
> index 3e38575..faa9164 100644
> --- a/arch/arm/plat-omap/include/mach/mcbsp.h
> +++ b/arch/arm/plat-omap/include/mach/mcbsp.h
> @@ -245,11 +245,16 @@
> #define XPBBLK(value) ((value)<<7) /* Bits 7:8 */
>
> /*********************** McBSP XCCR bit definitions *************************/
> +#define EXTCLKGATE 0x8000
> +#define PPCONNECT 0x4000
> +#define DXENDLY(value) ((value)<<12) /* Bits 12:13 */
> +#define XFULL_CYCLE 0x0800
> #define DILB 0x0020
> #define XDMAEN 0x0008
> #define XDISABLE 0x0001
>
> /********************** McBSP RCCR bit definitions *************************/
> +#define RFULL_CYCLE 0x0800
> #define RDMAEN 0x0008
> #define RDISABLE 0x0001
>
> @@ -403,8 +408,10 @@ struct omap_mcbsp_reg_cfg {
> u16 rcerh;
> u16 xcerg;
> u16 xcerh;
> +#if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP34XX)
> u16 xccr;
> u16 rccr;
> +#endif
> };
Won't this cause a compilation break on non-2430/34xx platforms
because you refer to these variables below?
>
> typedef enum {
> diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
> index 906e8e3..2b29033 100644
> --- a/arch/arm/plat-omap/mcbsp.c
> +++ b/arch/arm/plat-omap/mcbsp.c
> @@ -174,6 +174,7 @@ void omap_mcbsp_config(unsigned int id,
> const struct omap_mcbsp_reg_cfg *config)
> OMAP_MCBSP_WRITE(io_base, MCR2, config->mcr2);
> OMAP_MCBSP_WRITE(io_base, MCR1, config->mcr1);
> OMAP_MCBSP_WRITE(io_base, PCR0, config->pcr0);
> + /* Write to xccr and rccr only for omap2430/34xx */
> if (cpu_is_omap2430() || cpu_is_omap34xx()) {
> if (mcbsp->pdata->ops->config)
> mcbsp->pdata->ops->config(id, config);
> diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c
> index 3a4cc4b..51a9313 100644
> --- a/sound/soc/omap/omap-mcbsp.c
> +++ b/sound/soc/omap/omap-mcbsp.c
> @@ -285,6 +285,10 @@ static int
> omap_mcbsp_dai_set_dai_fmt(struct snd_soc_dai *cpu_dai,
> regs->spcr1 |= RINTM(3);
> regs->rcr2 |= RFIG;
> regs->xcr2 |= XFIG;
> + if (cpu_is_omap2430() || cpu_is_omap34xx()) {
> + regs->xccr = DXENDLY(1) | XDMAEN;
> + regs->rccr = RFULL_CYCLE | RDMAEN;
> + }
>
> switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
> case SND_SOC_DAIFMT_I2S:
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH][OMAPZOOM] OMAP3: Fix handling of McBSP registers XCCR and RCCR for OMAP2430/34xx
2008-11-21 6:06 ` Gadiyar, Anand
@ 2008-11-21 6:25 ` Misael Lopez
2008-11-21 6:33 ` shekhar, chandra
0 siblings, 1 reply; 4+ messages in thread
From: Misael Lopez @ 2008-11-21 6:25 UTC (permalink / raw)
To: Gadiyar, Anand; +Cc: linux-omap@vger.kernel.org, Pandita, Vikram
> > @@ -403,8 +408,10 @@ struct omap_mcbsp_reg_cfg {
> > u16 rcerh;
> > u16 xcerg;
> > u16 xcerh;
> > +#if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP34XX)
> > u16 xccr;
> > u16 rccr;
> > +#endif
> > };
>
> Won't this cause a compilation break on non-2430/34xx platforms
> because you refer to these variables below?
True... I didn't consider that. Then for non-2430/34xx platforms,
having those registers in the structure but avoiding to write to them
is enough, correct? or any other alternative?
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH][OMAPZOOM] OMAP3: Fix handling of McBSP registers XCCR and RCCR for OMAP2430/34xx
2008-11-21 6:25 ` Misael Lopez
@ 2008-11-21 6:33 ` shekhar, chandra
0 siblings, 0 replies; 4+ messages in thread
From: shekhar, chandra @ 2008-11-21 6:33 UTC (permalink / raw)
To: Misael Lopez, Gadiyar, Anand; +Cc: linux-omap, Pandita, Vikram
----- Original Message -----
From: "Misael Lopez" <mesak82@gmail.com>
To: "Gadiyar, Anand" <gadiyar@ti.com>
Cc: <linux-omap@vger.kernel.org>; "Pandita, Vikram" <vikram.pandita@ti.com>
Sent: Friday, November 21, 2008 11:55 AM
Subject: Re: [PATCH][OMAPZOOM] OMAP3: Fix handling of McBSP registers XCCR and
RCCR for OMAP2430/34xx
>> > @@ -403,8 +408,10 @@ struct omap_mcbsp_reg_cfg {
>> > u16 rcerh;
>> > u16 xcerg;
>> > u16 xcerh;
>> > +#if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP34XX)
>> > u16 xccr;
>> > u16 rccr;
>> > +#endif
>> > };
>>
>> Won't this cause a compilation break on non-2430/34xx platforms
>> because you refer to these variables below?
> True... I didn't consider that. Then for non-2430/34xx platforms,
> having those registers in the structure but avoiding to write to them
> is enough, correct? or any other alternative?
Since you write those registers conditionally for 2430/34xx, i guess removing
ifdef should do..
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2008-11-21 6:33 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-21 4:31 [PATCH][OMAPZOOM] OMAP3: Fix handling of McBSP registers XCCR and RCCR for OMAP2430/34xx mesak82
2008-11-21 6:06 ` Gadiyar, Anand
2008-11-21 6:25 ` Misael Lopez
2008-11-21 6:33 ` shekhar, chandra
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox