A set of patches to allow consumers to get and de/assert or trigger a number of resets at the same time. A patch on top of Vivek's original API extension is added to hide the reset_control_array behind a struct reset_control so that the consumer doesn't have to care about the difference between a singular reset control and a reset control controlling an array of resets, except when requesting it. This series also contains reset controls patches for dwc3-of-simple and tegra pmc drivers. A small patch is added in this series to correctly re-order the resource handling in dwc3_of_simple_remove(). The series is tested on torvald's master branch the device tree patches to enable usb on db820c. Changes since v5: - Fixed devm/of_reset_control_array_get stub return values in the "reset: hide reset control arrays behind struct reset_control" patch. - Merged "reset: hide reset control arrays behind struct reset_control" patch into "reset: Add APIs to manage array of resets" patch, to avoid adding new API functions in one patch that are removed in the other. - Updated commit message of "soc/tegra: pmc: Use the new reset APIs to manage reset controllers" patch. - Dropped already merged "reset: use kref for reference counting" patch. Changes since v4: - Added a patch to hide reset control arrays behind struct reset_control and adapted the consumer patches. This could be merged with the reset array API patch if we think this is a good idea. Changes since v3: - Squashed of_reset_control_get_count() patch in the second patch that adds the reset control array APIs. - The error path after getting count through of_reset_control_get_count() now returns NULL pointer in case when 'optional' flag is true. - Added code in reset_control_array_assert() to deassert the already asserted resets in the error case. - Using of_reset_control_array_get_optional_exclusive() in dwc3 patch to request the reset control array. - Added a patch to fix the order in which resources are handled in dwc3_of_simple_remove() path. - Added tegra_powergate->reset to take care of single reset control passed from the client drivers. Changes since v2: - Addressed comments to make APIs inline with gpiod API. - Moved number of reset controls in 'struct reset_control_array' so that the footprint is reduced. - of_reset_control_array_get() and devm_reset_control_array_get() now return pointer to the newly created reset control array. - Added comments to mention that the reset control array APIs don't guarantee any particular order when handling the reset controls. - Dropped 'name' from reset_control_array' since the interface is meant for a bunch of anonymous resets that can all be asserted or deasserted in arbitrary order. - Fixed returns for APIs reported by kbuild. - Fixed 'for' clause guards reported by kbuild. Changes since v1: - Addressed comment for error handling in of_reset_control_get_count() - Added patch to manage reset controller array. - Rebased dwc3-of-simple changes based on the new set of APIs for reset control array. - Added a patch for soc/tegra/pmc driver to use the new set of reset control array APIs. Vivek Gautam (4): reset: Add APIs to manage array of resets usb: dwc3: of-simple: Re-order resource handling in remove usb: dwc3: of-simple: Add support to get resets for the device soc/tegra: pmc: Use the new reset APIs to manage reset controllers drivers/reset/core.c | 211 +++++++++++++++++++++++++++++++++++++- drivers/soc/tegra/pmc.c | 82 ++++----------- drivers/usb/dwc3/dwc3-of-simple.c | 29 +++++- include/linux/reset.h | 73 +++++++++++++ 4 files changed, 329 insertions(+), 66 deletions(-) -- 2.11.0 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html