1212
1313#include "reset.h"
1414
15- static int mtk_reset_assert_set_clr (struct reset_controller_dev * rcdev ,
16- unsigned long id )
15+ static int mtk_reset_assert (struct reset_controller_dev * rcdev ,
16+ unsigned long id )
1717{
1818 struct mtk_reset * data = container_of (rcdev , struct mtk_reset , rcdev );
19- unsigned int reg = data -> regofs + ((id / 32 ) << 4 );
2019
21- return regmap_write (data -> regmap , reg , BIT (id % 32 ));
20+ return regmap_update_bits (data -> regmap ,
21+ data -> regofs + ((id / 32 ) << 2 ),
22+ BIT (id % 32 ), ~0 );
2223}
2324
24- static int mtk_reset_deassert_set_clr (struct reset_controller_dev * rcdev ,
25- unsigned long id )
25+ static int mtk_reset_deassert (struct reset_controller_dev * rcdev ,
26+ unsigned long id )
2627{
2728 struct mtk_reset * data = container_of (rcdev , struct mtk_reset , rcdev );
28- unsigned int reg = data -> regofs + ((id / 32 ) << 4 ) + 0x4 ;
2929
30- return regmap_write (data -> regmap , reg , BIT (id % 32 ));
30+ return regmap_update_bits (data -> regmap ,
31+ data -> regofs + ((id / 32 ) << 2 ),
32+ BIT (id % 32 ), 0 );
3133}
3234
33- static int mtk_reset_assert (struct reset_controller_dev * rcdev ,
34- unsigned long id )
35+ static int mtk_reset (struct reset_controller_dev * rcdev , unsigned long id )
3536{
36- struct mtk_reset * data = container_of (rcdev , struct mtk_reset , rcdev );
37+ int ret ;
38+
39+ ret = mtk_reset_assert (rcdev , id );
40+ if (ret )
41+ return ret ;
3742
38- return regmap_update_bits (data -> regmap , data -> regofs + ((id / 32 ) << 2 ),
39- BIT (id % 32 ), ~0 );
43+ return mtk_reset_deassert (rcdev , id );
4044}
4145
42- static int mtk_reset_deassert (struct reset_controller_dev * rcdev ,
43- unsigned long id )
46+ static int mtk_reset_assert_set_clr (struct reset_controller_dev * rcdev ,
47+ unsigned long id )
4448{
4549 struct mtk_reset * data = container_of (rcdev , struct mtk_reset , rcdev );
4650
47- return regmap_update_bits (data -> regmap , data -> regofs + ((id / 32 ) << 2 ),
48- BIT (id % 32 ), 0 );
51+ return regmap_write (data -> regmap ,
52+ data -> regofs + ((id / 32 ) << 4 ),
53+ BIT (id % 32 ));
4954}
5055
51- static int mtk_reset (struct reset_controller_dev * rcdev ,
52- unsigned long id )
56+ static int mtk_reset_deassert_set_clr (struct reset_controller_dev * rcdev ,
57+ unsigned long id )
5358{
54- int ret ;
55-
56- ret = mtk_reset_assert (rcdev , id );
57- if (ret )
58- return ret ;
59+ struct mtk_reset * data = container_of (rcdev , struct mtk_reset , rcdev );
5960
60- return mtk_reset_deassert (rcdev , id );
61+ return regmap_write (data -> regmap ,
62+ data -> regofs + ((id / 32 ) << 4 ) + 0x4 ,
63+ BIT (id % 32 ));
6164}
6265
6366static int mtk_reset_set_clr (struct reset_controller_dev * rcdev ,
64- unsigned long id )
67+ unsigned long id )
6568{
6669 int ret ;
6770
@@ -84,8 +87,9 @@ static const struct reset_control_ops mtk_reset_ops_set_clr = {
8487};
8588
8689static void mtk_register_reset_controller_common (struct device_node * np ,
87- unsigned int num_regs , int regofs ,
88- const struct reset_control_ops * reset_ops )
90+ unsigned int num_regs ,
91+ int regofs ,
92+ const struct reset_control_ops * reset_ops )
8993{
9094 struct mtk_reset * data ;
9195 int ret ;
@@ -117,17 +121,17 @@ static void mtk_register_reset_controller_common(struct device_node *np,
117121}
118122
119123void mtk_register_reset_controller (struct device_node * np ,
120- unsigned int num_regs , int regofs )
124+ unsigned int num_regs , int regofs )
121125{
122126 mtk_register_reset_controller_common (np , num_regs , regofs ,
123- & mtk_reset_ops );
127+ & mtk_reset_ops );
124128}
125129
126130void mtk_register_reset_controller_set_clr (struct device_node * np ,
127- unsigned int num_regs , int regofs )
131+ unsigned int num_regs , int regofs )
128132{
129133 mtk_register_reset_controller_common (np , num_regs , regofs ,
130- & mtk_reset_ops_set_clr );
134+ & mtk_reset_ops_set_clr );
131135}
132136
133137MODULE_LICENSE ("GPL" );
0 commit comments