From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bhuvanchandra DV Date: Tue, 9 Jun 2015 19:23:21 +0530 Subject: [U-Boot] [PATCH RFT] gpio: vybrid: Fix up setting output value in vybrid_gpio_direction_output In-Reply-To: References: <1433841302.4157.1.camel@ingics.com> <5576E2EF.6080400@toradex.com> Message-ID: <5576EFD1.50504@toradex.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 06/09/2015 06:49 PM, Axel Lin wrote: > 2015-06-09 20:58 GMT+08:00 Bhuvanchandra DV : >> Hello Axel, >> >> On 06/09/2015 02:45 PM, Axel Lin wrote: >>> >>> Pass correct gpio argument to gpio_set_value(). >>> The calcualation of gpio = gpio + (gpios->chip * VYBRID_GPIO_COUNT); >>> is required for calling imx_iomux_gpio_* functions so move them close to >>> improve readability. >>> >>> Signed-off-by: Axel Lin >>> --- >>> Hi Bhuvanchandra, >>> I think current code does not pass correct gpio argument to >>> gpio_set_value() >>> in vybrid_gpio_direction_output(). It only works if gpios->chip is 0. >>> I don't have the h/w to test, can you double check this? >> >> gpio_set_value() needs the actual gpio number to be passed not the gpio >> offset of gpio chip. > > Are you sure? > Please take a look at gpio_get_value()/gpio_set_value() implement in > drivers/gpio/gpio-uclass.c. Yes, Toggling GPIO_34 => GPIO_01 2nd instance, with debug prints: Colibri VFxx # gpio toggle 34 DEBUG: gpio_to_device: gpio: 34 DEBUG: gpio_to_device: desc_offset: 2 DEBUG: gpio_to_device: gpio: 34 DEBUG: gpio_to_device: desc_offset: 2 DEBUG: gpio_to_device: gpio: 34 DEBUG: gpio_to_device: desc_offset: 2 DEBUG: vybrid_gpio_direction_output: gpio(before calculation): 2 DEBUG: vybrid_gpio_direction_output: gpio(after calculation): 34 DEBUG: gpio_set_value: gpio: 34 DEBUG: gpio_to_device: gpio: 34 DEBUG: gpio_to_device: desc_offset: 2 DEBUG: dm_gpio_set_value: gpio_offset: 2 gpio: pin 34 (gpio 34) value is 0 DEBUG: gpio_to_device: gpio: 34 DEBUG: gpio_to_device: desc_offset: 2 Colibri VFxx # gpio toggle 34 DEBUG: gpio_to_device: gpio: 34 DEBUG: gpio_to_device: desc_offset: 2 DEBUG: gpio_to_device: gpio: 34 DEBUG: gpio_to_device: desc_offset: 2 DEBUG: gpio_to_device: gpio: 34 DEBUG: gpio_to_device: desc_offset: 2 DEBUG: vybrid_gpio_direction_output: gpio(before calculation): 2 DEBUG: vybrid_gpio_direction_output: gpio(after calculation): 34 DEBUG: gpio_set_value: gpio: 34 DEBUG: gpio_to_device: gpio: 34 DEBUG: gpio_to_device: desc_offset: 2 DEBUG: dm_gpio_set_value: desc_offset: 2 gpio: pin 34 (gpio 34) value is 1 DEBUG: gpio_to_device: gpio: 34 DEBUG: gpio_to_device: desc_offset: 2 > Best regards, Bhuvan