spi/imx: Fix spi-imx when the hardware SPI chipselects are used
commit
22a85e4cd51 (spi/imx: add device tree probe support) broke spi-imx usage
when the SPI chipselect is the one internal to the controller.
On a mx31pdk board the following error is seen:
Registering mxc_nand as whole device
------------[ cut here ]------------
WARNING: at drivers/gpio/gpiolib.c:101 gpio_ensure_requested+0x4c/0xf4()
autorequest GPIO-0
Modules linked in:
[<
c0014410>] (unwind_backtrace+0x0/0xf4) from [<
c0025754>] (warn_slowpath_common+0x4c/0x64)
[<
c0025754>] (warn_slowpath_common+0x4c/0x64) from [<
c0025800>] (warn_slowpath_fmt+0x30/0x40)
[<
c0025800>] (warn_slowpath_fmt+0x30/0x40) from [<
c0198688>] (gpio_ensure_requested+0x4c/0xf4)
[<
c0198688>] (gpio_ensure_requested+0x4c/0xf4) from [<
c01988c8>] (gpio_direction_output+0xa0/0x138)
[<
c01988c8>] (gpio_direction_output+0xa0/0x138) from [<
c01ed198>] (spi_imx_setup+0x38/0x4c)
[<
c01ed198>] (spi_imx_setup+0x38/0x4c) from [<
c01eb5d0>] (spi_setup+0x38/0x50)
[<
c01eb5d0>] (spi_setup+0x38/0x50) from [<
c01eb85c>] (spi_add_device+0x94/0x124)
[<
c01eb85c>] (spi_add_device+0x94/0x124) from [<
c01eb960>] (spi_new_device+0x74/0xac)
[<
c01eb960>] (spi_new_device+0x74/0xac) from [<
c01eb9b8>] (spi_match_master_to_boardinfo+0x20/0x40)
[<
c01eb9b8>] (spi_match_master_to_boardinfo+0x20/0x40) from [<
c01eba88>] (spi_register_master+0xb0/0x104)
[<
c01eba88>] (spi_register_master+0xb0/0x104) from [<
c01ec0b4>] (spi_bitbang_start+0x104/0x17c)
[<
c01ec0b4>] (spi_bitbang_start+0x104/0x17c) from [<
c02c2c4c>] (spi_imx_probe+0x2fc/0x404)
[<
c02c2c4c>] (spi_imx_probe+0x2fc/0x404) from [<
c01c2498>] (platform_drv_probe+0x18/0x1c)
[<
c01c2498>] (platform_drv_probe+0x18/0x1c) from [<
c01c1058>] (driver_probe_device+0x78/0x174)
[<
c01c1058>] (driver_probe_device+0x78/0x174) from [<
c01c11e0>] (__driver_attach+0x8c/0x90)
[<
c01c11e0>] (__driver_attach+0x8c/0x90) from [<
c01c0860>] (bus_for_each_dev+0x60/0x8c)
[<
c01c0860>] (bus_for_each_dev+0x60/0x8c) from [<
c01c0088>] (bus_add_driver+0xa0/0x288)
[<
c01c0088>] (bus_add_driver+0xa0/0x288) from [<
c01c179c>] (driver_register+0x78/0x18c)
[<
c01c179c>] (driver_register+0x78/0x18c) from [<
c0008490>] (do_one_initcall+0x34/0x178)
[<
c0008490>] (do_one_initcall+0x34/0x178) from [<
c03a5204>] (kernel_init+0x74/0x118)
[<
c03a5204>] (kernel_init+0x74/0x118) from [<
c000f65c>] (kernel_thread_exit+0x0/0x8)
---[ end trace
759f924b30fd5a44 ]---
Fix this issue by using the original chip select logic and make spi-imx to work again.
Tested on a mx31pdk that uses the hardware SPI chipselect pins and also
on a mx27pdk that uses GPIO as SPI chipselect.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>