- add read/write functions for using this driver
also on powerpc plattforms
Signed-off-by: Heiko Schocher h...@denx.de
cc: linux-fb...@vger.kernel.org
cc: devicetree-disc...@ozlabs.org
cc: Ben Dooks b...@simtec.co.uk
cc: Vincent Sanders vi...@simtec.co.uk
cc: Samuel Ortiz sa...@linux.intel.com
cc: linux-ker...@vger.kernel.org
cc: Randy Dunlap rdun...@xenotime.net
cc: Paul Mundt let...@linux-sh.org
---
- changes since v1:
add Ben Dooks, Vincent Sanders and Samuel Ortiz to cc, as suggested from
Paul Mundt.
- changes since v2:
add comments from Randy Dunlap:
- move parameter documentation to Documentation/fb/sm501.txt
- changes since v3:
- rebased against v2.6.38-rc2
- split in 3 patches
- of support patch
- i/o routine patch
- use ioread/write32{be} accessors instead of
__do_readl/__do_writel{_be}
- edid support patch
./scripts/checkpatch.pl
0001-video-sm501-add-I-O-functions-for-use-on-powerpc.patch
total: 0 errors, 0 warnings, 841 lines checked
0001-video-sm501-add-I-O-functions-for-use-on-powerpc.patch has no obvious
style problems and is ready for submission.
drivers/mfd/sm501.c | 125 +-
drivers/video/sm501fb.c | 172 --
include/linux/sm501.h |8 ++
3 files changed, 161 insertions(+), 144 deletions(-)
diff --git a/drivers/mfd/sm501.c b/drivers/mfd/sm501.c
index 5de3a76..558d5f3 100644
--- a/drivers/mfd/sm501.c
+++ b/drivers/mfd/sm501.c
@@ -133,10 +133,10 @@ static unsigned long decode_div(unsigned long pll2,
unsigned long val,
static void sm501_dump_clk(struct sm501_devdata *sm)
{
- unsigned long misct = readl(sm-regs + SM501_MISC_TIMING);
- unsigned long pm0 = readl(sm-regs + SM501_POWER_MODE_0_CLOCK);
- unsigned long pm1 = readl(sm-regs + SM501_POWER_MODE_1_CLOCK);
- unsigned long pmc = readl(sm-regs + SM501_POWER_MODE_CONTROL);
+ unsigned long misct = smc501_readl(sm-regs + SM501_MISC_TIMING);
+ unsigned long pm0 = smc501_readl(sm-regs + SM501_POWER_MODE_0_CLOCK);
+ unsigned long pm1 = smc501_readl(sm-regs + SM501_POWER_MODE_1_CLOCK);
+ unsigned long pmc = smc501_readl(sm-regs + SM501_POWER_MODE_CONTROL);
unsigned long sdclk0, sdclk1;
unsigned long pll2 = 0;
@@ -193,29 +193,29 @@ static void sm501_dump_regs(struct sm501_devdata *sm)
void __iomem *regs = sm-regs;
dev_info(sm-dev, System Control %08x\n,
- readl(regs + SM501_SYSTEM_CONTROL));
+ smc501_readl(regs + SM501_SYSTEM_CONTROL));
dev_info(sm-dev, Misc Control %08x\n,
- readl(regs + SM501_MISC_CONTROL));
+ smc501_readl(regs + SM501_MISC_CONTROL));
dev_info(sm-dev, GPIO Control Low %08x\n,
- readl(regs + SM501_GPIO31_0_CONTROL));
+ smc501_readl(regs + SM501_GPIO31_0_CONTROL));
dev_info(sm-dev, GPIO Control Hi %08x\n,
- readl(regs + SM501_GPIO63_32_CONTROL));
+ smc501_readl(regs + SM501_GPIO63_32_CONTROL));
dev_info(sm-dev, DRAM Control %08x\n,
- readl(regs + SM501_DRAM_CONTROL));
+ smc501_readl(regs + SM501_DRAM_CONTROL));
dev_info(sm-dev, Arbitration Ctrl %08x\n,
- readl(regs + SM501_ARBTRTN_CONTROL));
+ smc501_readl(regs + SM501_ARBTRTN_CONTROL));
dev_info(sm-dev, Misc Timing %08x\n,
- readl(regs + SM501_MISC_TIMING));
+ smc501_readl(regs + SM501_MISC_TIMING));
}
static void sm501_dump_gate(struct sm501_devdata *sm)
{
dev_info(sm-dev, CurrentGate %08x\n,
- readl(sm-regs + SM501_CURRENT_GATE));
+ smc501_readl(sm-regs + SM501_CURRENT_GATE));
dev_info(sm-dev, CurrentClock %08x\n,
- readl(sm-regs + SM501_CURRENT_CLOCK));
+ smc501_readl(sm-regs + SM501_CURRENT_CLOCK));
dev_info(sm-dev, PowerModeControl %08x\n,
- readl(sm-regs + SM501_POWER_MODE_CONTROL));
+ smc501_readl(sm-regs + SM501_POWER_MODE_CONTROL));
}
#else
@@ -231,7 +231,7 @@ static inline void sm501_dump_clk(struct sm501_devdata *sm)
{ }
static void sm501_sync_regs(struct sm501_devdata *sm)
{
- readl(sm-regs);
+ smc501_readl(sm-regs);
}
static inline void sm501_mdelay(struct sm501_devdata *sm, unsigned int delay)
@@ -261,11 +261,11 @@ int sm501_misc_control(struct device *dev,
spin_lock_irqsave(sm-reg_lock, save);
- misc = readl(sm-regs + SM501_MISC_CONTROL);
+ misc = smc501_readl(sm-regs + SM501_MISC_CONTROL);
to = (misc ~clear) | set;
if (to != misc) {
- writel(to, sm-regs + SM501_MISC_CONTROL);
+ smc501_writel(to, sm-regs +