.. | .. |
---|
13 | 13 | |
---|
14 | 14 | static int qcom_reset(struct reset_controller_dev *rcdev, unsigned long id) |
---|
15 | 15 | { |
---|
| 16 | + struct qcom_reset_controller *rst = to_qcom_reset_controller(rcdev); |
---|
| 17 | + |
---|
16 | 18 | rcdev->ops->assert(rcdev, id); |
---|
17 | | - udelay(1); |
---|
| 19 | + fsleep(rst->reset_map[id].udelay ?: 1); /* use 1 us as default */ |
---|
| 20 | + |
---|
18 | 21 | rcdev->ops->deassert(rcdev, id); |
---|
19 | 22 | return 0; |
---|
20 | 23 | } |
---|
.. | .. |
---|
28 | 31 | |
---|
29 | 32 | rst = to_qcom_reset_controller(rcdev); |
---|
30 | 33 | map = &rst->reset_map[id]; |
---|
31 | | - mask = BIT(map->bit); |
---|
| 34 | + mask = map->bitmask ? map->bitmask : BIT(map->bit); |
---|
32 | 35 | |
---|
33 | 36 | return regmap_update_bits(rst->regmap, map->reg, mask, mask); |
---|
34 | 37 | } |
---|
.. | .. |
---|
42 | 45 | |
---|
43 | 46 | rst = to_qcom_reset_controller(rcdev); |
---|
44 | 47 | map = &rst->reset_map[id]; |
---|
45 | | - mask = BIT(map->bit); |
---|
| 48 | + mask = map->bitmask ? map->bitmask : BIT(map->bit); |
---|
46 | 49 | |
---|
47 | 50 | return regmap_update_bits(rst->regmap, map->reg, mask, 0); |
---|
48 | 51 | } |
---|