diff options
| author | Sascha Hauer <s.hauer@pengutronix.de> | 2009-11-30 07:31:29 -0500 |
|---|---|---|
| committer | Sascha Hauer <s.hauer@pengutronix.de> | 2009-12-02 06:17:16 -0500 |
| commit | 4c8b581dd28588940a328632e406baab574e0ce5 (patch) | |
| tree | afddb5d79c1d360b15c3b0782d484b06ce66d28b | |
| parent | 9e3e7afe9bd73cc3fe0d742ba3391e864e234923 (diff) | |
i.MX27 audmux: Fix register offsets
We have two holes in the register space. The driver did not
handle this. Fix it.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| -rw-r--r-- | arch/arm/plat-mxc/audmux-v1.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/arm/plat-mxc/audmux-v1.c b/arch/arm/plat-mxc/audmux-v1.c index 70ab5aff2b9e..da6387dcdf21 100644 --- a/arch/arm/plat-mxc/audmux-v1.c +++ b/arch/arm/plat-mxc/audmux-v1.c | |||
| @@ -28,7 +28,9 @@ | |||
| 28 | 28 | ||
| 29 | static void __iomem *audmux_base; | 29 | static void __iomem *audmux_base; |
| 30 | 30 | ||
| 31 | #define MXC_AUDMUX_V1_PCR(x) ((x) * 4) | 31 | static unsigned char port_mapping[] = { |
| 32 | 0x0, 0x4, 0x8, 0x10, 0x14, 0x1c, | ||
| 33 | }; | ||
| 32 | 34 | ||
| 33 | int mxc_audmux_v1_configure_port(unsigned int port, unsigned int pcr) | 35 | int mxc_audmux_v1_configure_port(unsigned int port, unsigned int pcr) |
| 34 | { | 36 | { |
| @@ -37,7 +39,10 @@ int mxc_audmux_v1_configure_port(unsigned int port, unsigned int pcr) | |||
| 37 | return -ENOSYS; | 39 | return -ENOSYS; |
| 38 | } | 40 | } |
| 39 | 41 | ||
| 40 | writel(pcr, audmux_base + MXC_AUDMUX_V1_PCR(port)); | 42 | if (port >= ARRAY_SIZE(port_mapping)) |
| 43 | return -EINVAL; | ||
| 44 | |||
| 45 | writel(pcr, audmux_base + port_mapping[port]); | ||
| 41 | 46 | ||
| 42 | return 0; | 47 | return 0; |
| 43 | } | 48 | } |
