Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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>

authored by

Jerome Brunet and committed by
Philipp Zabel
d623ee26 83dde3e5

+17
+17
drivers/reset/reset-meson.c
··· 68 68 BIT(bit), assert ? BIT(bit) : 0); 69 69 } 70 70 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 + 71 87 static int meson_reset_assert(struct reset_controller_dev *rcdev, 72 88 unsigned long id) 73 89 { ··· 100 84 .reset = meson_reset_reset, 101 85 .assert = meson_reset_assert, 102 86 .deassert = meson_reset_deassert, 87 + .status = meson_reset_status, 103 88 }; 104 89 105 90 static const struct meson_reset_param meson8b_param = {