public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Nikita Kiryanov <nikita@compulab.co.il>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 08/11] dm: imx: Use gpio_request() to request GPIOs
Date: Thu, 02 Oct 2014 13:28:47 +0300	[thread overview]
Message-ID: <542D28DF.4040705@compulab.co.il> (raw)
In-Reply-To: <CAPnjgZ0v_YArrx+j6t4EZfgKSRxdKf5Xq_8PNnBgiyxLF31DhQ@mail.gmail.com>

Hi Simon,

On 01/10/14 18:22, Simon Glass wrote:
> Hi Nikita,
>
> On 1 October 2014 05:58, Nikita Kiryanov <nikita@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 <sjg@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?

Of course. A re-init is a common use case, not just for sata, and anyway
the reason for a failed re-init shouldn't be because sata code is
preventing itself from utilizing its own GPIOs.

> 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?

Yes.

>
>>
>> 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.

There are benefits to stashing (or a better word would be
'pre-claiming') it in board code. If a gpio is necessary for SPI to
work, it is not really meant to be used by other users, even if it's not
immediately requested on boot. Pre-claiming it in board code enforces
this.

> board_spi_cs_gpio() was added very recently in commit 155fa9af9.

Yes, that is one of my patches :)

> 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.

I would like to revisit this debate after the SPI driver is converted to
driver model. For now I favour the pre-claiming in board code approach.

>
>>
>> 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.

I was actually referring to a modified version of your patches that
touches cm_fx6 code. That is, take your changes as follows:
imx: Add error checking to setup_i2c() (sans the issd stuff)
dm: imx: Use gpio_request() to request GPIOs (just the i2c-mxv7.c stuff)
and add a new patch that refactors cm_fx6 init stuff.

>
>>
>> --
>> Regards,
>> Nikita Kiryanov
>
> Regards,
> Simon
>

-- 
Regards,
Nikita Kiryanov

  reply	other threads:[~2014-10-02 10:28 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-17 15:02 [U-Boot] [PATCH v3 0/11] dm: imx: Add driver model support for GPIO and serial on cm_fx6 Simon Glass
2014-09-17 15:02 ` [U-Boot] [PATCH v3 01/11] dm: linker_lists: Add a way to declare multiple objects Simon Glass
2014-09-17 15:02 ` [U-Boot] [PATCH v3 02/11] dm: core: Allow a list of devices to be declared in one step Simon Glass
2014-09-17 15:02 ` [U-Boot] [PATCH v3 03/11] dm: core: Allow device_bind() to used without CONFIG_OF_CONTROL Simon Glass
2014-09-26 18:59   ` Simon Glass
2014-09-17 15:02 ` [U-Boot] [PATCH v3 04/11] initcall: Display error number when an error occurs Simon Glass
2014-09-17 15:02 ` [U-Boot] [PATCH v3 05/11] dm: serial: Don't require device tree to configure a console Simon Glass
2014-09-26 19:00   ` Simon Glass
2014-09-17 15:02 ` [U-Boot] [PATCH v3 06/11] dm: serial: Put common code into separate functions Simon Glass
2014-09-17 15:02 ` [U-Boot] [PATCH v3 07/11] imx: Add error checking to setup_i2c() Simon Glass
2014-09-18  7:27   ` Igor Grinberg
2014-10-01  7:26   ` Stefano Babic
2014-10-01 11:31   ` Nikita Kiryanov
2014-10-01 15:25     ` Simon Glass
2014-09-17 15:02 ` [U-Boot] [PATCH v3 08/11] dm: imx: Use gpio_request() to request GPIOs Simon Glass
2014-09-18  7:33   ` Igor Grinberg
2014-10-01  7:28   ` Stefano Babic
2014-10-01 11:58   ` Nikita Kiryanov
2014-10-01 15:22     ` Simon Glass
2014-10-02 10:28       ` Nikita Kiryanov [this message]
2014-10-02 16:02         ` Simon Glass
2014-09-17 15:02 ` [U-Boot] [PATCH v3 09/11] dm: imx: gpio: Support driver model in MXC gpio driver Simon Glass
2014-09-18  7:35   ` Igor Grinberg
2014-09-18 13:49     ` Simon Glass
2014-09-17 15:02 ` [U-Boot] [PATCH v3 10/11] dm: imx: serial: Support driver model in the MXC serial driver Simon Glass
2014-09-17 15:02 ` [U-Boot] [PATCH v3 11/11] dm: imx: Move cm_fx6 to use driver model for serial and GPIO Simon Glass

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=542D28DF.4040705@compulab.co.il \
    --to=nikita@compulab.co.il \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox