22
22
23
23
#define GXBB_WDT_CTRL_CLKDIV_EN BIT(25)
24
24
#define GXBB_WDT_CTRL_CLK_EN BIT(24)
25
- #define GXBB_WDT_CTRL_EE_RESET BIT(21)
26
25
#define GXBB_WDT_CTRL_EN BIT(18)
27
26
#define GXBB_WDT_CTRL_DIV_MASK (BIT(18) - 1)
28
27
@@ -45,6 +44,10 @@ struct meson_gxbb_wdt {
45
44
struct clk * clk ;
46
45
};
47
46
47
+ struct wdt_params {
48
+ u32 rst ;
49
+ };
50
+
48
51
static int meson_gxbb_wdt_start (struct watchdog_device * wdt_dev )
49
52
{
50
53
struct meson_gxbb_wdt * data = watchdog_get_drvdata (wdt_dev );
@@ -140,8 +143,12 @@ static const struct dev_pm_ops meson_gxbb_wdt_pm_ops = {
140
143
SET_SYSTEM_SLEEP_PM_OPS (meson_gxbb_wdt_suspend , meson_gxbb_wdt_resume )
141
144
};
142
145
146
+ static const struct wdt_params gxbb_params = {
147
+ .rst = BIT (21 ),
148
+ };
149
+
143
150
static const struct of_device_id meson_gxbb_wdt_dt_ids [] = {
144
- { .compatible = "amlogic,meson-gxbb-wdt" , },
151
+ { .compatible = "amlogic,meson-gxbb-wdt" , . data = & gxbb_params , },
145
152
{ /* sentinel */ },
146
153
};
147
154
MODULE_DEVICE_TABLE (of , meson_gxbb_wdt_dt_ids );
@@ -150,6 +157,7 @@ static int meson_gxbb_wdt_probe(struct platform_device *pdev)
150
157
{
151
158
struct device * dev = & pdev -> dev ;
152
159
struct meson_gxbb_wdt * data ;
160
+ struct wdt_params * params ;
153
161
u32 ctrl_reg ;
154
162
155
163
data = devm_kzalloc (dev , sizeof (* data ), GFP_KERNEL );
@@ -164,6 +172,8 @@ static int meson_gxbb_wdt_probe(struct platform_device *pdev)
164
172
if (IS_ERR (data -> clk ))
165
173
return PTR_ERR (data -> clk );
166
174
175
+ params = (struct wdt_params * )of_device_get_match_data (dev );
176
+
167
177
platform_set_drvdata (pdev , data );
168
178
169
179
data -> wdt_dev .parent = dev ;
@@ -191,7 +201,7 @@ static int meson_gxbb_wdt_probe(struct platform_device *pdev)
191
201
/* Setup with 1ms timebase */
192
202
ctrl_reg |= ((clk_get_rate (data -> clk ) / 1000 ) &
193
203
GXBB_WDT_CTRL_DIV_MASK ) |
194
- GXBB_WDT_CTRL_EE_RESET |
204
+ params -> rst |
195
205
GXBB_WDT_CTRL_CLK_EN |
196
206
GXBB_WDT_CTRL_CLKDIV_EN ;
197
207
0 commit comments