mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 05:50:17 +00:00 
			
		
		
		
	pinctrl: stm32: correct management pin display of OTYPE
OTYPE can be used for output or for alternate function to select
PP = push-pull or OP = open-drain mode, according reference manual
(Table 81. Port bit configuration table).
This patch removes this indication for input pins and adds it
for AF and output pins for pinmux command output.
Fixes: b305dbc08b08 ("pinctrl: stm32: display bias information for all pins")
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
			
			
This commit is contained in:
		
							parent
							
								
									ca5cc312d4
								
							
						
					
					
						commit
						1da426919d
					
				@ -56,7 +56,7 @@ static const char * const pinmux_bias[] = {
 | 
			
		||||
	[STM32_GPIO_PUPD_DOWN] = "pull-down",
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const char * const pinmux_input[] = {
 | 
			
		||||
static const char * const pinmux_otype[] = {
 | 
			
		||||
	[STM32_GPIO_OTYPE_PP] = "push-pull",
 | 
			
		||||
	[STM32_GPIO_OTYPE_OD] = "open-drain",
 | 
			
		||||
};
 | 
			
		||||
@ -216,7 +216,7 @@ static int stm32_pinctrl_get_pin_muxing(struct udevice *dev,
 | 
			
		||||
		selector, gpio_idx, mode);
 | 
			
		||||
	priv = dev_get_priv(gpio_dev);
 | 
			
		||||
	pupd = (readl(&priv->regs->pupdr) >> (gpio_idx * 2)) & PUPD_MASK;
 | 
			
		||||
 | 
			
		||||
	otype = (readl(&priv->regs->otyper) >> gpio_idx) & OTYPE_MSK;
 | 
			
		||||
 | 
			
		||||
	switch (mode) {
 | 
			
		||||
	case GPIOF_UNKNOWN:
 | 
			
		||||
@ -227,18 +227,16 @@ static int stm32_pinctrl_get_pin_muxing(struct udevice *dev,
 | 
			
		||||
		break;
 | 
			
		||||
	case GPIOF_FUNC:
 | 
			
		||||
		af_num = stm32_pinctrl_get_af(gpio_dev, gpio_idx);
 | 
			
		||||
		snprintf(buf, size, "%s %d %s", pinmux_mode[mode], af_num,
 | 
			
		||||
			 pinmux_bias[pupd]);
 | 
			
		||||
		snprintf(buf, size, "%s %d %s %s", pinmux_mode[mode], af_num,
 | 
			
		||||
			 pinmux_otype[otype], pinmux_bias[pupd]);
 | 
			
		||||
		break;
 | 
			
		||||
	case GPIOF_OUTPUT:
 | 
			
		||||
		snprintf(buf, size, "%s %s %s",
 | 
			
		||||
			 pinmux_mode[mode], pinmux_bias[pupd],
 | 
			
		||||
			 label ? label : "");
 | 
			
		||||
		snprintf(buf, size, "%s %s %s %s",
 | 
			
		||||
			 pinmux_mode[mode], pinmux_otype[otype],
 | 
			
		||||
			 pinmux_bias[pupd], label ? label : "");
 | 
			
		||||
		break;
 | 
			
		||||
	case GPIOF_INPUT:
 | 
			
		||||
		otype = (readl(&priv->regs->otyper) >> gpio_idx) & OTYPE_MSK;
 | 
			
		||||
		snprintf(buf, size, "%s %s %s %s",
 | 
			
		||||
			 pinmux_mode[mode], pinmux_input[otype],
 | 
			
		||||
		snprintf(buf, size, "%s %s %s", pinmux_mode[mode],
 | 
			
		||||
			 pinmux_bias[pupd], label ? label : "");
 | 
			
		||||
		break;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user