From a27659c7191e77d0a9397ec5d151c81648aaaeed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= Date: Tue, 15 Jun 2010 11:31:02 +0200 Subject: [PATCH] --- yaml --- r: 201625 b: refs/heads/master c: 253ff1fa6f8d24d46ef1b5aa68f6293b883f03d8 h: refs/heads/master i: 201623: 79a26433de5fb0f91c8d9b4d24734a8181439bb6 v: v3 --- [refs] | 2 +- trunk/arch/arm/plat-mxc/devices.c | 33 +++++++++++++++++++ .../plat-mxc/include/mach/devices-common.h | 15 +++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 trunk/arch/arm/plat-mxc/include/mach/devices-common.h diff --git a/[refs] b/[refs] index 3545d5a3748e..bb1e17912527 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9f72ffedc8409b9c9cbe17a9f66c2982baa4ff52 +refs/heads/master: 253ff1fa6f8d24d46ef1b5aa68f6293b883f03d8 diff --git a/trunk/arch/arm/plat-mxc/devices.c b/trunk/arch/arm/plat-mxc/devices.c index 56f2fb5cc456..735776d84956 100644 --- a/trunk/arch/arm/plat-mxc/devices.c +++ b/trunk/arch/arm/plat-mxc/devices.c @@ -18,6 +18,7 @@ #include #include +#include #include #include @@ -35,3 +36,35 @@ int __init mxc_register_device(struct platform_device *pdev, void *data) return ret; } +struct platform_device *__init imx_add_platform_device(const char *name, int id, + const struct resource *res, unsigned int num_resources, + const void *data, size_t size_data) +{ + int ret = -ENOMEM; + struct platform_device *pdev; + + pdev = platform_device_alloc(name, id); + if (!pdev) + goto err; + + if (res) { + ret = platform_device_add_resources(pdev, res, num_resources); + if (ret) + goto err; + } + + if (data) { + ret = platform_device_add_data(pdev, data, size_data); + if (ret) + goto err; + } + + ret = platform_device_add(pdev); + if (ret) { +err: + platform_device_put(pdev); + return ERR_PTR(ret); + } + + return pdev; +} diff --git a/trunk/arch/arm/plat-mxc/include/mach/devices-common.h b/trunk/arch/arm/plat-mxc/include/mach/devices-common.h new file mode 100644 index 000000000000..849d8ff7b17d --- /dev/null +++ b/trunk/arch/arm/plat-mxc/include/mach/devices-common.h @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2009-2010 Pengutronix + * Uwe Kleine-Koenig + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License version 2 as published by the + * Free Software Foundation. + */ +#include +#include +#include + +struct platform_device *imx_add_platform_device(const char *name, int id, + const struct resource *res, unsigned int num_resources, + const void *data, size_t size_data);