From: Tony Lindgren <tony@atomide.com>
To: Adrian Hunter <adrian.hunter@nokia.com>
Cc: Madhusudhan Chikkature <madhu.cr@ti.com>,
Paul Walmsley <paul@pwsan.com>,
linux-omap Mailing List <linux-omap@vger.kernel.org>,
linux-mmc Mailing List <linux-mmc@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH V2 5/10] omap: Add functions for dynamic remuxing of pins
Date: Tue, 19 Jan 2010 17:21:21 -0800 [thread overview]
Message-ID: <20100120012120.GJ10318@atomide.com> (raw)
In-Reply-To: <20100117013328.17308.2865.sendpatchset@ahunter-work.research.nokia.com>
* Adrian Hunter <adrian.hunter@nokia.com> [100116 17:31]:
> From 33beb5bc36cba739971dc8919a6929925ad3dafc Mon Sep 17 00:00:00 2001
> From: Tony Lindgren <tony@atomide.com>
> Date: Wed, 13 Jan 2010 10:27:17 -0800
> Subject: [PATCH] omap: Add functions for dynamic remuxing of pins
>
> Make the omap_mux_read and write available for board code,
> and rename omap_mux_set_board_signals into omap_mux_write_array.
>
> In some cases we want to change the signals dynamically,
> mostly for power management.
>
> Note that we cannot use the signal names as they are set
> __init to save memory.
I'll try to merge this as a fix since it fixes dynamic remuxing.
Adrian, can I add your Acked-by?
Regards,
Tony
> Signed-off-by: Tony Lindgren <tony@atomide.com>
> ---
> arch/arm/mach-omap2/mux.c | 22 +++++++++++-----------
> arch/arm/mach-omap2/mux.h | 24 ++++++++++++++++++++++++
> 2 files changed, 35 insertions(+), 11 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
> index a8febd3..50298b4 100644
> --- a/arch/arm/mach-omap2/mux.c
> +++ b/arch/arm/mach-omap2/mux.c
> @@ -51,7 +51,7 @@ struct omap_mux_entry {
> static unsigned long mux_phys;
> static void __iomem *mux_base;
>
> -static inline u16 omap_mux_read(u16 reg)
> +u16 omap_mux_read(u16 reg)
> {
> if (cpu_is_omap24xx())
> return __raw_readb(mux_base + reg);
> @@ -59,7 +59,7 @@ static inline u16 omap_mux_read(u16 reg)
> return __raw_readw(mux_base + reg);
> }
>
> -static inline void omap_mux_write(u16 val, u16 reg)
> +void omap_mux_write(u16 val, u16 reg)
> {
> if (cpu_is_omap24xx())
> __raw_writeb(val, mux_base + reg);
> @@ -67,6 +67,14 @@ static inline void omap_mux_write(u16 val, u16 reg)
> __raw_writew(val, mux_base + reg);
> }
>
> +void omap_mux_write_array(struct omap_board_mux *board_mux)
> +{
> + while (board_mux->reg_offset != OMAP_MUX_TERMINATOR) {
> + omap_mux_write(board_mux->value, board_mux->reg_offset);
> + board_mux++;
> + }
> +}
> +
> #if defined(CONFIG_ARCH_OMAP24XX) && defined(CONFIG_OMAP_MUX)
>
> static struct omap_mux_cfg arch_mux_cfg;
> @@ -833,14 +841,6 @@ static void __init omap_mux_set_cmdline_signals(void)
> kfree(options);
> }
>
> -static void __init omap_mux_set_board_signals(struct omap_board_mux *board_mux)
> -{
> - while (board_mux->reg_offset != OMAP_MUX_TERMINATOR) {
> - omap_mux_write(board_mux->value, board_mux->reg_offset);
> - board_mux++;
> - }
> -}
> -
> static int __init omap_mux_copy_names(struct omap_mux *src,
> struct omap_mux *dst)
> {
> @@ -992,7 +992,7 @@ static void omap_mux_init_package(struct omap_mux *superset,
> static void omap_mux_init_signals(struct omap_board_mux *board_mux)
> {
> omap_mux_set_cmdline_signals();
> - omap_mux_set_board_signals(board_mux);
> + omap_mux_write_array(board_mux);
> }
>
> #else
> diff --git a/arch/arm/mach-omap2/mux.h b/arch/arm/mach-omap2/mux.h
> index d8b4d5a..f8c2e7a 100644
> --- a/arch/arm/mach-omap2/mux.h
> +++ b/arch/arm/mach-omap2/mux.h
> @@ -147,6 +147,30 @@ u16 omap_mux_get_gpio(int gpio);
> void omap_mux_set_gpio(u16 val, int gpio);
>
> /**
> + * omap_mux_read() - read mux register
> + * @mux_offset: Offset of the mux register
> + *
> + */
> +u16 omap_mux_read(u16 mux_offset);
> +
> +/**
> + * omap_mux_write() - write mux register
> + * @val: New mux register value
> + * @mux_offset: Offset of the mux register
> + *
> + * This should be only needed for dynamic remuxing of non-gpio signals.
> + */
> +void omap_mux_write(u16 val, u16 mux_offset);
> +
> +/**
> + * omap_mux_write_array() - write an array of mux registers
> + * @board_mux: Array of mux registers terminated by MAP_MUX_TERMINATOR
> + *
> + * This should be only needed for dynamic remuxing of non-gpio signals.
> + */
> +void omap_mux_write_array(struct omap_board_mux *board_mux);
> +
> +/**
> * omap3_mux_init() - initialize mux system with board specific set
> * @board_mux: Board specific mux table
> * @flags: OMAP package type used for the board
> --
> 1.6.0.4
>
next prev parent reply other threads:[~2010-01-20 1:21 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-17 1:32 [PATCH V2 0/10] omap_hsmmc changes V2 Adrian Hunter
2010-01-17 1:32 ` [PATCH V2 1/10] omap_hsmmc: Move gpio and regulator control from board file Adrian Hunter
2010-01-17 1:33 ` [PATCH V2 2/10] omap: Rename mmc-twl4030 files to hsmmc Adrian Hunter
2010-01-20 23:41 ` Madhusudhan
2010-01-20 23:48 ` Madhusudhan
2010-01-21 9:07 ` Adrian Hunter
2010-01-21 17:23 ` Madhusudhan
2010-01-17 1:33 ` [PATCH V2 3/10] omap: Rename hsmmc symbols to reflect independence from twl4030 Adrian Hunter
2010-01-17 1:33 ` [PATCH V2 4/10] omap: Reconnect hsmmc context loss count Adrian Hunter
2010-01-17 1:33 ` [PATCH V2 5/10] omap: Add functions for dynamic remuxing of pins Adrian Hunter
2010-01-20 1:21 ` Tony Lindgren [this message]
2010-01-20 8:05 ` Adrian Hunter
2010-01-22 17:17 ` Tony Lindgren
2010-01-17 1:33 ` [PATCH V2 6/10] omap: RX51: Remux to pull eMMC lines down when powering off Adrian Hunter
2010-01-17 1:33 ` [PATCH V2 7/10] omap_hsmmc: Allow for power saving without going off Adrian Hunter
2010-01-17 1:33 ` [PATCH V2 8/10] omap_hsmmc: Fix disable timeouts Adrian Hunter
2010-01-17 1:33 ` [PATCH V2 9/10] omap_hsmmc: Ensure regulator enable / disable are paired Adrian Hunter
2010-01-17 1:34 ` [PATCH V2 10/10] omap_hsmmc: Allow for a shared VccQ Adrian Hunter
2010-01-21 17:29 ` [PATCH V2 0/10] omap_hsmmc changes V2 Madhusudhan
2010-01-22 8:41 ` Adrian Hunter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100120012120.GJ10318@atomide.com \
--to=tony@atomide.com \
--cc=adrian.hunter@nokia.com \
--cc=akpm@linux-foundation.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=madhu.cr@ti.com \
--cc=paul@pwsan.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.