Hi Nikita, On 1 October 2014 05:58, Nikita Kiryanov <nik...@compulab.co.il> wrote: > Hi Simon, > > On 17/09/14 18:02, Simon Glass wrote: >> >> GPIOs should be requested before use. Without this, driver model will not >> permit the GPIO to be used. >> >> Signed-off-by: Simon Glass <s...@chromium.org> > > > This patch introduces a bunch of errors (once the driver model stuff is > turned on), all related to the gpios never being freed, but requested > anew when reinitializing subsystems. > > The errors are: > > CM-FX6 # sata init > Warning: iSSD setup failed! > AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode > flags: ncq stag pm led clo only pmp pio slum part > SATA Device Info: > S/N: 123900127157 > Product model number: SanDisk SSD i100 8GB > Firmware version: 11.56.00 > Capacity: 15649200 sectors
Is it correct to init something twice? It has already been done when U-Boot boots I think. If it is, then are you thinking of changing cm_fx6_setup_issd() to cope with that? > > CM-FX6 # usb start > (Re)start USB... > USB0: USB OTG pwr gpio request failed: -16 > USB OTG pwr gpio request failed: -16 > USB EHCI 1.00 > scanning bus 0 for devices... 2 USB Device(s) found > USB1: USB hub rst gpio request failed: -16 > USB hub rst gpio request failed: -16 > USB EHCI 1.00 > scanning bus 1 for devices... 6 USB Device(s) found > scanning usb for storage devices... max USB Storage Device reached: 5 > stopping > 5 Storage Device(s) found > > CM-FX6 # sf probe > mxc_spi: cannot setup gpio -16 > SF: Failed to set up slave > Failed to initialize SPI flash at 0:0 I took at look at how this works for SPI. The approach of calling a board function to find out the GPIO should go away with driver model - we can use device tree, or platform data if that is not yet available. Also if you change the board code to 'stash' the GPIO and not request it a second time, you will need to do that in every board. It seems better to me to make this change in the driver, at least for SPI. board_spi_cs_gpio() was added very recently in commit 155fa9af9. If you change it so that setup_cs_gpio() remembers the GPIO after calling board_spi_cs_gpio() then we can avoid passing the problem on to boards. > > CM-FX6 # saveenv > Saving Environment to SPI Flash... > mxc_spi: cannot setup gpio -16 > SF: Failed to set up slave > *** Warning - spi_flash_probe() failed, using default environment Same issue. > > I am going to submit a modified version of the cm_fx6 patches to address > these problems. I think those are already merged - I based my patches on your cm_fx6 patches and there were already in mainline. > > -- > Regards, > Nikita Kiryanov Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot