70 lines
2.1 KiB
Diff
70 lines
2.1 KiB
Diff
|
From 4d215cabc784990df11fbcca7af70adf53c9ff17 Mon Sep 17 00:00:00 2001
|
||
|
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
|
||
|
Date: Mon, 30 Nov 2015 17:11:40 +0200
|
||
|
Subject: [PATCH 12/16] mfd: core: propagate device properties to sub devices
|
||
|
drivers
|
||
|
|
||
|
In the similar way like we do for the platform data we propagate the device
|
||
|
properties. For example, in case of Intel LPSS drivers we may provide a
|
||
|
specific property to tell the actual device driver an additional information
|
||
|
such as platform name.
|
||
|
|
||
|
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
|
||
|
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
|
||
|
---
|
||
|
drivers/mfd/mfd-core.c | 7 +++++++
|
||
|
include/linux/mfd/core.h | 5 +++++
|
||
|
2 files changed, 12 insertions(+)
|
||
|
|
||
|
diff --git a/drivers/mfd/mfd-core.c b/drivers/mfd/mfd-core.c
|
||
|
index 60b60dc..88bd1b1 100644
|
||
|
--- a/drivers/mfd/mfd-core.c
|
||
|
+++ b/drivers/mfd/mfd-core.c
|
||
|
@@ -14,6 +14,7 @@
|
||
|
#include <linux/kernel.h>
|
||
|
#include <linux/platform_device.h>
|
||
|
#include <linux/acpi.h>
|
||
|
+#include <linux/property.h>
|
||
|
#include <linux/mfd/core.h>
|
||
|
#include <linux/pm_runtime.h>
|
||
|
#include <linux/slab.h>
|
||
|
@@ -192,6 +193,12 @@ static int mfd_add_device(struct device *parent, int id,
|
||
|
goto fail_alias;
|
||
|
}
|
||
|
|
||
|
+ if (cell->pset) {
|
||
|
+ ret = platform_device_add_properties(pdev, cell->pset);
|
||
|
+ if (ret)
|
||
|
+ goto fail_alias;
|
||
|
+ }
|
||
|
+
|
||
|
ret = mfd_platform_add_cell(pdev, cell, usage_count);
|
||
|
if (ret)
|
||
|
goto fail_alias;
|
||
|
diff --git a/include/linux/mfd/core.h b/include/linux/mfd/core.h
|
||
|
index 27dac3f..bc6f7e0 100644
|
||
|
--- a/include/linux/mfd/core.h
|
||
|
+++ b/include/linux/mfd/core.h
|
||
|
@@ -17,6 +17,7 @@
|
||
|
#include <linux/platform_device.h>
|
||
|
|
||
|
struct irq_domain;
|
||
|
+struct property_set;
|
||
|
|
||
|
/* Matches ACPI PNP id, either _HID or _CID, or ACPI _ADR */
|
||
|
struct mfd_cell_acpi_match {
|
||
|
@@ -44,6 +45,10 @@ struct mfd_cell {
|
||
|
/* platform data passed to the sub devices drivers */
|
||
|
void *platform_data;
|
||
|
size_t pdata_size;
|
||
|
+
|
||
|
+ /* device properties passed to the sub devices drivers */
|
||
|
+ const struct property_set *pset;
|
||
|
+
|
||
|
/*
|
||
|
* Device Tree compatible string
|
||
|
* See: Documentation/devicetree/usage-model.txt Chapter 2.2 for details
|
||
|
--
|
||
|
2.5.0
|
||
|
|