diff options
author | Eugen Hristev <eugen.hristev@microchip.com> | 2021-01-05 11:54:01 +0300 |
---|---|---|
committer | Eugen Hristev <eugen.hristev@microchip.com> | 2021-01-22 16:09:59 +0300 |
commit | 417eca09bf2b325bf0c6399c6b58a0692711542d (patch) | |
tree | 100ce756698c6e56350aa18c8ee77c521992ee20 /drivers/pinctrl | |
parent | 864a4144ba30f405b8a8e136cffb8b3ef424058d (diff) | |
download | u-boot-417eca09bf2b325bf0c6399c6b58a0692711542d.tar.xz |
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/pinctrl')
-rw-r--r-- | drivers/pinctrl/pinctrl-at91-pio4.c | 8 |
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); |