xref: /openbmc/linux/drivers/clk/qcom/reset.h (revision 7ae9fb1b7ecbb5d85d07857943f677fd1a559b18)
19c92ab61SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
2b36ba30cSStephen Boyd /*
3b36ba30cSStephen Boyd  * Copyright (c) 2013, The Linux Foundation. All rights reserved.
4b36ba30cSStephen Boyd  */
5b36ba30cSStephen Boyd 
6b36ba30cSStephen Boyd #ifndef __QCOM_CLK_RESET_H__
7b36ba30cSStephen Boyd #define __QCOM_CLK_RESET_H__
8b36ba30cSStephen Boyd 
9b36ba30cSStephen Boyd #include <linux/reset-controller.h>
10b36ba30cSStephen Boyd 
11b36ba30cSStephen Boyd struct qcom_reset_map {
12b36ba30cSStephen Boyd 	unsigned int reg;
13b36ba30cSStephen Boyd 	u8 bit;
142cb8a39bSStephan Gerhold 	u8 udelay;
15*4a521089SRobert Marko 	u32 bitmask;
16b36ba30cSStephen Boyd };
17b36ba30cSStephen Boyd 
18b36ba30cSStephen Boyd struct regmap;
19b36ba30cSStephen Boyd 
20b36ba30cSStephen Boyd struct qcom_reset_controller {
21b36ba30cSStephen Boyd 	const struct qcom_reset_map *reset_map;
22b36ba30cSStephen Boyd 	struct regmap *regmap;
23b36ba30cSStephen Boyd 	struct reset_controller_dev rcdev;
24b36ba30cSStephen Boyd };
25b36ba30cSStephen Boyd 
26b36ba30cSStephen Boyd #define to_qcom_reset_controller(r) \
27b36ba30cSStephen Boyd 	container_of(r, struct qcom_reset_controller, rcdev);
28b36ba30cSStephen Boyd 
29add479eeSPhilipp Zabel extern const struct reset_control_ops qcom_reset_ops;
30b36ba30cSStephen Boyd 
31b36ba30cSStephen Boyd #endif
32