summaryrefslogtreecommitdiff
path: root/drivers/pinctrl
diff options
context:
space:
mode:
authorDario Binacchi <dariobin@libero.it>2021-04-11 10:39:45 +0300
committerLokesh Vutla <lokeshvutla@ti.com>2021-04-12 08:47:15 +0300
commitd85b93e80bb285fd380a8bcb4c4b118d4b5f7b77 (patch)
tree293349d119ee4c46945d2632d40181499ed8289e /drivers/pinctrl
parent971c64a452f6220f3a9c5f9fc77c4cb1928c38e4 (diff)
downloadu-boot-d85b93e80bb285fd380a8bcb4c4b118d4b5f7b77.tar.xz
pinctrl: single: change function mask default value
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> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/pinctrl')
-rw-r--r--drivers/pinctrl/pinctrl-single.c12
1 files changed, 10 insertions, 2 deletions
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;