|
@@ -18,6 +18,7 @@
|
|
|
#include <linux/of.h>
|
|
|
#include <linux/of_address.h>
|
|
|
#include <linux/of_platform.h>
|
|
|
+#include <linux/platform_data/syscon.h>
|
|
|
#include <linux/platform_device.h>
|
|
|
#include <linux/regmap.h>
|
|
|
#include <linux/mfd/syscon.h>
|
|
@@ -119,6 +120,7 @@ static struct regmap_config syscon_regmap_config = {
|
|
|
static int syscon_probe(struct platform_device *pdev)
|
|
|
{
|
|
|
struct device *dev = &pdev->dev;
|
|
|
+ struct syscon_platform_data *pdata = dev_get_platdata(dev);
|
|
|
struct syscon *syscon;
|
|
|
struct resource *res;
|
|
|
void __iomem *base;
|
|
@@ -136,6 +138,8 @@ static int syscon_probe(struct platform_device *pdev)
|
|
|
return -ENOMEM;
|
|
|
|
|
|
syscon_regmap_config.max_register = res->end - res->start - 3;
|
|
|
+ if (pdata)
|
|
|
+ syscon_regmap_config.name = pdata->label;
|
|
|
syscon->regmap = devm_regmap_init_mmio(dev, base,
|
|
|
&syscon_regmap_config);
|
|
|
if (IS_ERR(syscon->regmap)) {
|