LTSI-v4.14 Preparation for Renesas SoCs (to v4.16)

Base:
* v4.14.57
* Similar backport of components for Renesas SoCs to v4.15

Backports of the following components to their standard as of v4.16:
* at24
* cpg
* dw-hdmi
* gen3 (Renesas ARM64 based SoCs)
* gpio-rcar
* i2c-rcar
* i2c-sh-mobile
* ipmmu-vmsa
* irq-renesas-irqc
* m25p80
* mach-shmobile (Renesas ARM based SoCs)
* pcie-rcar
* phy-micrel
* ravb
* rcar-can
* rcar-dmac
* rcar-du
* rcar-snd
* rcar-thermal
* renesas-sdhi
* renesas-soc-id
* sata-rcar
* sh-drivers
* sh-eth
* sh-mmcif
* sh-mobile-ceu-camera
* sh-pfc
* sh-sci
* smsc911x
* sysc
* usb3-peri
* usbhs
* vsp1
* watchdog
* xhci-plat

Selected backports of the following to provide dependencies for the above:
* i2c-gpio
* i2c-gpio
* net-phy
* pci-of
* pm-wakeup
gpio: rcar: Use wakeup_path i.s.o. explicit clock handling

Since commit ab82fa7da4dce5c7 ("gpio: rcar: Prevent module clock disable
when wake-up is enabled"), when a GPIO is used for wakeup, the GPIO
block's module clock (if exists) is manually kept running during system
suspend, to make sure the device stays active.

However, this explicit clock handling is merely a workaround for a
failure to properly communicate wakeup information to the device core.

Instead, set the device's power.wakeup_path field, to indicate this
device is part of the wakeup path.  Depending on the PM Domain's
active_wakeup configuration, the genpd core code will keep the device
enabled (and the clock running) during system suspend when needed.
This allows for the removal of all explicit clock handling code from the
driver.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit 9ac79ba9c77d8595157bbdc4327919f8ee062426)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
1 file changed