Blame view

drivers/reset/reset-simple.h 1.25 KB
2874c5fd2   Thomas Gleixner   treewide: Replace...
1
  /* SPDX-License-Identifier: GPL-2.0-or-later */
81c22ad0c   Philipp Zabel   reset: add reset-...
2
3
4
5
6
7
8
9
  /*
   * Simple Reset Controller ops
   *
   * Based on Allwinner SoCs Reset Controller driver
   *
   * Copyright 2013 Maxime Ripard
   *
   * Maxime Ripard <maxime.ripard@free-electrons.com>
81c22ad0c   Philipp Zabel   reset: add reset-...
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
   */
  
  #ifndef __RESET_SIMPLE_H__
  #define __RESET_SIMPLE_H__
  
  #include <linux/io.h>
  #include <linux/reset-controller.h>
  #include <linux/spinlock.h>
  
  /**
   * struct reset_simple_data - driver data for simple reset controllers
   * @lock: spinlock to protect registers during read-modify-write cycles
   * @membase: memory mapped I/O register range
   * @rcdev: reset controller device base structure
   * @active_low: if true, bits are cleared to assert the reset. Otherwise, bits
   *              are set to assert the reset. Note that this says nothing about
   *              the voltage level of the actual reset line.
adf20d7ce   Philipp Zabel   reset: socfpga: u...
27
28
29
   * @status_active_low: if true, bits read back as cleared while the reset is
   *                     asserted. Otherwise, bits read back as set while the
   *                     reset is asserted.
81c22ad0c   Philipp Zabel   reset: add reset-...
30
31
32
33
34
35
   */
  struct reset_simple_data {
  	spinlock_t			lock;
  	void __iomem			*membase;
  	struct reset_controller_dev	rcdev;
  	bool				active_low;
adf20d7ce   Philipp Zabel   reset: socfpga: u...
36
  	bool				status_active_low;
81c22ad0c   Philipp Zabel   reset: add reset-...
37
38
39
40
41
  };
  
  extern const struct reset_control_ops reset_simple_ops;
  
  #endif /* __RESET_SIMPLE_H__ */