|
@@ -11,6 +11,7 @@
|
|
|
*/
|
|
|
|
|
|
#include <linux/io.h>
|
|
|
+#include <linux/mfd/syscon.h>
|
|
|
#include <linux/module.h>
|
|
|
#include <linux/of.h>
|
|
|
#include <linux/of_address.h>
|
|
@@ -295,13 +296,17 @@ int berlin_pinctrl_probe(struct platform_device *pdev,
|
|
|
const struct berlin_pinctrl_desc *desc)
|
|
|
{
|
|
|
struct device *dev = &pdev->dev;
|
|
|
+ struct device_node *parent_np = of_get_parent(dev->of_node);
|
|
|
struct berlin_pinctrl *pctrl;
|
|
|
struct regmap *regmap;
|
|
|
int ret;
|
|
|
|
|
|
regmap = dev_get_regmap(&pdev->dev, NULL);
|
|
|
if (!regmap)
|
|
|
- return -ENODEV;
|
|
|
+ regmap = syscon_node_to_regmap(parent_np);
|
|
|
+ of_node_put(parent_np);
|
|
|
+ if (IS_ERR(regmap))
|
|
|
+ return PTR_ERR(regmap);
|
|
|
|
|
|
pctrl = devm_kzalloc(dev, sizeof(*pctrl), GFP_KERNEL);
|
|
|
if (!pctrl)
|