[PATCH 8/9 v2] MXC: Add a digital audio multiplexer driver
Sascha Hauer
s.hauer at pengutronix.de
Mon Nov 30 11:18:12 EST 2009
On Mon, Nov 30, 2009 at 05:15:45PM +0100, javier Martin wrote:
> 2009/11/30 Sascha Hauer <s.hauer at pengutronix.de>
>
> > On Mon, Nov 30, 2009 at 02:09:16PM +0100, javier Martin wrote:
> > > From fa87b65915e78ad29a8e4f3f22b26ed0fa6dc7f5 Mon Sep 17 00:00:00 2001
> > >
> > > > From: Sascha Hauer <s.hauer at pengutronix.de>
> > > > Date: Mon, 30 Nov 2009 13:31:29 +0100
> > > > Subject: [PATCH] i.MX27 audmux: Fix register offsets
> > > >
> > > > The PPCR registers start at 0x10, not 0xc. Fix this.
> > > >
> > > > Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> > > > ---
> > > > arch/arm/plat-mxc/include/mach/audmux.h | 6 +++---
> > > > 1 files changed, 3 insertions(+), 3 deletions(-)
> > > >
> > > > diff --git a/arch/arm/plat-mxc/include/mach/audmux.h
> > > > b/arch/arm/plat-mxc/include/mach/audmux.h
> > > > index 5cd6466..dcc12d4 100644
> > > > --- a/arch/arm/plat-mxc/include/mach/audmux.h
> > > > +++ b/arch/arm/plat-mxc/include/mach/audmux.h
> > > > @@ -4,9 +4,9 @@
> > > > #define MX27_AUDMUX_HPCR1_SSI0 0
> > > > #define MX27_AUDMUX_HPCR2_SSI1 1
> > > > #define MX27_AUDMUX_HPCR3_SSI_PINS_4 2
> > > > -#define MX27_AUDMUX_PPCR1_SSI_PINS_1 3
> > > > -#define MX27_AUDMUX_PPCR2_SSI_PINS_2 4
> > > > -#define MX27_AUDMUX_PPCR3_SSI_PINS_3 5
> > > > +#define MX27_AUDMUX_PPCR1_SSI_PINS_1 4
> > > > +#define MX27_AUDMUX_PPCR2_SSI_PINS_2 5
> > > > +#define MX27_AUDMUX_PPCR3_SSI_PINS_3 6
> > > >
> > >
> > > Be careful,
> > > I think this patch breaks some of the boards currently using
> > > MXC_AUDMUX_V1_PCR_RXDSEL(x) and similar macros defined in mach/audmux.h
> > (for
> > > example pcm038).
> > > For those macros the old AUDMUX register indexes are fine.
> > >
> > > I suggest fixing this inside audmux_v1.c instead of modifying
> > mach/audmux.h.
> >
> > Ok. The AUDMUX V1 is used on i.MX21 and i.MX27 and both have this hole
> > in the register space, so fixing it in the driver should be safe.
> >
> > How about this one then?
> >
> > Sascha
> >
> >
> > From 297b5c4cea40c2e7023bbdb96a0c90c13b0e02a1 Mon Sep 17 00:00:00 2001
> > From: Sascha Hauer <s.hauer at pengutronix.de>
> > Date: Mon, 30 Nov 2009 13:31:29 +0100
> > Subject: [PATCH] i.MX27 audmux: Fix register offsets
> >
> > The PPCR registers start at 0x10, not 0xc. Fix this.
> >
> > Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> > ---
> > arch/arm/plat-mxc/audmux-v1.c | 4 ++++
> > 1 files changed, 4 insertions(+), 0 deletions(-)
> >
> > diff --git a/arch/arm/plat-mxc/audmux-v1.c b/arch/arm/plat-mxc/audmux-v1.c
> > index 70ab5af..8fbce7b 100644
> > --- a/arch/arm/plat-mxc/audmux-v1.c
> > +++ b/arch/arm/plat-mxc/audmux-v1.c
> > @@ -37,6 +37,10 @@ int mxc_audmux_v1_configure_port(unsigned int port,
> > unsigned int pcr)
> > return -ENOSYS;
> > }
> >
> > + /* handle hole in the register space */
> > + if (port > 2)
> > + port++;
> > +
> > writel(pcr, audmux_base + MXC_AUDMUX_V1_PCR(port));
> >
> > return 0;
> > --
> > 1.6.5.2
> >
>
> Sascha,
> there are actually two holes, with this current patch, PPCR3 still receives
> a wrong value:
>
> 0x1001_6000 (HPCR1)
> 0x1001_6004 (HPCR2)
> 0x1001_6008 (HPCR3)
> 0x1001_600C (hole)
> 0x1001_6010 (PPCR1)
> 0x1001_6014 (PPCR2)
> 0x1001_6018 (hole)
> 0x1001_601C (PPCR3)
Grumpf. I'm not creating a new patch before getting some sleep.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the linux-arm-kernel
mailing list