[U-Boot] [PATCH v5 5/5] usb: lpc32xx: add host USB driver

Marek Vasut marex at denx.de
Thu Aug 6 01:19:06 CEST 2015


On Wednesday, August 05, 2015 at 11:59:39 PM, Vladimir Zapolskiy wrote:
> Hi Sylvain,

Hi!

[...]

> > +static struct otg_regs *otg = (struct otg_regs *)USB_BASE;
> > +static struct clk_pm_regs *clk_pwr = (struct clk_pm_regs *)CLK_PM_BASE;
> > +
> > +static int wait_for_bit(void *reg, const u32 mask, bool set)
> 
> Note, "set" is always 1 in the driver code.

Ideally, I'd like to see a generic implementation of this wait_for_bit(),
but I don't want to load this unto Slemieux.

> > +{
> > +	u32 val;
> > +	unsigned long start = get_timer(0);
> > +
> > +	while (1) {
> > +		val = readl(reg);
> > +		if (!set)
> > +			val = ~val;
> > +
> > +		if ((val & mask) == mask)
> > +			return 0;
> > +
> > +		if (get_timer(start) > 1000)
> 
> Please add a macro replacing 1000, or use CONFIG_SYS_HZ.

Or add a parameter, so this looks something like:

if (get_timer(start) > CONFIG_HZ * timeout)


> > +			break;
> > +
> > +		udelay(1);
> > +	}
> > +
> > +	debug("%s: Timeout (reg=%p mask=%08x wait_set=%i)\n",
> > +	      __func__, reg, mask, set);
> > +
> > +	return -ETIMEDOUT;
> > +}
> > +
> > +static int isp1301_set_value(int reg, u8 value)
> > +{
> > +	return i2c_write(ISP1301_I2C_ADDR, reg, 1, &value, 1);
> > +}

[...]


More information about the U-Boot mailing list