Commit f200890f authored by Dinh Nguyen's avatar Dinh Nguyen Committed by Philipp Zabel
Browse files

reset: add socfpga_reset_status



Populate the reset_status callback for SOCFPGA.

Signed-off-by: default avatarAlan Tull <atull@opensource.altera.com>
Signed-off-by: default avatarDinh Nguyen <dinguyen@opensource.altera.com>
Signed-off-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
parent 1a5f77d3
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -76,9 +76,24 @@ static int socfpga_reset_deassert(struct reset_controller_dev *rcdev,
	return 0;
}

static int socfpga_reset_status(struct reset_controller_dev *rcdev,
				unsigned long id)
{
	struct socfpga_reset_data *data = container_of(rcdev,
						struct socfpga_reset_data, rcdev);
	int bank = id / BITS_PER_LONG;
	int offset = id % BITS_PER_LONG;
	u32 reg;

	reg = readl(data->membase + OFFSET_MODRST + (bank * NR_BANKS));

	return !(reg & BIT(offset));
}

static struct reset_control_ops socfpga_reset_ops = {
	.assert		= socfpga_reset_assert,
	.deassert	= socfpga_reset_deassert,
	.status		= socfpga_reset_status,
};

static int socfpga_reset_probe(struct platform_device *pdev)