ccu_reset.h 1020 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /*
  2. * Copyright (c) 2016 Maxime Ripard. All rights reserved.
  3. *
  4. * This software is licensed under the terms of the GNU General Public
  5. * License version 2, as published by the Free Software Foundation, and
  6. * may be copied, distributed, and modified under those terms.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. */
  13. #ifndef _CCU_RESET_H_
  14. #define _CCU_RESET_H_
  15. #include <linux/reset-controller.h>
  16. struct ccu_reset_map {
  17. u16 reg;
  18. u32 bit;
  19. };
  20. struct ccu_reset {
  21. void __iomem *base;
  22. struct ccu_reset_map *reset_map;
  23. spinlock_t *lock;
  24. struct reset_controller_dev rcdev;
  25. };
  26. static inline struct ccu_reset *rcdev_to_ccu_reset(struct reset_controller_dev *rcdev)
  27. {
  28. return container_of(rcdev, struct ccu_reset, rcdev);
  29. }
  30. extern const struct reset_control_ops ccu_reset_ops;
  31. #endif /* _CCU_RESET_H_ */