dw_wdt             59 drivers/watchdog/dw_wdt.c #define to_dw_wdt(wdd)	container_of(wdd, struct dw_wdt, wdd)
dw_wdt             61 drivers/watchdog/dw_wdt.c static inline int dw_wdt_is_enabled(struct dw_wdt *dw_wdt)
dw_wdt             63 drivers/watchdog/dw_wdt.c 	return readl(dw_wdt->regs + WDOG_CONTROL_REG_OFFSET) &
dw_wdt             67 drivers/watchdog/dw_wdt.c static inline int dw_wdt_top_in_seconds(struct dw_wdt *dw_wdt, unsigned top)
dw_wdt             73 drivers/watchdog/dw_wdt.c 	return (1U << (16 + top)) / dw_wdt->rate;
dw_wdt             76 drivers/watchdog/dw_wdt.c static int dw_wdt_get_top(struct dw_wdt *dw_wdt)
dw_wdt             78 drivers/watchdog/dw_wdt.c 	int top = readl(dw_wdt->regs + WDOG_TIMEOUT_RANGE_REG_OFFSET) & 0xF;
dw_wdt             80 drivers/watchdog/dw_wdt.c 	return dw_wdt_top_in_seconds(dw_wdt, top);
dw_wdt             85 drivers/watchdog/dw_wdt.c 	struct dw_wdt *dw_wdt = to_dw_wdt(wdd);
dw_wdt             87 drivers/watchdog/dw_wdt.c 	writel(WDOG_COUNTER_RESTART_KICK_VALUE, dw_wdt->regs +
dw_wdt             95 drivers/watchdog/dw_wdt.c 	struct dw_wdt *dw_wdt = to_dw_wdt(wdd);
dw_wdt            103 drivers/watchdog/dw_wdt.c 		if (dw_wdt_top_in_seconds(dw_wdt, i) >= top_s) {
dw_wdt            115 drivers/watchdog/dw_wdt.c 	       dw_wdt->regs + WDOG_TIMEOUT_RANGE_REG_OFFSET);
dw_wdt            117 drivers/watchdog/dw_wdt.c 	wdd->timeout = dw_wdt_top_in_seconds(dw_wdt, top_val);
dw_wdt            122 drivers/watchdog/dw_wdt.c static void dw_wdt_arm_system_reset(struct dw_wdt *dw_wdt)
dw_wdt            124 drivers/watchdog/dw_wdt.c 	u32 val = readl(dw_wdt->regs + WDOG_CONTROL_REG_OFFSET);
dw_wdt            130 drivers/watchdog/dw_wdt.c 	writel(val, dw_wdt->regs + WDOG_CONTROL_REG_OFFSET);
dw_wdt            135 drivers/watchdog/dw_wdt.c 	struct dw_wdt *dw_wdt = to_dw_wdt(wdd);
dw_wdt            138 drivers/watchdog/dw_wdt.c 	dw_wdt_arm_system_reset(dw_wdt);
dw_wdt            145 drivers/watchdog/dw_wdt.c 	struct dw_wdt *dw_wdt = to_dw_wdt(wdd);
dw_wdt            147 drivers/watchdog/dw_wdt.c 	if (!dw_wdt->rst) {
dw_wdt            152 drivers/watchdog/dw_wdt.c 	reset_control_assert(dw_wdt->rst);
dw_wdt            153 drivers/watchdog/dw_wdt.c 	reset_control_deassert(dw_wdt->rst);
dw_wdt            161 drivers/watchdog/dw_wdt.c 	struct dw_wdt *dw_wdt = to_dw_wdt(wdd);
dw_wdt            163 drivers/watchdog/dw_wdt.c 	writel(0, dw_wdt->regs + WDOG_TIMEOUT_RANGE_REG_OFFSET);
dw_wdt            164 drivers/watchdog/dw_wdt.c 	if (dw_wdt_is_enabled(dw_wdt))
dw_wdt            166 drivers/watchdog/dw_wdt.c 		       dw_wdt->regs + WDOG_COUNTER_RESTART_REG_OFFSET);
dw_wdt            168 drivers/watchdog/dw_wdt.c 		dw_wdt_arm_system_reset(dw_wdt);
dw_wdt            178 drivers/watchdog/dw_wdt.c 	struct dw_wdt *dw_wdt = to_dw_wdt(wdd);
dw_wdt            180 drivers/watchdog/dw_wdt.c 	return readl(dw_wdt->regs + WDOG_CURRENT_COUNT_REG_OFFSET) /
dw_wdt            181 drivers/watchdog/dw_wdt.c 		dw_wdt->rate;
dw_wdt            203 drivers/watchdog/dw_wdt.c 	struct dw_wdt *dw_wdt = dev_get_drvdata(dev);
dw_wdt            205 drivers/watchdog/dw_wdt.c 	dw_wdt->control = readl(dw_wdt->regs + WDOG_CONTROL_REG_OFFSET);
dw_wdt            206 drivers/watchdog/dw_wdt.c 	dw_wdt->timeout = readl(dw_wdt->regs + WDOG_TIMEOUT_RANGE_REG_OFFSET);
dw_wdt            208 drivers/watchdog/dw_wdt.c 	clk_disable_unprepare(dw_wdt->clk);
dw_wdt            215 drivers/watchdog/dw_wdt.c 	struct dw_wdt *dw_wdt = dev_get_drvdata(dev);
dw_wdt            216 drivers/watchdog/dw_wdt.c 	int err = clk_prepare_enable(dw_wdt->clk);
dw_wdt            221 drivers/watchdog/dw_wdt.c 	writel(dw_wdt->timeout, dw_wdt->regs + WDOG_TIMEOUT_RANGE_REG_OFFSET);
dw_wdt            222 drivers/watchdog/dw_wdt.c 	writel(dw_wdt->control, dw_wdt->regs + WDOG_CONTROL_REG_OFFSET);
dw_wdt            224 drivers/watchdog/dw_wdt.c 	dw_wdt_ping(&dw_wdt->wdd);
dw_wdt            236 drivers/watchdog/dw_wdt.c 	struct dw_wdt *dw_wdt;
dw_wdt            239 drivers/watchdog/dw_wdt.c 	dw_wdt = devm_kzalloc(dev, sizeof(*dw_wdt), GFP_KERNEL);
dw_wdt            240 drivers/watchdog/dw_wdt.c 	if (!dw_wdt)
dw_wdt            243 drivers/watchdog/dw_wdt.c 	dw_wdt->regs = devm_platform_ioremap_resource(pdev, 0);
dw_wdt            244 drivers/watchdog/dw_wdt.c 	if (IS_ERR(dw_wdt->regs))
dw_wdt            245 drivers/watchdog/dw_wdt.c 		return PTR_ERR(dw_wdt->regs);
dw_wdt            247 drivers/watchdog/dw_wdt.c 	dw_wdt->clk = devm_clk_get(dev, NULL);
dw_wdt            248 drivers/watchdog/dw_wdt.c 	if (IS_ERR(dw_wdt->clk))
dw_wdt            249 drivers/watchdog/dw_wdt.c 		return PTR_ERR(dw_wdt->clk);
dw_wdt            251 drivers/watchdog/dw_wdt.c 	ret = clk_prepare_enable(dw_wdt->clk);
dw_wdt            255 drivers/watchdog/dw_wdt.c 	dw_wdt->rate = clk_get_rate(dw_wdt->clk);
dw_wdt            256 drivers/watchdog/dw_wdt.c 	if (dw_wdt->rate == 0) {
dw_wdt            261 drivers/watchdog/dw_wdt.c 	dw_wdt->rst = devm_reset_control_get_optional_shared(&pdev->dev, NULL);
dw_wdt            262 drivers/watchdog/dw_wdt.c 	if (IS_ERR(dw_wdt->rst)) {
dw_wdt            263 drivers/watchdog/dw_wdt.c 		ret = PTR_ERR(dw_wdt->rst);
dw_wdt            267 drivers/watchdog/dw_wdt.c 	reset_control_deassert(dw_wdt->rst);
dw_wdt            269 drivers/watchdog/dw_wdt.c 	wdd = &dw_wdt->wdd;
dw_wdt            274 drivers/watchdog/dw_wdt.c 		dw_wdt_top_in_seconds(dw_wdt, DW_WDT_MAX_TOP) * 1000;
dw_wdt            277 drivers/watchdog/dw_wdt.c 	watchdog_set_drvdata(wdd, dw_wdt);
dw_wdt            286 drivers/watchdog/dw_wdt.c 	if (dw_wdt_is_enabled(dw_wdt)) {
dw_wdt            287 drivers/watchdog/dw_wdt.c 		wdd->timeout = dw_wdt_get_top(dw_wdt);
dw_wdt            294 drivers/watchdog/dw_wdt.c 	platform_set_drvdata(pdev, dw_wdt);
dw_wdt            305 drivers/watchdog/dw_wdt.c 	clk_disable_unprepare(dw_wdt->clk);
dw_wdt            311 drivers/watchdog/dw_wdt.c 	struct dw_wdt *dw_wdt = platform_get_drvdata(pdev);
dw_wdt            313 drivers/watchdog/dw_wdt.c 	watchdog_unregister_device(&dw_wdt->wdd);
dw_wdt            314 drivers/watchdog/dw_wdt.c 	reset_control_assert(dw_wdt->rst);
dw_wdt            315 drivers/watchdog/dw_wdt.c 	clk_disable_unprepare(dw_wdt->clk);