[U-Boot] [PATCH] mx6: mx6qsabrelite/nitrogen6x: Remove incorrect setting of gpio CS signal

The number of gpio signal is packed inside CONFIG_SF_DEFAULT_CS macro (shifted and or'ed with chip select), so it's incorrect to pass that macro directly as an argument to gpio_direction_output() call.
Also, SPI driver sets the direction and initial value of a gpio, used as a chip select signal, before any actual activity happens on the bus.
So, it is safe to just remove the gpio_direction_output call, that works incorrectly, thus making no effect, anyway.
Signed-off-by: Andrew Gabbasov andrew_gabbasov@mentor.com --- board/boundary/nitrogen6x/nitrogen6x.c | 1 - board/freescale/mx6qsabrelite/mx6qsabrelite.c | 1 - 2 files changed, 2 deletions(-)
diff --git a/board/boundary/nitrogen6x/nitrogen6x.c b/board/boundary/nitrogen6x/nitrogen6x.c index cc071d6..735fd76 100644 --- a/board/boundary/nitrogen6x/nitrogen6x.c +++ b/board/boundary/nitrogen6x/nitrogen6x.c @@ -342,7 +342,6 @@ iomux_v3_cfg_t const ecspi1_pads[] = {
void setup_spi(void) { - gpio_direction_output(CONFIG_SF_DEFAULT_CS, 1); imx_iomux_v3_setup_multiple_pads(ecspi1_pads, ARRAY_SIZE(ecspi1_pads)); } diff --git a/board/freescale/mx6qsabrelite/mx6qsabrelite.c b/board/freescale/mx6qsabrelite/mx6qsabrelite.c index 9f9cac8..29815d7 100644 --- a/board/freescale/mx6qsabrelite/mx6qsabrelite.c +++ b/board/freescale/mx6qsabrelite/mx6qsabrelite.c @@ -312,7 +312,6 @@ iomux_v3_cfg_t const ecspi1_pads[] = {
void setup_spi(void) { - gpio_direction_output(CONFIG_SF_DEFAULT_CS, 1); imx_iomux_v3_setup_multiple_pads(ecspi1_pads, ARRAY_SIZE(ecspi1_pads)); }

On Thu, May 30, 2013 at 7:47 AM, Andrew Gabbasov <andrew_gabbasov@mentor.com
wrote:
The number of gpio signal is packed inside CONFIG_SF_DEFAULT_CS macro (shifted and or'ed with chip select), so it's incorrect to pass that macro directly as an argument to gpio_direction_output() call.
Also, SPI driver sets the direction and initial value of a gpio, used as a chip select signal, before any actual activity happens on the bus.
So, it is safe to just remove the gpio_direction_output call, that works incorrectly, thus making no effect, anyway.
Signed-off-by: Andrew Gabbasov andrew_gabbasov@mentor.com
board/boundary/nitrogen6x/nitrogen6x.c | 1 - board/freescale/mx6qsabrelite/mx6qsabrelite.c | 1 - 2 files changed, 2 deletions(-)
diff --git a/board/boundary/nitrogen6x/nitrogen6x.c b/board/boundary/nitrogen6x/nitrogen6x.c index cc071d6..735fd76 100644 --- a/board/boundary/nitrogen6x/nitrogen6x.c +++ b/board/boundary/nitrogen6x/nitrogen6x.c @@ -342,7 +342,6 @@ iomux_v3_cfg_t const ecspi1_pads[] = {
void setup_spi(void) {
gpio_direction_output(CONFIG_SF_DEFAULT_CS, 1); imx_iomux_v3_setup_multiple_pads(ecspi1_pads, ARRAY_SIZE(ecspi1_pads));
} diff --git a/board/freescale/mx6qsabrelite/mx6qsabrelite.c b/board/freescale/mx6qsabrelite/mx6qsabrelite.c index 9f9cac8..29815d7 100644 --- a/board/freescale/mx6qsabrelite/mx6qsabrelite.c +++ b/board/freescale/mx6qsabrelite/mx6qsabrelite.c @@ -312,7 +312,6 @@ iomux_v3_cfg_t const ecspi1_pads[] = {
void setup_spi(void) {
gpio_direction_output(CONFIG_SF_DEFAULT_CS, 1); imx_iomux_v3_setup_multiple_pads(ecspi1_pads, ARRAY_SIZE(ecspi1_pads));
}
1.7.10.4
Works for me for all Tegra builds, so:
Tested-by: Robert Winkler robert.winkler@boundarydevices.com
Tested on the Sabre Lite.
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

On 30.05.2013 16:47, Andrew Gabbasov wrote:
The number of gpio signal is packed inside CONFIG_SF_DEFAULT_CS macro (shifted and or'ed with chip select), so it's incorrect to pass that macro directly as an argument to gpio_direction_output() call.
Also, SPI driver sets the direction and initial value of a gpio, used as a chip select signal, before any actual activity happens on the bus.
So, it is safe to just remove the gpio_direction_output call, that works incorrectly, thus making no effect, anyway.
Signed-off-by: Andrew Gabbasov andrew_gabbasov@mentor.com
board/boundary/nitrogen6x/nitrogen6x.c | 1 - board/freescale/mx6qsabrelite/mx6qsabrelite.c | 1 - 2 files changed, 2 deletions(-)
diff --git a/board/boundary/nitrogen6x/nitrogen6x.c b/board/boundary/nitrogen6x/nitrogen6x.c index cc071d6..735fd76 100644 --- a/board/boundary/nitrogen6x/nitrogen6x.c +++ b/board/boundary/nitrogen6x/nitrogen6x.c @@ -342,7 +342,6 @@ iomux_v3_cfg_t const ecspi1_pads[] = {
void setup_spi(void) {
- gpio_direction_output(CONFIG_SF_DEFAULT_CS, 1); imx_iomux_v3_setup_multiple_pads(ecspi1_pads, ARRAY_SIZE(ecspi1_pads)); }
diff --git a/board/freescale/mx6qsabrelite/mx6qsabrelite.c b/board/freescale/mx6qsabrelite/mx6qsabrelite.c index 9f9cac8..29815d7 100644 --- a/board/freescale/mx6qsabrelite/mx6qsabrelite.c +++ b/board/freescale/mx6qsabrelite/mx6qsabrelite.c @@ -312,7 +312,6 @@ iomux_v3_cfg_t const ecspi1_pads[] = {
void setup_spi(void) {
- gpio_direction_output(CONFIG_SF_DEFAULT_CS, 1); imx_iomux_v3_setup_multiple_pads(ecspi1_pads, ARRAY_SIZE(ecspi1_pads)); }
Acked-by: Dirk Behme dirk.behme@de.bosch.com
Thanks
Dirk

On 30/05/2013 16:47, Andrew Gabbasov wrote:
The number of gpio signal is packed inside CONFIG_SF_DEFAULT_CS macro (shifted and or'ed with chip select), so it's incorrect to pass that macro directly as an argument to gpio_direction_output() call.
Also, SPI driver sets the direction and initial value of a gpio, used as a chip select signal, before any actual activity happens on the bus.
So, it is safe to just remove the gpio_direction_output call, that works incorrectly, thus making no effect, anyway.
Signed-off-by: Andrew Gabbasov andrew_gabbasov@mentor.com
Applied to u-boot-imx, thanks.
Best regards, Stefano Babic
participants (4)
-
Andrew Gabbasov
-
Dirk Behme
-
Robert Winkler
-
Stefano Babic