[PATCH v2] arm/tegra: pinmux: ioremap registers
Olof Johansson
olof at lixom.net
Wed Oct 12 18:42:36 EDT 2011
On Wed, Oct 12, 2011 at 09:54:27AM -0600, Stephen Warren wrote:
> Use ioremap to obtain access to registers instead of using static
> mappings. This reduces the number of users of the static mappings, which
> will eventually allow them to be removed.
>
> Note that on Tegra30, the number of register "banks" will decrease to 2,
> and the packing of specific bits into registers will change significantly.
> That's why this change adds the "*_bank" fields to the pingroup tables,
> rather than implementing some more hard-coded scheme.
>
> Also, completely remove the implementation of suspend/resume; Tegra doesn't
> yet support suspend/resume, and the implementation is complex for the
> general pinmux driver:
>
> * Not all registers are used within each bank, so we probably shouldn't
> just iterate over every register in the bank, and save/restore it,
> since that would mean touching undefined registers.
>
> * Registers are shared between pingroups, so we can't simply iterate over
> each pingroup, and save/restore the registers it uses.
>
> It'd probably be best have probe() calculate a bitmask of actually-used
> registers for each bank, and have suspend/resume iterate over those
> bitmaps.
>
> Oh, and Real Soon Now, I should be looking into converting this driver to
> the new pinmux/pinctrl subsystem, so I didn't want to put too much work
> into the current incarnation.
>
> v2: s/space/bank/ to match comments on reg_* fields in pinmux.h.
> Re-order bank/reg parameters to pg_readl/pg_writel.
>
> Signed-off-by: Stephen Warren <swarren at nvidia.com>
Thanks, applied to for-3.2/features.
-Olof
More information about the linux-arm-kernel
mailing list