forked from Minki/linux
mfd: atmel-hlcdc: Return in case of error
For HLCDC timing engine configurations bit ATMEL_HLCDC_SIP of ATMEL_HLCDC_SR needs to be polled before applying new config. In case of timeout there is no indicator about this, so, return in case of timeout and also print a message about this. Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
This commit is contained in:
parent
4b1ca3a404
commit
10f9167664
@ -40,10 +40,17 @@ static int regmap_atmel_hlcdc_reg_write(void *context, unsigned int reg,
|
||||
|
||||
if (reg <= ATMEL_HLCDC_DIS) {
|
||||
u32 status;
|
||||
int ret;
|
||||
|
||||
readl_poll_timeout_atomic(hregmap->regs + ATMEL_HLCDC_SR,
|
||||
status, !(status & ATMEL_HLCDC_SIP),
|
||||
1, 100);
|
||||
ret = readl_poll_timeout_atomic(hregmap->regs + ATMEL_HLCDC_SR,
|
||||
status,
|
||||
!(status & ATMEL_HLCDC_SIP),
|
||||
1, 100);
|
||||
if (ret) {
|
||||
dev_err(hregmap->dev,
|
||||
"Timeout! Clock domain synchronization is in progress!\n");
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
writel(val, hregmap->regs + reg);
|
||||
|
Loading…
Reference in New Issue
Block a user