diff mbox series

[3/5] pinctrl: bcm283x: Read address from DT in ofdata_to_platdata

Message ID 20200527064140.21391-3-ovidiu.panait@windriver.com
State Accepted
Commit e020c07a020000d9b9cbba8ea56109b37c3926c6
Headers show
Series [1/5] dm: core: Fix devfdt_get_addr_ptr return value | expand

Commit Message

Ovidiu Panait May 27, 2020, 6:41 a.m. UTC
Factor out reading IP base address to ofdata_to_platdata function, which
is designed for this purpose. Also, drop the dev->priv NULL check, since
this is already done by the dm core when allocating space using
priv_auto_alloc_size feature. (in drivers/core/device.c ->
device_ofdata_to_platdata).

Signed-off-by: Ovidiu Panait <ovidiu.panait at windriver.com>
---

 drivers/pinctrl/broadcom/pinctrl-bcm283x.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)
diff mbox series

Patch

diff --git a/drivers/pinctrl/broadcom/pinctrl-bcm283x.c b/drivers/pinctrl/broadcom/pinctrl-bcm283x.c
index 8bf7916627..9ab0baee33 100644
--- a/drivers/pinctrl/broadcom/pinctrl-bcm283x.c
+++ b/drivers/pinctrl/broadcom/pinctrl-bcm283x.c
@@ -104,17 +104,11 @@  static const struct udevice_id bcm2835_pinctrl_id[] = {
 	{}
 };
 
-int bcm283x_pinctl_probe(struct udevice *dev)
+int bcm283x_pinctl_ofdata_to_platdata(struct udevice *dev)
 {
 	struct bcm283x_pinctrl_priv *priv;
-	int ret;
-	struct udevice *pdev;
 
 	priv = dev_get_priv(dev);
-	if (!priv) {
-		debug("%s: Failed to get private\n", __func__);
-		return -EINVAL;
-	}
 
 	priv->base_reg = dev_read_addr_ptr(dev);
 	if (priv->base_reg == (void *)FDT_ADDR_T_NONE) {
@@ -122,6 +116,14 @@  int bcm283x_pinctl_probe(struct udevice *dev)
 		return -EINVAL;
 	}
 
+	return 0;
+}
+
+int bcm283x_pinctl_probe(struct udevice *dev)
+{
+	int ret;
+	struct udevice *pdev;
+
 	/* Create GPIO device as well */
 	ret = device_bind(dev, lists_driver_lookup_name("gpio_bcm2835"),
 			  "gpio_bcm2835", NULL, dev_of_offset(dev), &pdev);
@@ -147,6 +149,7 @@  U_BOOT_DRIVER(pinctrl_bcm283x) = {
 	.name		= "bcm283x_pinctrl",
 	.id		= UCLASS_PINCTRL,
 	.of_match	= of_match_ptr(bcm2835_pinctrl_id),
+	.ofdata_to_platdata = bcm283x_pinctl_ofdata_to_platdata,
 	.priv_auto_alloc_size = sizeof(struct bcm283x_pinctrl_priv),
 	.ops		= &bcm283x_pinctrl_ops,
 	.probe		= bcm283x_pinctl_probe,