diff options
| author | Arnd Bergmann <arnd@arndb.de> | 2018-03-28 17:02:22 +0200 |
|---|---|---|
| committer | Arnd Bergmann <arnd@arndb.de> | 2018-03-28 17:02:22 +0200 |
| commit | 7f95de5e4a27d3cda21f7223c22f22ab6c5b3def (patch) | |
| tree | 37c91c02f6516c1870daf627a3ed264259064be3 /include/linux | |
| parent | f8d6dc78b8b994cf6903879ab6abf3cb25b76daf (diff) | |
| parent | 0089313d8595b76422b189b44c55556cb1004190 (diff) | |
| download | cachepc-linux-7f95de5e4a27d3cda21f7223c22f22ab6c5b3def.tar.gz cachepc-linux-7f95de5e4a27d3cda21f7223c22f22ab6c5b3def.zip | |
Merge tag 'reset-for-4.17-2' of git://git.pengutronix.de/git/pza/linux into next/drivers
Pull "Reset controller changes for v4.17, part 2" from Philipp Zabel:
This tag contains reset lookup support, similar to pwm lookups, for legacy
non-DT platforms, a few new reset controls and a Kconfig fix for uniphier
SoCs, as well as a new driver for the STM32MP1 peripheral reset controller.
The reset lookups are merged from a separate, immutable branch, that may
also be merged into the davinci tree.
* tag 'reset-for-4.17-2' of git://git.pengutronix.de/git/pza/linux:
reset: uniphier: add ethernet reset control support for PXs3
reset: stm32mp1: Enable stm32mp1 reset driver
dt-bindings: reset: add STM32MP1 resets
reset: uniphier: add Pro4/Pro5/PXs2 audio systems reset control
reset: imx7: add 'depends on HAS_IOMEM' to fix unmet dependency
reset: modify the way reset lookup works for board files
reset: add support for non-DT systems
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/reset-controller.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/include/linux/reset-controller.h b/include/linux/reset-controller.h index adb88f8cefbc..9326d671b6e6 100644 --- a/include/linux/reset-controller.h +++ b/include/linux/reset-controller.h @@ -27,12 +27,38 @@ struct device_node; struct of_phandle_args; /** + * struct reset_control_lookup - represents a single lookup entry + * + * @list: internal list of all reset lookup entries + * @provider: name of the reset controller device controlling this reset line + * @index: ID of the reset controller in the reset controller device + * @dev_id: name of the device associated with this reset line + * @con_id name of the reset line (can be NULL) + */ +struct reset_control_lookup { + struct list_head list; + const char *provider; + unsigned int index; + const char *dev_id; + const char *con_id; +}; + +#define RESET_LOOKUP(_provider, _index, _dev_id, _con_id) \ + { \ + .provider = _provider, \ + .index = _index, \ + .dev_id = _dev_id, \ + .con_id = _con_id, \ + } + +/** * struct reset_controller_dev - reset controller entity that might * provide multiple reset controls * @ops: a pointer to device specific struct reset_control_ops * @owner: kernel module of the reset controller driver * @list: internal list of reset controller devices * @reset_control_head: head of internal list of requested reset controls + * @dev: corresponding driver model device struct * @of_node: corresponding device tree node as phandle target * @of_reset_n_cells: number of cells in reset line specifiers * @of_xlate: translation function to translate from specifier as found in the @@ -44,6 +70,7 @@ struct reset_controller_dev { struct module *owner; struct list_head list; struct list_head reset_control_head; + struct device *dev; struct device_node *of_node; int of_reset_n_cells; int (*of_xlate)(struct reset_controller_dev *rcdev, @@ -58,4 +85,7 @@ struct device; int devm_reset_controller_register(struct device *dev, struct reset_controller_dev *rcdev); +void reset_controller_add_lookup(struct reset_control_lookup *lookup, + unsigned int num_entries); + #endif |
