63
63
#define EXYNOS850_CLUSTER1_NONCPU_INT_EN 0x1644
64
64
#define EXYNOSAUTOV9_CLUSTER1_NONCPU_OUT 0x1520
65
65
#define EXYNOSAUTOV9_CLUSTER1_NONCPU_INT_EN 0x1544
66
+ #define EXYNOSAUTOV920_CLUSTER0_NONCPU_OUT 0x1420
67
+ #define EXYNOSAUTOV920_CLUSTER0_NONCPU_INT_EN 0x1444
68
+ #define EXYNOSAUTOV920_CLUSTER1_NONCPU_OUT 0x1720
69
+ #define EXYNOSAUTOV920_CLUSTER1_NONCPU_INT_EN 0x1744
66
70
67
71
#define EXYNOS850_CLUSTER0_WDTRESET_BIT 24
68
72
#define EXYNOS850_CLUSTER1_WDTRESET_BIT 23
@@ -303,6 +307,32 @@ static const struct s3c2410_wdt_variant drv_data_gs101_cl1 = {
303
307
QUIRK_HAS_DBGACK_BIT ,
304
308
};
305
309
310
+ static const struct s3c2410_wdt_variant drv_data_exynosautov920_cl0 = {
311
+ .mask_reset_reg = EXYNOSAUTOV920_CLUSTER0_NONCPU_INT_EN ,
312
+ .mask_bit = 2 ,
313
+ .mask_reset_inv = true,
314
+ .rst_stat_reg = EXYNOS5_RST_STAT_REG_OFFSET ,
315
+ .rst_stat_bit = EXYNOSAUTOV9_CLUSTER0_WDTRESET_BIT ,
316
+ .cnt_en_reg = EXYNOSAUTOV920_CLUSTER0_NONCPU_OUT ,
317
+ .cnt_en_bit = 7 ,
318
+ .quirks = QUIRK_HAS_WTCLRINT_REG | QUIRK_HAS_PMU_MASK_RESET |
319
+ QUIRK_HAS_PMU_RST_STAT | QUIRK_HAS_PMU_CNT_EN |
320
+ QUIRK_HAS_DBGACK_BIT ,
321
+ };
322
+
323
+ static const struct s3c2410_wdt_variant drv_data_exynosautov920_cl1 = {
324
+ .mask_reset_reg = EXYNOSAUTOV920_CLUSTER1_NONCPU_INT_EN ,
325
+ .mask_bit = 2 ,
326
+ .mask_reset_inv = true,
327
+ .rst_stat_reg = EXYNOS5_RST_STAT_REG_OFFSET ,
328
+ .rst_stat_bit = EXYNOSAUTOV9_CLUSTER1_WDTRESET_BIT ,
329
+ .cnt_en_reg = EXYNOSAUTOV920_CLUSTER1_NONCPU_OUT ,
330
+ .cnt_en_bit = 7 ,
331
+ .quirks = QUIRK_HAS_WTCLRINT_REG | QUIRK_HAS_PMU_MASK_RESET |
332
+ QUIRK_HAS_PMU_RST_STAT | QUIRK_HAS_PMU_CNT_EN |
333
+ QUIRK_HAS_DBGACK_BIT ,
334
+ };
335
+
306
336
static const struct of_device_id s3c2410_wdt_match [] = {
307
337
{ .compatible = "google,gs101-wdt" ,
308
338
.data = & drv_data_gs101_cl0 },
@@ -320,6 +350,8 @@ static const struct of_device_id s3c2410_wdt_match[] = {
320
350
.data = & drv_data_exynos850_cl0 },
321
351
{ .compatible = "samsung,exynosautov9-wdt" ,
322
352
.data = & drv_data_exynosautov9_cl0 },
353
+ { .compatible = "samsung,exynosautov920-wdt" ,
354
+ .data = & drv_data_exynosautov920_cl0 },
323
355
{},
324
356
};
325
357
MODULE_DEVICE_TABLE (of , s3c2410_wdt_match );
@@ -643,7 +675,8 @@ s3c2410_get_wdt_drv_data(struct platform_device *pdev, struct s3c2410_wdt *wdt)
643
675
/* Choose Exynos850/ExynosAutov9 driver data w.r.t. cluster index */
644
676
if (variant == & drv_data_exynos850_cl0 ||
645
677
variant == & drv_data_exynosautov9_cl0 ||
646
- variant == & drv_data_gs101_cl0 ) {
678
+ variant == & drv_data_gs101_cl0 ||
679
+ variant == & drv_data_exynosautov920_cl0 ) {
647
680
u32 index ;
648
681
int err ;
649
682
@@ -662,6 +695,8 @@ s3c2410_get_wdt_drv_data(struct platform_device *pdev, struct s3c2410_wdt *wdt)
662
695
variant = & drv_data_exynosautov9_cl1 ;
663
696
else if (variant == & drv_data_gs101_cl0 )
664
697
variant = & drv_data_gs101_cl1 ;
698
+ else if (variant == & drv_data_exynosautov920_cl0 )
699
+ variant = & drv_data_exynosautov920_cl1 ;
665
700
break ;
666
701
default :
667
702
return dev_err_probe (dev , - EINVAL , "wrong cluster index: %u\n" , index );
0 commit comments