ata: libahci_platform: add reset control support
authorKunihiko Hayashi <hayashi.kunihiko@socionext.com>
Wed, 22 Aug 2018 12:13:02 +0000 (21:13 +0900)
committerTejun Heo <tj@kernel.org>
Wed, 22 Aug 2018 15:08:27 +0000 (08:08 -0700)
commit9d2ab99573970838108add835442a03e23f8577b
treebb6c8eb9824775a21c550fe24a8f5d03c83b5cb4
parent16af2d65842d343c2f95733c3993a0b5baab08f9
ata: libahci_platform: add reset control support

Add support to get and control a list of resets for the device
as optional and shared. These resets must be kept de-asserted until
the device is enabled.

This is specified as shared because some SoCs like UniPhier series
have common reset controls with all ahci controller instances.

However, according to Thierry's view,
https://www.spinics.net/lists/linux-ide/msg55357.html
some hardware-specific drivers already use their own resets,
and the common reset make a path to occur double controls of resets.

The ahci_platform_get_resources() can get and control the reset
only when the second argument includes AHCI_PLATFORM_GET_RESETS bit.

Suggested-by: Hans de Goede <hdegoede@redhat.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Documentation/devicetree/bindings/ata/ahci-platform.txt
drivers/ata/ahci.h
drivers/ata/libahci_platform.c
include/linux/ahci_platform.h