summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorEugen Hristev <eugen.hristev@microchip.com>2021-01-05 10:54:01 +0200
committerEugen Hristev <eugen.hristev@microchip.com>2021-01-22 15:09:59 +0200
commit417eca09bf2b325bf0c6399c6b58a0692711542d (patch)
tree100ce756698c6e56350aa18c8ee77c521992ee20 /drivers
parent864a4144ba30f405b8a8e136cffb8b3ef424058d (diff)
downloadu-boot-417eca09bf2b325bf0c6399c6b58a0692711542d.tar.gz
u-boot-417eca09bf2b325bf0c6399c6b58a0692711542d.tar.xz
u-boot-417eca09bf2b325bf0c6399c6b58a0692711542d.zip
pinctrl: at91-pio4: implement drive strength support
Implement drive strength support, by preserving the same bindings as in Linux. Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/pinctrl/pinctrl-at91-pio4.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/pinctrl/pinctrl-at91-pio4.c b/drivers/pinctrl/pinctrl-at91-pio4.c
index eff43380df..3a5143adc3 100644
--- a/drivers/pinctrl/pinctrl-at91-pio4.c
+++ b/drivers/pinctrl/pinctrl-at91-pio4.c
@@ -34,6 +34,7 @@ static const struct pinconf_param conf_params[] = {
{ "input-schmitt-disable", PIN_CONFIG_INPUT_SCHMITT_ENABLE, 0 },
{ "input-schmitt-enable", PIN_CONFIG_INPUT_SCHMITT_ENABLE, 1 },
{ "input-debounce", PIN_CONFIG_INPUT_DEBOUNCE, 0 },
+ { "atmel,drive-strength", PIN_CONFIG_DRIVE_STRENGTH, 0 },
};
static u32 atmel_pinctrl_get_pinconf(struct udevice *config)
@@ -41,6 +42,7 @@ static u32 atmel_pinctrl_get_pinconf(struct udevice *config)
const struct pinconf_param *params;
u32 param, arg, conf = 0;
u32 i;
+ u32 val;
for (i = 0; i < ARRAY_SIZE(conf_params); i++) {
params = &conf_params[i];
@@ -82,6 +84,12 @@ static u32 atmel_pinctrl_get_pinconf(struct udevice *config)
conf |= ATMEL_PIO_IFSCEN_MASK;
}
break;
+ case PIN_CONFIG_DRIVE_STRENGTH:
+ dev_read_u32(config, params->property, &val);
+ conf &= (~ATMEL_PIO_DRVSTR_MASK);
+ conf |= (val << ATMEL_PIO_DRVSTR_OFFSET)
+ & ATMEL_PIO_DRVSTR_MASK;
+ break;
default:
printf("%s: Unsupported configuration parameter: %u\n",
__func__, param);