[PATCH v2] ARM: CSR: Adding CSR SiRFprimaII board support
Arnd Bergmann
arnd at arndb.de
Tue Jul 5 00:53:50 EST 2011
On Monday 04 July 2011, Barry Song wrote:
> Great idea. in fact there is only one reset bit for every device. So
> maybe the rstc.c can be
> ...
Yes, looks good.
> /*
> * Writing 1 to this bit resets corresponding block.
> * Writing 0 to this bit de-asserts reset signal of
> * the corresponding block.
> */
> writel(sirfsoc_rstc_base + (reset_bit / 32) * 4,
> readl(sirfsoc_rstc_base + (reset_bit / 32) * 4) | reset_bit);
> msleep(10);
> writel(sirfsoc_rstc_base + (reset_bit / 32) * 4,
> readl(sirfsoc_rstc_base + (reset_bit / 32) * 4) & ~reset_bit);
One remark about the msleep here: I find arbitrary wait periods a
bit unclean, and most hardware allows you to poll whether it's
done by reading back the register you have just written.
If your hardware can do that, you can replace the msleep() with a
single readl or a readl()/msleep(1) loop?
Arnd
More information about the devicetree-discuss
mailing list