[U-Boot] [PATCH] pci: mx6: Implement reset callback

Marek Vasut marex at denx.de
Tue Jan 28 20:32:17 CET 2014


On Tuesday, January 28, 2014 at 04:06:12 PM, Stefano Babic wrote:
> Hi Marek,
> 
> On 24/01/2014 16:25, Marek Vasut wrote:
> > Add a callback so that a board can implement it's own specific routine to
> > toggle the port's nRESET line.
> > 
> > Signed-off-by: Marek Vasut <marex at denx.de>
> > Cc: Stefano Babic <sbabic at denx.de>
> > ---
> > 
> >  drivers/pci/pcie_imx.c | 12 +++++++++---
> >  1 file changed, 9 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/pci/pcie_imx.c b/drivers/pci/pcie_imx.c
> > index 0a74867..b554075 100644
> > --- a/drivers/pci/pcie_imx.c
> > +++ b/drivers/pci/pcie_imx.c
> > @@ -450,6 +450,13 @@ static int imx6_pcie_init_phy(void)
> > 
> >  	return 0;
> >  
> >  }
> > 
> > +__weak int imx6_pcie_toggle_reset(void)
> > +{
> > +	/* This function ought to be overridden ! */
> > +	puts("WARNING: Make sure the PCIe nRESET line is connected!\n");
> > +	return 0;
> > +}
> > +
> 
> Just to know: I assume that the nRESET is implemented with a GPIO.

Yes, that's how it is on all designs I saw thus far (but see below).

> I am
> expecting then in the board files a diffusion of imx6_pcie_toggle_reset,
> where the oinly difference is the number of GPIO.

The problem is, there are boards with no nRESET connected to the slot. These 
boards are broken, thus will print the warning message.

> What about to define the GPIO in the board configuration file instead of
> defininig the function as __weak ?

I am hell-bent on printing the warning message there btw.. Such broken designs 
should be caught early on.

> Something like
> 
> imx6_pcie_toggle_reset(int nReset)
> {
> ..
> }
> 
> static int imx6_pcie_deassert_core_reset(void)
> {
> 
> ...
> 	imx6_pcie_toggle_reset(CONFIG_IMX6_PCIE_RESET);
> 
> }
> 
> Best regards,
> Stefano Babic

Best regards,
Marek Vasut


More information about the U-Boot mailing list