[U-Boot] [PATCH v3 01/11] sun6i: Add new p2wi controller driver

Ian Campbell ijc at hellion.org.uk
Sat Nov 8 11:14:28 CET 2014


On Fri, 2014-11-07 at 20:46 +0100, Hans de Goede wrote:
> From: Oliver Schinagl <oliver at schinagl.nl>
> 
> The A31 uses a new push-pull two wire interface, which features higher
> transfer speeds (upto 6 MHz) in theory. While the hardware can burst 8
> bytes each time, this driver will only see very little use and thus is
> limited to single byte transmission only.
> 
> Signed-off-by: Oliver Schinagl <oliver at schinagl.nl>
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>

Acked-by: Ian Campbell <ijc at hellion.org.uk>

One question:
> +int p2wi_change_to_p2wi_mode(u8 slave_addr, u8 ctrl_reg, u8 init_data)
> +{
> +	struct sunxi_p2wi_reg *p2wi = (struct sunxi_p2wi_reg *)SUNXI_P2WI_BASE;
> +	unsigned long tmo = timer_get_us() + 1000000;
> +
> +	writel(P2WI_PM_DEV_ADDR(slave_addr) |
> +	       P2WI_PM_CTRL_ADDR(ctrl_reg) |
> +	       P2WI_PM_INIT_DATA(init_data) |
> +	       P2WI_PM_INIT_SEND,
> +	       &p2wi->pm);
> +
> +	while ((readl(&p2wi->pm) & P2WI_PM_INIT_SEND)) {
> +		if (timer_get_us() > tmo)
> +			return -EFAULT;

You don't mean ETIME(DOUT) or something here, do you? EFAULT seems a bit
odd.

Ian.



More information about the U-Boot mailing list