[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1309430517-23821-3-git-send-email-s.hauer@pengutronix.de>
Date: Thu, 30 Jun 2011 12:41:56 +0200
From: Sascha Hauer <s.hauer@...gutronix.de>
To: linux-kernel@...r.kernel.org
Cc: linux-arm-kernel@...ts.infradead.org,
Arnd Bergmann <arnd@...db.de>,
viresh kumar <viresh.kumar@...com>,
Shawn Guo <shawn.guo@...aro.org>,
Ryan Mallon <ryan@...ewatersys.com>,
Sascha Hauer <s.hauer@...gutronix.de>
Subject: [PATCH 2/3] ARM mxs: adjust pwm resources to what the driver expects
The PWMs on i.MX23/28 have almost seperated register spaces
but share a common enable register. To reflect this register
a parent device to the PWMs which handles the enable register.
Signed-off-by: Sascha Hauer <s.hauer@...gutronix.de>
---
arch/arm/mach-mxs/devices/platform-mxs-pwm.c | 32 +++++++++++++++++++++++--
1 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mach-mxs/devices/platform-mxs-pwm.c b/arch/arm/mach-mxs/devices/platform-mxs-pwm.c
index 680f5a9..36580b7 100644
--- a/arch/arm/mach-mxs/devices/platform-mxs-pwm.c
+++ b/arch/arm/mach-mxs/devices/platform-mxs-pwm.c
@@ -9,14 +9,40 @@
#include <asm/sizes.h>
#include <mach/devices-common.h>
+static struct platform_device *__init mxs_add_pwm_core(resource_size_t iobase)
+{
+ struct resource res = {
+ .flags = IORESOURCE_MEM,
+ .start = iobase,
+ .end = iobase + 0xff,
+ };
+
+ return mxs_add_platform_device("mxs-pwm-core", 0, &res, 1, NULL, 0);
+}
+
struct platform_device *__init mxs_add_mxs_pwm(resource_size_t iobase, int id)
{
+ struct resource *r;
+
+ static struct platform_device *pwm_core;
struct resource res = {
.flags = IORESOURCE_MEM,
+ .start = iobase + 0x10 + 0x20 * id,
+ .end = iobase + 0x10 + 0x20 * id + 0x1f,
};
- res.start = iobase + 0x10 + 0x20 * id;
- res.end = res.start + 0x1f;
+ if (!pwm_core) {
+ pwm_core = mxs_add_pwm_core(iobase);
+ if (!pwm_core)
+ return NULL;
+ }
+
+ r = platform_get_resource(pwm_core, IORESOURCE_MEM, 0);
+ if (!r)
+ return NULL;
+
+ res.parent = r;
- return mxs_add_platform_device("mxs-pwm", id, &res, 1, NULL, 0);
+ return platform_device_register_resndata(&pwm_core->dev, "mxs-pwm",
+ id, &res, 1, NULL, 0);
}
--
1.7.5.3
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists