reset: sti: Provide ops .status() call-back
Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
This commit is contained in:
Родитель
1a539387b7
Коммит
9a4cc897fd
|
@ -110,10 +110,33 @@ static int syscfg_reset_dev(struct reset_controller_dev *rcdev,
|
|||
return syscfg_reset_deassert(rcdev, idx);
|
||||
}
|
||||
|
||||
static int syscfg_reset_status(struct reset_controller_dev *rcdev,
|
||||
unsigned long idx)
|
||||
{
|
||||
struct syscfg_reset_controller *rst = to_syscfg_reset_controller(rcdev);
|
||||
const struct syscfg_reset_channel *ch;
|
||||
u32 ret_val = 0;
|
||||
int err;
|
||||
|
||||
if (idx >= rcdev->nr_resets)
|
||||
return -EINVAL;
|
||||
|
||||
ch = &rst->channels[idx];
|
||||
if (ch->ack)
|
||||
err = regmap_field_read(ch->ack, &ret_val);
|
||||
else
|
||||
err = regmap_field_read(ch->reset, &ret_val);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
return rst->active_low ? !ret_val : !!ret_val;
|
||||
}
|
||||
|
||||
static struct reset_control_ops syscfg_reset_ops = {
|
||||
.reset = syscfg_reset_dev,
|
||||
.assert = syscfg_reset_assert,
|
||||
.deassert = syscfg_reset_deassert,
|
||||
.status = syscfg_reset_status,
|
||||
};
|
||||
|
||||
static int syscfg_reset_controller_register(struct device *dev,
|
||||
|
|
Загрузка…
Ссылка в новой задаче