All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.