xref: /openbmc/linux/drivers/clk/actions/owl-reset.h (revision c39f2d9db0fd81ea20bb5cce9b3f082ca63753e2)
1*ddd3e8b9SNishad Kamdar /* SPDX-License-Identifier: GPL-2.0-or-later */
209dbde01SManivannan Sadhasivam //
309dbde01SManivannan Sadhasivam // Actions Semi Owl SoCs Reset Management Unit driver
409dbde01SManivannan Sadhasivam //
509dbde01SManivannan Sadhasivam // Copyright (c) 2018 Linaro Ltd.
609dbde01SManivannan Sadhasivam // Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
709dbde01SManivannan Sadhasivam 
809dbde01SManivannan Sadhasivam #ifndef _OWL_RESET_H_
909dbde01SManivannan Sadhasivam #define _OWL_RESET_H_
1009dbde01SManivannan Sadhasivam 
1109dbde01SManivannan Sadhasivam #include <linux/reset-controller.h>
1209dbde01SManivannan Sadhasivam 
1309dbde01SManivannan Sadhasivam struct owl_reset_map {
1409dbde01SManivannan Sadhasivam 	u32	reg;
1509dbde01SManivannan Sadhasivam 	u32	bit;
1609dbde01SManivannan Sadhasivam };
1709dbde01SManivannan Sadhasivam 
1809dbde01SManivannan Sadhasivam struct owl_reset {
1909dbde01SManivannan Sadhasivam 	struct reset_controller_dev	rcdev;
2009dbde01SManivannan Sadhasivam 	const struct owl_reset_map	*reset_map;
2109dbde01SManivannan Sadhasivam 	struct regmap			*regmap;
2209dbde01SManivannan Sadhasivam };
2309dbde01SManivannan Sadhasivam 
to_owl_reset(struct reset_controller_dev * rcdev)2409dbde01SManivannan Sadhasivam static inline struct owl_reset *to_owl_reset(struct reset_controller_dev *rcdev)
2509dbde01SManivannan Sadhasivam {
2609dbde01SManivannan Sadhasivam 	return container_of(rcdev, struct owl_reset, rcdev);
2709dbde01SManivannan Sadhasivam }
2809dbde01SManivannan Sadhasivam 
2909dbde01SManivannan Sadhasivam extern const struct reset_control_ops owl_reset_ops;
3009dbde01SManivannan Sadhasivam 
3109dbde01SManivannan Sadhasivam #endif /* _OWL_RESET_H_ */
32