@@ -12,56 +12,59 @@
#include "reset.h"
-static int mtk_reset_assert_set_clr(struct reset_controller_dev *rcdev,
- unsigned long id)
+static int mtk_reset_assert(struct reset_controller_dev *rcdev,
+ unsigned long id)
{
struct mtk_reset *data = container_of(rcdev, struct mtk_reset, rcdev);
- unsigned int reg = data->regofs + ((id / 32) << 4);
- return regmap_write(data->regmap, reg, BIT(id % 32));
+ return regmap_update_bits(data->regmap,
+ data->regofs + ((id / 32) << 2),
+ BIT(id % 32), ~0);
}
-static int mtk_reset_deassert_set_clr(struct reset_controller_dev *rcdev,
- unsigned long id)
+static int mtk_reset_deassert(struct reset_controller_dev *rcdev,
+ unsigned long id)
{
struct mtk_reset *data = container_of(rcdev, struct mtk_reset, rcdev);
- unsigned int reg = data->regofs + ((id / 32) << 4) + 0x4;
- return regmap_write(data->regmap, reg, BIT(id % 32));
+ return regmap_update_bits(data->regmap,
+ data->regofs + ((id / 32) << 2),
+ BIT(id % 32), 0);
}
-static int mtk_reset_assert(struct reset_controller_dev *rcdev,
- unsigned long id)
+static int mtk_reset(struct reset_controller_dev *rcdev, unsigned long id)
{
- struct mtk_reset *data = container_of(rcdev, struct mtk_reset, rcdev);
+ int ret;
+
+ ret = mtk_reset_assert(rcdev, id);
+ if (ret)
+ return ret;
- return regmap_update_bits(data->regmap, data->regofs + ((id / 32) << 2),
- BIT(id % 32), ~0);
+ return mtk_reset_deassert(rcdev, id);
}
-static int mtk_reset_deassert(struct reset_controller_dev *rcdev,
- unsigned long id)
+static int mtk_reset_assert_set_clr(struct reset_controller_dev *rcdev,
+ unsigned long id)
{
struct mtk_reset *data = container_of(rcdev, struct mtk_reset, rcdev);
- return regmap_update_bits(data->regmap, data->regofs + ((id / 32) << 2),
- BIT(id % 32), 0);
+ return regmap_write(data->regmap,
+ data->regofs + ((id / 32) << 4),
+ BIT(id % 32));
}
-static int mtk_reset(struct reset_controller_dev *rcdev,
- unsigned long id)
+static int mtk_reset_deassert_set_clr(struct reset_controller_dev *rcdev,
+ unsigned long id)
{
- int ret;
-
- ret = mtk_reset_assert(rcdev, id);
- if (ret)
- return ret;
+ struct mtk_reset *data = container_of(rcdev, struct mtk_reset, rcdev);
- return mtk_reset_deassert(rcdev, id);
+ return regmap_write(data->regmap,
+ data->regofs + ((id / 32) << 4) + 0x4,
+ BIT(id % 32));
}
static int mtk_reset_set_clr(struct reset_controller_dev *rcdev,
- unsigned long id)
+ unsigned long id)
{
int ret;
@@ -84,8 +87,9 @@ static const struct reset_control_ops mtk_reset_ops_set_clr = {
};
static void mtk_register_reset_controller_common(struct device_node *np,
- unsigned int num_regs, int regofs,
- const struct reset_control_ops *reset_ops)
+ unsigned int num_regs,
+ int regofs,
+ const struct reset_control_ops *reset_ops)
{
struct mtk_reset *data;
int ret;
@@ -117,17 +121,17 @@ static void mtk_register_reset_controller_common(struct device_node *np,
}
void mtk_register_reset_controller(struct device_node *np,
- unsigned int num_regs, int regofs)
+ unsigned int num_regs, int regofs)
{
mtk_register_reset_controller_common(np, num_regs, regofs,
- &mtk_reset_ops);
+ &mtk_reset_ops);
}
void mtk_register_reset_controller_set_clr(struct device_node *np,
- unsigned int num_regs, int regofs)
+ unsigned int num_regs, int regofs)
{
mtk_register_reset_controller_common(np, num_regs, regofs,
- &mtk_reset_ops_set_clr);
+ &mtk_reset_ops_set_clr);
}
MODULE_LICENSE("GPL");