6363#define EXYNOS850_CLUSTER1_NONCPU_INT_EN 0x1644
6464#define EXYNOSAUTOV9_CLUSTER1_NONCPU_OUT 0x1520
6565#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
6670
6771#define EXYNOS850_CLUSTER0_WDTRESET_BIT 24
6872#define EXYNOS850_CLUSTER1_WDTRESET_BIT 23
@@ -303,6 +307,32 @@ static const struct s3c2410_wdt_variant drv_data_gs101_cl1 = {
303307 QUIRK_HAS_DBGACK_BIT ,
304308};
305309
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+
306336static const struct of_device_id s3c2410_wdt_match [] = {
307337 { .compatible = "google,gs101-wdt" ,
308338 .data = & drv_data_gs101_cl0 },
@@ -320,6 +350,8 @@ static const struct of_device_id s3c2410_wdt_match[] = {
320350 .data = & drv_data_exynos850_cl0 },
321351 { .compatible = "samsung,exynosautov9-wdt" ,
322352 .data = & drv_data_exynosautov9_cl0 },
353+ { .compatible = "samsung,exynosautov920-wdt" ,
354+ .data = & drv_data_exynosautov920_cl0 },
323355 {},
324356};
325357MODULE_DEVICE_TABLE (of , s3c2410_wdt_match );
@@ -643,7 +675,8 @@ s3c2410_get_wdt_drv_data(struct platform_device *pdev, struct s3c2410_wdt *wdt)
643675 /* Choose Exynos850/ExynosAutov9 driver data w.r.t. cluster index */
644676 if (variant == & drv_data_exynos850_cl0 ||
645677 variant == & drv_data_exynosautov9_cl0 ||
646- variant == & drv_data_gs101_cl0 ) {
678+ variant == & drv_data_gs101_cl0 ||
679+ variant == & drv_data_exynosautov920_cl0 ) {
647680 u32 index ;
648681 int err ;
649682
@@ -662,6 +695,8 @@ s3c2410_get_wdt_drv_data(struct platform_device *pdev, struct s3c2410_wdt *wdt)
662695 variant = & drv_data_exynosautov9_cl1 ;
663696 else if (variant == & drv_data_gs101_cl0 )
664697 variant = & drv_data_gs101_cl1 ;
698+ else if (variant == & drv_data_exynosautov920_cl0 )
699+ variant = & drv_data_exynosautov920_cl1 ;
665700 break ;
666701 default :
667702 return dev_err_probe (dev , - EINVAL , "wrong cluster index: %u\n" , index );
0 commit comments