diff options
| author | Arnd Bergmann <arnd@arndb.de> | 2020-07-22 22:34:13 +0200 |
|---|---|---|
| committer | Arnd Bergmann <arnd@arndb.de> | 2020-07-22 22:34:14 +0200 |
| commit | 9e586c84312778cf132086a296fb96e72aa207fc (patch) | |
| tree | 6de998a3a47e8c6aa7b2b6d710c8acc337fe8a33 /include/linux | |
| parent | 00067ca5331e81f609d0e1255d4807ba24488aad (diff) | |
| parent | ffebbecaaa86f7cde4a6a813bed14f9d56e7c373 (diff) | |
Merge tag 'reset-for-v5.9' of git://git.pengutronix.de/pza/linux into arm/drivers
Reset controller updates for v5.9
This tag moves the reset-simple header out of drivers/reset for use by
drivers outside of drivers/reset, adds a .reset() callback to
reset-simple, converts i.MX reset bindings to json-schema, fixes a
compile warning in the reset-intel-gw driver, and replaces some HTTP
links with HTTPS ones in comments.
* tag 'reset-for-v5.9' of git://git.pengutronix.de/pza/linux:
reset: Replace HTTP links with HTTPS ones
reset: intel: fix a compile warning about REG_OFFSET redefined
dt-bindings: reset: Convert i.MX7 reset to json-schema
dt-bindings: reset: Convert i.MX reset to json-schema
reset: simple: Add reset callback
reset: Move reset-simple header out of drivers/reset
Link: https://lore.kernel.org/r/b718f052e38abbaac599d80645376b75e54aa5bd.camel@pengutronix.de
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/reset/reset-simple.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/include/linux/reset/reset-simple.h b/include/linux/reset/reset-simple.h new file mode 100644 index 000000000000..c3e44f45b0f7 --- /dev/null +++ b/include/linux/reset/reset-simple.h @@ -0,0 +1,48 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Simple Reset Controller ops + * + * Based on Allwinner SoCs Reset Controller driver + * + * Copyright 2013 Maxime Ripard + * + * Maxime Ripard <maxime.ripard@free-electrons.com> + */ + +#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. + * @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. + * @reset_us: Minimum delay in microseconds needed that needs to be + * waited for between an assert and a deassert to reset the + * device. If multiple consumers with different delay + * requirements are connected to this controller, it must + * be the largest minimum delay. 0 means that such a delay is + * unknown and the reset operation is unsupported. + */ +struct reset_simple_data { + spinlock_t lock; + void __iomem *membase; + struct reset_controller_dev rcdev; + bool active_low; + bool status_active_low; + unsigned int reset_us; +}; + +extern const struct reset_control_ops reset_simple_ops; + +#endif /* __RESET_SIMPLE_H__ */ |
