Skip to content

Commit d623ee2

Browse files
jbrun3tpH5
authored andcommitted
reset: amlogic: add reset status support
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>
1 parent 83dde3e commit d623ee2

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

drivers/reset/reset-meson.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,22 @@ static int meson_reset_level(struct reset_controller_dev *rcdev,
6868
BIT(bit), assert ? BIT(bit) : 0);
6969
}
7070

71+
static int meson_reset_status(struct reset_controller_dev *rcdev,
72+
unsigned long id)
73+
{
74+
struct meson_reset *data =
75+
container_of(rcdev, struct meson_reset, rcdev);
76+
unsigned int val, offset, bit;
77+
78+
meson_reset_offset_and_bit(data, id, &offset, &bit);
79+
offset += data->param->level_offset;
80+
81+
regmap_read(data->map, offset, &val);
82+
val = !!(BIT(bit) & val);
83+
84+
return val ^ data->param->level_low_reset;
85+
}
86+
7187
static int meson_reset_assert(struct reset_controller_dev *rcdev,
7288
unsigned long id)
7389
{
@@ -84,6 +100,7 @@ static const struct reset_control_ops meson_reset_ops = {
84100
.reset = meson_reset_reset,
85101
.assert = meson_reset_assert,
86102
.deassert = meson_reset_deassert,
103+
.status = meson_reset_status,
87104
};
88105

89106
static const struct meson_reset_param meson8b_param = {

0 commit comments

Comments
 (0)