Skip to content

Commit

Permalink
reset: amlogic: add reset status support
Browse files Browse the repository at this point in the history
Add a callback to check the status of the level reset, as done in
the reset driver of the audio clock controller.

This is done keep the functionality when the audio reset controller
get migrated to meson-reset.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Link: https://lore.kernel.org/r/20240910-meson-rst-aux-v5-6-60be62635d3e@baylibre.com
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
  • Loading branch information
Jerome Brunet authored and Philipp Zabel committed Oct 1, 2024
1 parent 83dde3e commit d623ee2
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions drivers/reset/reset-meson.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,22 @@ static int meson_reset_level(struct reset_controller_dev *rcdev,
BIT(bit), assert ? BIT(bit) : 0);
}

static int meson_reset_status(struct reset_controller_dev *rcdev,
unsigned long id)
{
struct meson_reset *data =
container_of(rcdev, struct meson_reset, rcdev);
unsigned int val, offset, bit;

meson_reset_offset_and_bit(data, id, &offset, &bit);
offset += data->param->level_offset;

regmap_read(data->map, offset, &val);
val = !!(BIT(bit) & val);

return val ^ data->param->level_low_reset;
}

static int meson_reset_assert(struct reset_controller_dev *rcdev,
unsigned long id)
{
Expand All @@ -84,6 +100,7 @@ static const struct reset_control_ops meson_reset_ops = {
.reset = meson_reset_reset,
.assert = meson_reset_assert,
.deassert = meson_reset_deassert,
.status = meson_reset_status,
};

static const struct meson_reset_param meson8b_param = {
Expand Down

0 comments on commit d623ee2

Please sign in to comment.