diff mbox series

[v2,07/12] pinctrl: single: change function mask default value

Message ID 20210128222501.31943-8-dariobin@libero.it
State Changes Requested
Delegated to: Lokesh Vutla
Headers show
Series Add support for pinmux status command on beaglebone | expand

Commit Message

Dario Binacchi Jan. 28, 2021, 10:24 p.m. UTC
The patch is inspired by more recent versions of the Linux driver.
Replacing the default value 0xffffffff of the function mask with 0 is
certainly more conservative in case the "pinctrl-single,function-mask"
DT property is missing.

Signed-off-by: Dario Binacchi <dariobin@libero.it>
---

(no changes since v1)

 drivers/pinctrl/pinctrl-single.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

Comments

Simon Glass Feb. 1, 2021, 8:44 p.m. UTC | #1
On Thu, 28 Jan 2021 at 15:25, Dario Binacchi <dariobin@libero.it> wrote:
>
> The patch is inspired by more recent versions of the Linux driver.
> Replacing the default value 0xffffffff of the function mask with 0 is
> certainly more conservative in case the "pinctrl-single,function-mask"
> DT property is missing.
>
> Signed-off-by: Dario Binacchi <dariobin@libero.it>
> ---
>
> (no changes since v1)
>
>  drivers/pinctrl/pinctrl-single.c | 12 ++++++++++--
>  1 file changed, 10 insertions(+), 2 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>
diff mbox series

Patch

diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c
index 5ade108875..630a6c08b8 100644
--- a/drivers/pinctrl/pinctrl-single.c
+++ b/drivers/pinctrl/pinctrl-single.c
@@ -79,6 +79,10 @@  static int single_configure_pins(struct udevice *dev,
 	phys_addr_t reg;
 	u32 offset, val;
 
+	/* If function mask is null, needn't enable it. */
+	if (!pdata->mask)
+		return 0;
+
 	for (n = 0; n < count; n++, pins++) {
 		offset = fdt32_to_cpu(pins->reg);
 		if (offset < 0 || offset > pdata->offset) {
@@ -207,8 +211,12 @@  static int single_of_to_plat(struct udevice *dev)
 	}
 	pdata->base = addr;
 
-	pdata->mask = dev_read_u32_default(dev, "pinctrl-single,function-mask",
-					   0xffffffff);
+	ret = dev_read_u32(dev, "pinctrl-single,function-mask", &pdata->mask);
+	if (ret) {
+		pdata->mask = 0;
+		dev_warn(dev, "missing function register mask\n");
+	}
+
 	pdata->bits_per_mux = dev_read_bool(dev, "pinctrl-single,bit-per-mux");
 
 	return 0;