mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-18 13:11:31 +00:00
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>
This commit is contained in:
parent
864a4144ba
commit
417eca09bf
3 changed files with 13 additions and 0 deletions
|
@ -52,6 +52,7 @@ struct atmel_pio4_port {
|
|||
#define ATMEL_PIO_DRVSTR_LO (1 << 16)
|
||||
#define ATMEL_PIO_DRVSTR_ME (2 << 16)
|
||||
#define ATMEL_PIO_DRVSTR_HI (3 << 16)
|
||||
#define ATMEL_PIO_DRVSTR_OFFSET 16
|
||||
#define ATMEL_PIO_CFGR_EVTSEL_MASK GENMASK(26, 24)
|
||||
#define ATMEL_PIO_CFGR_EVTSEL_FALLING (0 << 24)
|
||||
#define ATMEL_PIO_CFGR_EVTSEL_RISING (1 << 24)
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -42,4 +42,8 @@
|
|||
#define AT91_PERIPH_C 3
|
||||
#define AT91_PERIPH_D 4
|
||||
|
||||
#define ATMEL_PIO_DRVSTR_LO 1
|
||||
#define ATMEL_PIO_DRVSTR_ME 2
|
||||
#define ATMEL_PIO_DRVSTR_HI 3
|
||||
|
||||
#endif /* __DT_BINDINGS_AT91_PINCTRL_H__ */
|
||||
|
|
Loading…
Add table
Reference in a new issue